Skip to main content

AbstractKernelParam

This module contains options for kernel.

KernelProblemOpt

TYPE :: KernelProblemOpt_
INTEGER(I4B) :: scalar = varopt%Scalar
INTEGER(I4B) :: vector = varopt%Vector
INTEGER(I4B) :: multiPhysics = varopt%Vector + 100
INTEGER(I4B) :: NONE = -1
INTEGER(I4B) :: default = -1
CHARACTER(4) :: default_char = "NONE"

CONTAINS

PROCEDURE, PUBLIC, PASS(obj) :: ToNumber => problemType_ToNumber

END TYPE KernelProblemOpt_

KernelCoordOpt

TYPE :: KernelCoordOpt_
INTEGER(I4B) :: OneD_H = 1
!! One dimensional problem in horizontal direction

INTEGER(I4B) :: OneD_V = 2
!! One dimensional problem in vertical direction

INTEGER(I4B) :: TwoD = 3
!! Two dimension problem in Cartesian coordinate

INTEGER(I4B) :: TwoD_Axisym = 4
!! Two dimension problem in Axis-Symmetric coordinate

INTEGER(I4B) :: ThreeD = 5
!! Three dimension problem in Cartesian Coordinate system

INTEGER(I4B) :: PlaneStress = 6
!! Two dimension plane stress problem

INTEGER(I4B) :: PlaneStrain = 7
!! Two dimension plane strain problem

INTEGER(I4B) :: Cartesian = 8
!! Cartesian coordinates

INTEGER(I4B) :: Cylinderical = 9
!! Cylinderical coordinates

INTEGER(I4B) :: Spherical = 10
!! Sperical coordinates

INTEGER(I4B) :: default = 8
!! Default coordinate system

CHARACTER(9) :: default_char = "CARTESIAN"
!! default coordinate system

CONTAINS

PROCEDURE, PUBLIC, PASS(obj) :: ToNumber => coordinateSystem_ToNumber

END TYPE KernelCoordOpt_

KernelTimeOpt

TYPE :: KernelTimeOpt_
INTEGER(I4B) :: static = 0
!! PDE defines a Static problem

INTEGER(I4B) :: steady = 0
!! PDE defines a Static problem

INTEGER(I4B) :: pseudostatic = 1
!! PDE defines a Static problem

INTEGER(I4B) :: transient = 2
!! PDE defines a Transient problem

INTEGER(I4B) :: dynamic = 2
!! PDE defines a Transient problem

INTEGER(I4B) :: default = 2
!! Default time dependency

CHARACTER(9) :: default_char = "TRANSIENT"
!! Default time dependency

INTEGER(I4B) :: totalTimeStep = 1
!! Total number of time steps

REAL(DFP) :: currentTime = 0.0
!! Current time

REAL(DFP) :: dt = 0.0
!! Time step

REAL(DFP) :: startTime = 0.0
!! Start time

REAL(DFP) :: endTime = 0.0
!! End time

CONTAINS
PROCEDURE, PUBLIC, PASS(obj) :: ToNumber => timeDependency_ToNumber

END TYPE KernelTimeOpt_

KernelErrorOpt

TYPE :: KernelErrorOpt_
REAL(DFP) :: atol = 1.0E-6
!! absolute tolerance for convergence
REAL(DFP) :: rtol = 1.0E-6
!! relative tolerance for convergence
REAL(DFP) :: error0 = 0.0_DFP
!! initial error
REAL(DFP) :: error = 0.0_DFP
!! current error
INTEGER(I4B) :: maxIter = 100
!! maximum number iterations
END TYPE KernelErrorOpt_

KernelBasisOpt

TYPE :: KernelBasisOpt_
CHARACTER(2) :: baseContinuity = "H1"
!! conformity of basis functions
CHARACTER(4) :: baseInterpolation = "LAGR"
!! interpolation of basis functions
INTEGER(I4B) :: quadratureType = ipopt%GaussLegendre
!! quadrature type
INTEGER(I4B) :: basisType = polyopt%monomial
!! basis type in case baseInterpolation is Lagrange
INTEGER(I4B) :: ipType = ipopt%equidistance
!! interpolation type incase baseInterpolation is Lagrange
REAL(DFP) :: alpha = 0.0_DFP
!! Jacobi polynomial parameter
REAL(DFP) :: beta = 0.0_DFP
!! Jacobi polynomial parameter
REAL(DFP) :: lambda = 0.5_DFP
!! Ultraspherical polynomial parameter
CHARACTER(128) :: quadratureType_char = "GAUSSLEGENDRE"
!! quadrature type
TYPE(QuadraturePoint_) :: qp
!! QuadraturePoint

!! quadratureType_char
!! basisType_char
!! ipType_char
END TYPE KernelBasisOpt_