CheckEssentialParam
Check essential parameter.
Interface
- ܀ Interface
- ️܀ See example
- ↢
INTERFACE
MODULE SUBROUTINE CheckEssentialParam(obj, param, prefix)
CLASS(SteadyStokes221_), INTENT(INOUT) :: obj
TYPE(ParameterList_), INTENT(IN) :: param
CHARACTER(*), OPTIONAL, INTENT(IN) :: prefix
END SUBROUTINE CheckEssentialParam
END INTERFACE
This example shows how to set the parameters for steady stokes flow kernel SteadyStokes221.
- ܀ Mesh for velocity
- ܀ Mesh for pressure
- ↢
Use modules
PROGRAM main
USE easifemBase
USE easifemClasses
USE easifemMaterials
USE easifemKernels
USE SteadyStokes221_Class
IMPLICIT NONE
Declare variables
TYPE( SteadyStokes221_ ) :: obj
TYPE( ParameterList_ ) :: param
CHARACTER( LEN = * ), PARAMETER :: domainFileForPressure="./mesh_tri3.h5"
CHARACTER( LEN = * ), PARAMETER :: domainFileForVelocity="./mesh_tri6.h5"
Set parameters
Set parameters for kernel.
Initiate the parameter list to store the parameters of the kernel
CALL FPL_INIT(); CALL param%Initiate()
We set the parameters for SteadyStokes221_ kernel.
CALL SetSteadyStokes221Param( &
& param=param, &
& isConservativeForm=.TRUE., &
& gravity = [0.0_DFP, -9.8_DFP, 0.0_DFP], &
& domainFileForPressure = domainFileForPressure, &
& domainFileForVelocity = domainFileForVelocity, &
& engine="NATIVE_SERIAL", &
& CoordinateSystem=KERNEL_CARTESIAN, &
& maxIter = 100, &
& rtoleranceForPressure = REAL( 1.0E-6, DFP ), &
& rtoleranceForVelocity = REAL( 1.0E-6, DFP ), &
& atoleranceForPressure = REAL( 1.0E-6, DFP ), &
& atoleranceForVelocity = REAL( 1.0E-6, DFP ), &
& toleranceForSteadyState = REAL( 1.0E-6, DFP ), &
& tFluidMaterials=1, &
& tDirichletBCForPressure=0, &
& tDirichletBCForVelocity=3, &
& baseInterpolationForSpace="LagrangeInterpolation", &
& baseContinuityForSpace="H1", &
& quadratureTypeForSpace="GaussLegendre", &
& postProcessOpt=1)
Let us print the parameter list.
CALL param%Print()
Let us check the essential parameter.
CALL obj%CheckEssentialParam( param )
CALL param%Deallocate(); CALL FPL_FINALIZE()
END PROGRAM main