PolycrystalKernelAction

Set up ACGrGrPoly, ACInterface, TimeDerivative, and ACGBPoly kernels

Overview

This action creates the kernels needed to run a polycrystal simulation. All of the kernels could be added manually in an input file, but the input file would be very long and would require many changes in order to change the number of order parameters being used to represent the grains. This action vastly simplifies the input file syntax.

The required input parameter op_num defines how many order parameters will be generated. Each order parameter is named based on the var_name_base parameter; e.g. for op_num = 3, var_name_base = gr, three nonlinear variables are created (gr0, gr1, and gr2).

The following objects are created:

Kernels

Example Input File Syntax

The PolycrystalKernelAction is accessed through the Kernels block, as shown below.

[GlobalParams]
  op_num = 2
  var_name_base = gr
[]
(moose/modules/phase_field/test/tests/grain_growth/test.i)
[Kernels]
  [./PolycrystalKernel]
  [../]
[]
(moose/modules/phase_field/test/tests/grain_growth/test.i)

Input Parameters

  • op_numspecifies the total number of grains (deformed + recrystallized) to create

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:specifies the total number of grains (deformed + recrystallized) to create

  • var_name_basespecifies the base name of the variables

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:specifies the base name of the variables

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

  • cName of coupled concentration variable

    C++ Type:VariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of coupled concentration variable

  • coupled_variablesVector of nonlinear variable arguments that L depends on

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Vector of nonlinear variable arguments that L depends on

  • en_ratio1Ratio of surface to GB energy

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Ratio of surface to GB energy

  • implicitTrueWhether kernels are implicit or not

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether kernels are implicit or not

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

  • ndef0specifies the number of deformed grains to create

    Default:0

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:specifies the number of deformed grains to create

  • 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

  • variable_mobilityTrueThe mobility is a function of any MOOSE variable (if this is set to false, L must be constant over the entire domain!)

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:The mobility is a function of any MOOSE variable (if this is set to false, L must be constant over the entire domain!)

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.

Advanced Parameters