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

  • 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)

    Options:DIRECT, REVERSE_SPLIT, FORWARD_SPLIT

    Controllable:No

    Description:Split or direct solve?

Required 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)

    Options:LAGRANGE, MONOMIAL, HERMITE, SCALAR, HIERARCHIC, CLOUGH, XYZ, SZABAB, BERNSTEIN, L2_LAGRANGE, L2_HIERARCHIC, NEDELEC_ONE, LAGRANGE_VEC, MONOMIAL_VEC, RAVIART_THOMAS, RATIONAL_BERNSTEIN, SIDE_HIERARCHIC, L2_HIERARCHIC_VEC, L2_LAGRANGE_VEC, L2_RAVIART_THOMAS

    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)

    Options:CONSTANT, FIRST, SECOND, THIRD, FOURTH

    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

Advanced Parameters