- free_energyBase name of the free energy function F defined in a free energy material
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:Base name of the free energy function F defined in a free energy material
- kappaThe kappa used with the kernel
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:The kappa used with the kernel
- mobilityThe mobility used with the kernel
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:The mobility used with the kernel
- solve_typeSplit or direct solve?
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Split or direct solve?
ConservedAction
Set up the variable(s) and the kernels needed for a conserved phase field variable. Note that for a direct solve, the element family and order are overwritten with hermite and third.
This action simplifies the input file syntax for creating a conserved phase field variable in the phase field module. It creates the variables and kernels needed to solve for a conserved variable. Three solving approaches (solve_type
) are supported: - direct
- reverse_split
- forward_split
Variables
In each approach, the name of the conserved variable is the block name.
direct
The direct solve has a second order spatial derivative term in the CHInterface residual, and therefore requires a higher order element. For this reason, the variable is always created to be a third-order Hermite, no matter the family and order passed into the action.
reverse_split
The reverse_split adds two variables. It adds a conserved variable and a coupled variable which stores the chemical potential. Both variables have the same family and order.
forward_split
The forward_split adds two variables. It adds conserved variable and a coupled variable which stores the Laplacian of the conserved variable. Both variables have the same family and order.
Kernels
The kernels that are added depend on the solution approach:
direct
reverse_split
Conserved variable - CoupledTimeDerivative
Coupled variable - SplitCHWRes - SplitCHParsed
forward_split
Conserved variable - TimeDerivative - MatDiffusion
Coupled variable - MatDiffusion - CoupledMaterialDerivative - CoefReaction
Input Parameters
- active__all__ If specified only the blocks named will be visited and made active
Default:__all__
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:If specified only the blocks named will be visited and made active
- blockBlock restriction for the variables and kernels
C++ Type:std::vector<SubdomainName>
Unit:(no unit assumed)
Controllable:No
Description:Block restriction for the variables and kernels
- coupled_variablesVector of nonlinear variable arguments this kernel depends on
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Vector of nonlinear variable arguments this kernel depends on
- familyLAGRANGESpecifies the family of FE shape functions to use for this variable
Default:LAGRANGE
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Specifies the family of FE shape functions to use for this variable
- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:If specified blocks matching these identifiers will be skipped.
- orderFIRSTSpecifies the order of the FE shape function to use for this variable
Default:FIRST
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Specifies the order of the FE shape function to use for this variable
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- implicitTrueWhether kernels are implicit or not
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether kernels are implicit or not
- scaling1Specifies a scaling factor to apply to this variable
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Specifies a scaling factor to apply to this variable
- use_displaced_meshFalseWhether to use displaced mesh in the kernels
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to use displaced mesh in the kernels