KernelMeshFields
This class contains the mesh fields of the kernel.
Its structure is given below:
Structure
TYPE :: KernelMeshFields_
TYPE(AbstractScalarMeshFieldPointer_), ALLOCATABLE :: scalarFields(:)
!! Scalar mesh fields
TYPE(AbstractVectorMeshFieldPointer_), ALLOCATABLE :: vectorFields(:)
!! Vector mesh fields
TYPE(AbstractTensorMeshFieldPointer_), ALLOCATABLE :: tensorFields(:)
!! tensor mesh fields
CLASS(AbstractScalarMeshField_), POINTER :: massDensity => NULL()
!! Mass density, scalar mesh field
INTEGER(I4B) :: massDensityFieldType = TypeField%normal
!! field type for mass density
!! normal means the field will change from one element to another
INTEGER(I4B) :: massDensityVarType = TypeField%constant
!! varType denotes how the field is changing inside the element
!! constant means the field is constant inside the element
!! space means the field changes in space element
!! spaceTime means the field changes in space-time element
!! time means the field changes in time element
INTEGER(I4B) :: massDensityDefineOn = TypeFEVariableOpt%quadrature
!! mass density is defined on quadrature points
INTEGER(I4B) :: massDensityMaxNNS = 0
!! maximum number of nodes in space for mass density
INTEGER(I4B) :: massDensityMaxNNT = 0
!! maximum number of nodes in time for mass density
CLASS(AbstractScalarMeshField_), POINTER :: shearModulus => NULL()
!! Lame parameter
!! NOTE: It is need in the case of Isotropic elasticity
!! This will be a scalar mesh field
INTEGER(I4B) :: shearModulusFieldType = TypeField%normal
!! field type for mass density
!! normal means the field will change from one element to another
INTEGER(I4B) :: shearModulusVarType = TypeField%constant
!! varType denotes how the field is changing inside the element
!! constant means the field is constant inside the element
!! space means the field changes in space element
!! spaceTime means the field changes in space-time element
!! time means the field changes in time element
INTEGER(I4B) :: shearModulusDefineOn = TypeFEVariableOpt%quadrature
!! mass density is defined on quadrature points
INTEGER(I4B) :: shearModulusMaxNNS = 0
!! maximum number of nodes in space for mass density
INTEGER(I4B) :: shearModulusMaxNNT = 0
!! maximum number of nodes in time for mass density
CLASS(AbstractScalarMeshField_), POINTER :: youngsModulus => NULL()
!! Lame parameter
!! NOTE: It is need in the case of Isotropic elasticity
!! This will be a scalar mesh field
INTEGER(I4B) :: youngsModulusFieldType = TypeField%normal
!! field type for mass density
!! normal means the field will change from one element to another
INTEGER(I4B) :: youngsModulusVarType = TypeField%constant
!! varType denotes how the field is changing inside the element
!! constant means the field is constant inside the element
!! space means the field changes in space element
!! spaceTime means the field changes in space-time element
!! time means the field changes in time element
INTEGER(I4B) :: youngsModulusDefineOn = TypeFEVariableOpt%quadrature
!! mass density is defined on quadrature points
INTEGER(I4B) :: youngsModulusMaxNNS = 0
!! maximum number of nodes in space for mass density
INTEGER(I4B) :: youngsModulusMaxNNT = 0
!! maximum number of nodes in time for mass density
CLASS(AbstractScalarMeshField_), POINTER :: dampCoeff_alpha => NULL()
!! Rayleigh damping coefficient alpha
CLASS(AbstractScalarMeshField_), POINTER :: dampCoeff_beta => NULL()
!! Rayleigh damping coefficient beta
INTEGER(I4B) :: dampCoeffFieldType = TypeField%normal
!! field type for mass density
!! normal means the field will change from one element to another
INTEGER(I4B) :: dampCoeffVarType = TypeField%constant
!! varType denotes how the field is changing inside the element
!! constant means the field is constant inside the element
!! space means the field changes in space element
!! spaceTime means the field changes in space-time element
!! time means the field changes in time element
INTEGER(I4B) :: dampCoeffDefineOn = TypeFEVariableOpt%quadrature
!! mass density is defined on quadrature points
INTEGER(I4B) :: dampCoeffMaxNNS = 0
!! maximum number of nodes in space for mass density
INTEGER(I4B) :: dampCoeffMaxNNT = 0
!! maximum number of nodes in time for mass density
CLASS(AbstractScalarMeshField_), POINTER :: scalarCoeff => NULL()
!! it can be phase velocity or coefficient of permiabillity for
!! isotropic medium this will be a scalar mesh field
INTEGER(I4B) :: scalarCoeffFieldType = TypeField%normal
!! field type for mass density
!! normal means the field will change from one element to another
INTEGER(I4B) :: scalarCoeffVarType = TypeField%constant
!! varType denotes how the field is changing inside the element
!! constant means the field is constant inside the element
!! space means the field changes in space element
!! spaceTime means the field changes in space-time element
!! time means the field changes in time element
INTEGER(I4B) :: scalarCoeffDefineOn = TypeFEVariableOpt%quadrature
!! mass density is defined on quadrature points
INTEGER(I4B) :: scalarCoeffMaxNNS = 0
!! maximum number of nodes in space for mass density
INTEGER(I4B) :: scalarCoeffMaxNNT = 0
!! maximum number of nodes in time for mass density
CLASS(AbstractScalarMeshField_), POINTER :: phase_velocity => NULL()
!! phase_velocity ! This will be a scalar mesh field
CLASS(AbstractVectorMeshField_), POINTER :: stress => NULL()
!! Stress tensor ! This will be a tensor mesh field
CLASS(AbstractVectorMeshField_), POINTER :: strain => NULL()
!! Strain tensor ! This will be a tensor mesh field
CLASS(AbstractVectorMeshField_), POINTER :: solidMechData => NULL()
!! Constitutive data for solid materials
CLASS(AbstractTensorMeshField_), POINTER :: Cijkl => NULL()
!! Elasticity tensor
!! NOTE: It is used for non Isotropic elasticity
!! This will be a tensor mesh field
INTEGER(I4B) :: cijklFieldType = TypeField%normal
!! field type for mass density
!! normal means the field will change from one element to another
INTEGER(I4B) :: cijklVarType = TypeField%constant
!! varType denotes how the field is changing inside the element
!! constant means the field is constant inside the element
!! space means the field changes in space element
!! spaceTime means the field changes in space-time element
!! time means the field changes in time element
INTEGER(I4B) :: cijklDefineOn = TypeFEVariableOpt%quadrature
!! mass density is defined on quadrature points
INTEGER(I4B) :: cijklMaxNNS = 0
!! maximum number of nodes in space for mass density
INTEGER(I4B) :: cijklMaxNNT = 0
!! maximum number of nodes in time for mass density
INTEGER(I4B) :: cijklDim1 = 0
!! dimension of elasticity tensor
INTEGER(I4B) :: cijklDim2 = 0
!! dimension of elasticity tensor
END TYPE KernelMeshFields_