Structure
AbstractSTDBE_
class is an abstract class, which is designed for solving the transient Darcy-Brinkman Equation by using the space-time finite element method.
AbstractSTDBE_
is a child of AbstractKernel_.
The concrete class of AbstractSTDBE_
has the name of STDBEXYZ_
where X,Y,Z
are a numbers.
X
denotes the finite element technique used by the kernel.
- Equal order interpolation for pressure and velocity with VMS stabilization
- Equal order interpolation for pressure and velocity with partial VMS terms
- Equal order interpolation for pressure and velocity with SUPG stabilization
- Mixed FEM type 1
- Mixed FEM type 2
- etc.
Y
denotes how we solve the system of linear equations
- Y=1, for coupled solution of system of linear equations
- Y=2, for uncoupled (iterative methods) of system of linear equations
Z
denotes the material properties
- Z=1 material properties remains constant in the mesh
- Z=2, material properties can change with both space and time in the mesh
- Z=3, material properties can only change with time
- Z=4, material properties can only change with space
- Z=5, material porperties are given by Random field variable
Getting Started
- TODO Add getting started guide for AbstractSTDBE_ kernel.
Structure
TYPE, ABSTRACT, EXTENDS(AbstractKernel_) :: AbstractSTDBE_
LOGICAL(LGT) :: isCommonDomain = .TRUE.
INTEGER(I4B) :: stabParamOption = 1
REAL(DFP) :: rtoleranceForPressure = 1.0D-6
REAL(DFP) :: rtoleranceForVelocity = 1.0D-6
REAL(DFP) :: atoleranceForPressure = 1.0D-6
REAL(DFP) :: atoleranceForVelocity = 1.0D-6
REAL(DFP) :: toleranceForSteadyState = 1.0E-8
REAL(DFP) :: pressureError0 = 0.0_DFP
REAL(DFP) :: velocityError0 = 0.0_DFP
REAL(DFP) :: pressureError = 0.0_DFP
REAL(DFP) :: velocityError = 0.0_DFP
LOGICAL(LGT) :: ismaterialInterfaces = .FALSE.
INTEGER(I4B), ALLOCATABLE :: materialInterfaces(:)
TYPE(DomainConnectivity_), ALLOCATABLE :: matIfaceConnectData(:)
TYPE(String) :: domainFileForPressure
TYPE(String) :: domainFileForVelocity
INTEGER(I4B) :: tPorousMaterials = 0
INTEGER(I4B) :: tFluidMaterials = 0
TYPE(PorousMaterialPointer_), ALLOCATABLE :: porousMaterial(:)
TYPE(FluidMaterialPointer_), ALLOCATABLE :: fluidMaterial(:)
TYPE(MeshSelection_), ALLOCATABLE :: PorousMaterialToMesh(:)
TYPE(MeshSelection_), ALLOCATABLE :: FluidMaterialToMesh(:)
TYPE(String) :: baseContinuityForPressure
TYPE(String) :: baseInterpolationForPressure
TYPE(String) :: quadratureTypeForPressure
TYPE(String) :: baseContinuityForVelocity
TYPE(String) :: baseInterpolationForVelocity
TYPE(String) :: quadratureTypeForVelocity
TYPE(DirichletBCPointer_), ALLOCATABLE :: DBCForPressure(:)
TYPE(DirichletBCPointer_), ALLOCATABLE :: DBCForVelocity(:)
TYPE(NeumannBCPointer_), ALLOCATABLE :: NBCForPressure(:)
TYPE(NeumannBCPointer_), ALLOCATABLE :: NBCForVelocity(:)
CLASS(Domain_), POINTER :: DomForPressure => NULL()
CLASS(Domain_), POINTER :: DomForVelocity => NULL()
CLASS(DomainConnectivity_), POINTER :: domConnect => NULL()
TYPE(STScalarMeshField_), ALLOCATABLE :: tausups_cell(:)
TYPE(STScalarMeshField_), ALLOCATABLE :: nulsic_cell(:)
TYPE(STScalarMeshField_), ALLOCATABLE :: hrgn_cell(:)
TYPE(STScalarMeshField_), ALLOCATABLE :: hrpgn_cell(:)
TYPE(STScalarMeshField_), ALLOCATABLE :: porosity(:)
TYPE(STScalarMeshField_), ALLOCATABLE :: dynamicViscosity(:)
TYPE(STScalarMeshField_), ALLOCATABLE :: permeability(:)
TYPE(STScalarMeshField_), ALLOCATABLE :: massDensity(:)
CLASS(BlockNodeField_), POINTER :: rhs => NULL()
CLASS(BlockNodeField_), POINTER :: sol => NULL()
CLASS(VectorField_), POINTER :: nodeCoord => NULL()
CLASS(STVectorField_), POINTER :: stNodeCoord => NULL()
CLASS(VectorField_), POINTER :: nodeCoordForPressure => NULL()
CLASS(STVectorField_), POINTER :: stNodeCoordForPressure => NULL()
CLASS(VectorField_), POINTER :: nodeCoordForVelocity => NULL()
CLASS(STVectorField_), POINTER :: stNodeCoordForVelocity => NULL()
CLASS(STScalarField_), POINTER :: pressure => NULL()
CLASS(STVectorField_), POINTER :: velocity => NULL()
CLASS(ScalarField_), POINTER :: pressure0 => NULL()
CLASS(VectorField_), POINTER :: velocity0 => NULL()
PROCEDURE(STDBE_ComputeStabParam), POINTER, PASS(obj) :: &
& ComputeStabParam => NULL()
!!! note "Inheritence" For data inherited from the see [[../AbstractKernel/AbstractKernel_]].
The meaning of the fields of AbstractSTDBE_
is given below.
isCommonDomain
, True if the domain is common for pressure and velocitystabParamOption
, Stabilization parameter optionrtoleranceForPressure
, tolerance for pressurertoleranceForVelocity
, tolerance for velocityatoleranceForPressure
, tolerance for pressureatoleranceForVelocity
, tolerance for velocitytoleranceForSteadyState
, toleranceForSteadyStatepressureError0
, initial error for checking convergence in pressure fieldvelocityError0
, initial error for checking convergence in velocity fieldressureError
, current error for checking convergence in pressure fieldvelocityError
, current error for checking convergence in velocity fieldismaterialInterfaces
, True ifmaterialInterfaces
is allocatedmaterialInterfaces
, MeshID of PorousFluidInteracematIfaceConnectData
, FacetToCellData for each materialInterface mesh The size ofmatIfaceConnectData
is same as the size ofmaterialInterfaces
domainFileForPressure
, domain file name for pressuredomainFileForVelocity
, domain file name for velocitytPorousMaterials
, Total number of porous materialstFluidMaterials
, Total number of fluid materialsporousMaterial
, Pointer to porous materials, the size isfluidMaterial
, Pointer to the fluid materialsporousMaterialToMesh
, Map porous media to the mesh subregion. The size of PorousMaterialToMesh is equal tofluidMaterialToMesh
, Map porous media to the mesh subregion. The size of FluidMaterialToMesh is equal to tFluidMaterialsbaseContinuityForPressure
, Continuity of basis function for pressure fieldbaseInterpolationForPressure
, Interpolation of shape function for pressure fieldquadratureTypeForPressure
, Quadrature type for pressure fieldbaseContinuityForVelocity
, Continuity of basis function for velocity fieldbaseInterpolationForVelocity
, Interpolation of shape function for velocity fieldquadratureTypeForVelocity
, Quadrature type for velocity fielddbcForPressure
, Dirichlet boundary condition for pressuredbcForVelocity
, Dirichlet boundary condition for velocity Quadrature type for pressure field in time domainnbcForPressure
, Neumann boundary condition for pressurenbcForVelocity
, Dirichlet boundary condition for velocitydomForPressure
, Domain for pressure fielddomForVelocity
, Domain for velocity fielddomConnect
, Domain connectivitytausups_cell
, tausups for cellnulsic_cell
, nulsic for cellhrgn_cell
, hrgn for cellhrpgn_cell
, hrpgn for cellporosity
, Porosity fielddynamicViscosity
, Dynamic viscositypermeability
, PermeabilitymassDensity
, mass densityrhs
, Block vector field for space-time vectors and multi-physics appssol
, Block vector field for space-time vectors and multi-physics appsnodeCoord
, Vector field for nodal coordinates for pressure fieldstNodeCoord
, Vector field for space-time nodal coordinates for pressure fieldnodeCoordForPressure
, Vector field for nodal coordinates for pressure fieldstNodeCoordForPressure
, Vector field for space-time nodal coordinates for pressure fieldnodeCoordForVelocity
, Vector field for nodal coordinates for velocitystNodeCoordForVelocity
, Vector field for space-time nodal coordinates for velocitypressure
, Space time nodal values of pressure fieldvelocity
, Space time nodal values of velocity fieldpressure0
, nodal values of pressure at the starting timevelocity0
, nodal values of velocity at starting timeComputeStabParam
, This procedure pointer solves the problem
Methods
Deferred Methods
- isSteadyState, Returns true if the steady state
- ApplyDirichletBC, Apply dirichlet boundary condition
Implemented Methods
- AddSurrogate, Add surrogate to the module error handler
- DEALLOCATE Deallocate memory occupied by
AbstractSTDBE_
- Import, Import the kernel
- Export, export the kernel
- Display, display the kernel
- WriteData_hdf5, Write data in hdf5 format
- WriteData_vtk, Write data in vtk format
- AddPorousMaterial
- AddFluidMaterial
- AddPressureDirichletBC
- AddVelocityDirichletBC
- GetPressureDirichletBCPointer
- GetVelocityDirichletBCPointer
- AddPressureNeumannBC
- AddVelocityNeumannBC
- GetPressureNeumannBCPointer
- GetVelocityNeumannBCPointer
- Set
Submodules
AbstractSTDBE_Class@ConstructorMethods.F90
AbstractSTDBE_Class@GetMethods.F90
AbstractSTDBE_Class@InitiateFieldsMethods.F90
AbstractSTDBE_Class@SetMethods.F90
AbstractSTDBE_Class@IOMethods.F90
AbstractSTDBE_Class@AssembleMethods.F90
AbstractSTDBE_Class@AssembleTanmatMethods.F90
AbstractSTDBE_Class@AssembleRHSMethods.F90
AbstractSTDBE_Class@SolveMethods.F90
AbstractSTDBE_Class@UpdateMethods.F90
AbstractSTDBE_Class@ConvergenceMethods.F90
AbstractSTDBE_Class@BCMethods.F90
AbstractSTDBE_Class@ApplyDirichletBCMethods.F90
AbstractSTDBE_Class@MaterialMethods.F90