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

  • kappaThe kappa used with the kernel

    C++ Type:MaterialPropertyName

    Options:

    Description:The kappa used with the kernel

  • free_energyBase name of the free energy function F defined in a free energy material

    C++ Type:MaterialPropertyName

    Options:

    Description:Base name of the free energy function F defined in a free energy material

  • solve_typeSplit or direct solve?

    C++ Type:MooseEnum

    Options:DIRECT REVERSE_SPLIT FORWARD_SPLIT

    Description:Split or direct solve?

  • mobilityThe mobility used with the kernel

    C++ Type:MaterialPropertyName

    Options:

    Description:The mobility used with the kernel

Required Parameters

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector

    Options:

    Description:If specified blocks matching these identifiers will be skipped.

  • active__all__ If specified only the blocks named will be visited and made active

    Default:__all__

    C++ Type:std::vector

    Options:

    Description:If specified only the blocks named will be visited and made active

  • argsVector of variable arguments this kernel depends on

    C++ Type:std::vector

    Options:

    Description:Vector of variable arguments this kernel depends on

  • orderFIRSTSpecifies the order of the FE shape function to use for this variable

    Default:FIRST

    C++ Type:MooseEnum

    Options:CONSTANT FIRST SECOND THIRD FOURTH

    Description:Specifies the order of the FE shape function to use for this variable

  • familyLAGRANGESpecifies the family of FE shape functions to use for this variable

    Default:LAGRANGE

    C++ Type:MooseEnum

    Options:LAGRANGE MONOMIAL HERMITE SCALAR HIERARCHIC CLOUGH XYZ SZABAB BERNSTEIN L2_LAGRANGE L2_HIERARCHIC NEDELEC_ONE LAGRANGE_VEC

    Description:Specifies the family of FE shape functions to use for this variable

Optional Parameters

  • scaling1Specifies a scaling factor to apply to this variable

    Default:1

    C++ Type:double

    Options:

    Description:Specifies a scaling factor to apply to this variable

  • implicitTrueWhether kernels are implicit or not

    Default:True

    C++ Type:bool

    Options:

    Description:Whether kernels are implicit or not

  • use_displaced_meshFalseWhether to use displaced mesh in the kernels

    Default:False

    C++ Type:bool

    Options:

    Description:Whether to use displaced mesh in the kernels

Advanced Parameters