SetMovingMeshParam
Set MovingMesh parameter.
Interface
- ܀ Interface
- ️܀ See example
- ↢
INTERFACE
  MODULE SUBROUTINE setMovingMeshParam( &
    & param, &
    & engine, &
    & coordinateSystem, &
    & nsd, &
    & nnt, &
    & dt, &
    & startTime, &
    & endTime, &
    & currentTime, &
    & currentTimeStep, &
    & totalTimeStep, &
    & gravity, &
    & domainFile, &
    & materialInterfaces, &
    & maxIter, &
    & tMaterials, &
    & tDirichletBC, &
    & tNeumannBC, &
    & baseInterpolationForSpace, &
    & baseContinuityForSpace, &
    & quadratureTypeForSpace, &
    & postProcessOpt)
    !!
    TYPE(ParameterList_), INTENT(INOUT) :: param
    !! param stores the parameters
    CHARACTER(*), OPTIONAL, INTENT(IN) :: engine
    !! name of engine
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: coordinateSystem
    !! Coordinate system
    REAL(DFP), OPTIONAL, INTENT(IN) :: gravity(3)
    !! Acceleration due to gravity, default is zero
    !! If gravity is zero then we use piezometric pressure
    !! If gravity is nonzero then we use thermodynamic pressure
    !! If true then we consider the subscale pressure in stabilization
    CHARACTER(*), OPTIONAL, INTENT(IN) :: domainFile
    !! Mesh/domain file for velocity and pressure
    !! Use when pressure and velocity have common domain
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: materialInterfaces(:)
    !! Mesh id for material interfaces
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: nsd
    !! Number of spatial dimension
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: nnt
    !! Number of nodes in time, default 1, has not effect, so ignore
    REAL(DFP), OPTIONAL, INTENT(IN) :: dt
    !! Initial time step size, useful incase of nonlinear stokes flow
    REAL(DFP), OPTIONAL, INTENT(IN) :: startTime
    !! Starting time t0 of simulation, default=0.0
    REAL(DFP), OPTIONAL, INTENT(IN) :: endTime
    !! Final time of simulation, default is 0.0_DFP
    REAL(DFP), OPTIONAL, INTENT(IN) :: currentTime
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: currentTimeStep
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: totalTimeStep
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: maxIter
    !! maximum iteration for Newton-method
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: tMaterials
    !! Total number of fluid materials; default=1
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: tDirichletBC
    !! Total number of Dirichlet domain for displacement, default=0
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: tNeumannBC
    !! Total number of Neumann domain for displacement
    CHARACTER(*), OPTIONAL, INTENT(IN) :: baseInterpolationForSpace
    !! Type of interpolation function used for basis function
    CHARACTER(*), OPTIONAL, INTENT(IN) :: baseContinuityForSpace
    !! Type of continuity of basis function for pressure
    CHARACTER(*), OPTIONAL, INTENT(IN) :: quadratureTypeForSpace
    !! Type of quadrature for pressure field
    !! Type of interpolation function used for velocity
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: postProcessOpt
    !!
  END SUBROUTINE setMovingMeshParam
END INTERFACE
This example shows how to set the parameters for steady stokes flow kernel
PROGRAM main
  USE easifemBase
  USE easifemClasses
  USE easifemMaterials
  USE easifemKernels
  USE MovingMesh_Class
  IMPLICIT NONE
  TYPE( MovingMesh_ ) :: obj
  TYPE( HDF5File_ ) :: domainFile
  TYPE( Domain_ ) :: dom
  TYPE( ParameterList_ ) :: param
  CHARACTER( * ), PARAMETER :: engine="NATIVE_SERIAL"
  INTEGER( I4B ), PARAMETER :: CoordinateSystem = KERNEL_CARTESIAN
  INTEGER( I4B ), PARAMETER :: nsd = 2
  INTEGER( I4B ), PARAMETER :: nnt = 1
  REAL( DFP ), PARAMETER :: dt = 0.0_DFP
  REAL( DFP ), PARAMETER :: startTime = 0.0_DFP
  REAL( DFP ), PARAMETER :: endTime = 0.0_DFP
  REAL( DFP ), PARAMETER :: currentTime = 0.0_DFP
  INTEGER( I4B ), PARAMETER :: currentTimeStep = 1
  INTEGER( I4B ), PARAMETER :: totalTimeStep = 1
  REAL( DFP ), PARAMETER :: gravity(3)=[0.0, -9.8, 0.0]
  CHARACTER( * ), PARAMETER :: domainFileName="./mesh.h5"
  INTEGER( I4B ), PARAMETER :: materialInterfaces(3) = [1,2,3]
  INTEGER( I4B ), PARAMETER :: maxIter = 100
  INTEGER( I4B ), PARAMETER :: tMaterials= 1
  INTEGER( I4B ), PARAMETER :: tDirichletBC = 2
  INTEGER( I4B ), PARAMETER :: tNeumannBC = 1
  CHARACTER(*), PARAMETER :: baseInterpolationForSpace="LagrangeInterpolation"
  CHARACTER(*), PARAMETER :: baseContinuityForSpace="H1"
  CHARACTER(*), PARAMETER :: quadratureTypeForSpace="GaussLegendre"
  INTEGER( I4B ), PARAMETER :: postProcessOpt = 1
Set parameters for kernel.
CALL FPL_INIT(); CALL param%Initiate()
Set parameters for the kernel.
CALL SetMovingMeshParam( &
  & param=param, &
  & engine=engine, &
  & coordinateSystem=coordinateSystem, &
  & nsd=nsd, &
  & nnt=nnt, &
  & dt=dt, &
  & startTime=startTime, &
  & endTime=endTime, &
  & currentTime=currentTime, &
  & currentTimeStep=currentTimeStep, &
  & totalTimeStep=totalTimeStep, &
  & gravity=gravity, &
  & domainFile=domainFileName, &
  & materialInterfaces=materialInterfaces, &
  & maxIter=maxIter, &
  & tMaterials=tMaterials, &
  & tDirichletBC=tDirichletBC, &
  & tNeumannBC=tNeumannBC, &
  & baseInterpolationForSpace=baseInterpolationForSpace, &
  & baseContinuityForSpace=baseContinuityForSpace, &
  & quadratureTypeForSpace=quadratureTypeForSpace, &
  & postProcessOpt=postProcessOpt)
Let us print the parameter list.
CALL param%Print()
Let us check the essential parameter.
CALL param%Deallocate(); CALL FPL_FINALIZE()
END PROGRAM main