ElasticityClass Module

This is a toolbox for /elastodynamics


Uses


Derived Types

type, public ::  Elasticity_

Type-Bound Procedures

procedure, public :: to_YoungModulus => to_YoungModulusElasticity
procedure, public :: to_PoissonRatio => to_PoissonRatioElasticity
procedure, public :: to_AcousticImpedance => to_AcousticImpedanceElasticity
procedure, public :: to_AngularFrequency => to_AngularFrequencyElasticity
procedure, public :: to_R => to_R_Elasticity
procedure, public :: to_T => to_T_Elasticity
procedure, public :: to_ImpedanceRatio => to_ImpedanceRatioElasticity
procedure, public :: to_SurfaceResponse => to_SurfaceResponseElasticity
procedure, public :: to_LoveWavePhaseVelocity => to_LoveWavePhaseVelElasticity

Functions

public function to_YoungModulusElasticity(this, Vs, Vp, Density) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Elasticity_), intent(in) :: this
real(kind=real64), intent(in) :: Vs
real(kind=real64), intent(in) :: Vp
real(kind=real64), intent(in) :: Density

Return Value real(kind=real64)

public function to_PoissonRatioElasticity(this, Vs, Vp) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Elasticity_), intent(in) :: this
real(kind=real64), intent(in) :: Vs
real(kind=real64), intent(in) :: Vp

Return Value real(kind=real64)

public function to_AcousticImpedanceElasticity(this, Density, Vs) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Elasticity_), intent(in) :: this
real(kind=real64), intent(in), optional :: Density
real(kind=real64), intent(in), optional :: Vs

Return Value real(kind=real64)

public function to_ImpedanceRatioElasticity(this, Density, Vs) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Elasticity_), intent(in) :: this
real(kind=real64), intent(in) :: Density(1:2)
real(kind=real64), intent(in) :: Vs(1:2)

Return Value real(kind=real64)

public function to_T_Elasticity(this, Density, Vs) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Elasticity_), intent(in) :: this
real(kind=real64), intent(in), optional :: Density(1:2)
real(kind=real64), intent(in), optional :: Vs(1:2)

Return Value real(kind=real64)

public function to_R_Elasticity(this, Density, Vs) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Elasticity_), intent(in) :: this
real(kind=real64), intent(in), optional :: Density(1:2)
real(kind=real64), intent(in), optional :: Vs(1:2)

Return Value real(kind=real64)

public function to_AngularFrequencyElasticity(this, Hz) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Elasticity_), intent(in) :: this
real(kind=real64), intent(in), optional :: Hz

Return Value real(kind=real64)

public function to_SurfaceResponseElasticity(this, Density, Vs, H, Hz) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Elasticity_), intent(in) :: this
real(kind=real64), intent(in) :: Density(1:2)
real(kind=real64), intent(in) :: Vs(1:2)
real(kind=real64), intent(in) :: H
real(kind=real64), intent(in) :: Hz

Return Value complex(kind=real64)

public function to_LoveWavePhaseVelElasticity(this, Density, Vs, H, Division, Mode) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Elasticity_), intent(in) :: this
real(kind=real64), intent(in) :: Density(1:2)
real(kind=real64), intent(in) :: Vs(1:2)
real(kind=real64), intent(in) :: H
integer(kind=int32), intent(in) :: Division
integer(kind=int32), intent(in), optional :: Mode

Return Value real(kind=real64), allocatable, (:,:)

public function get_eigenfreq_cantilever(Length, YoungModulus, density, width, height) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: Length
real(kind=real64), intent(in) :: YoungModulus
real(kind=real64), intent(in) :: density
real(kind=real64), intent(in) :: width
real(kind=real64), intent(in) :: height

Return Value real(kind=real64)