# 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:

### 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