- op_numspecifies the number of order parameters to create
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:specifies the number of order parameters 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
GrainGrowthAction
Set up the variable and the kernels needed for a grain growth simulation
Overview
This action creates the variables, kernels, auxvariables, and auxkernels needed to run a polycrystal simulation. All of these various objects 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
).
When using the action, you can choose to either use the automatic differentiation (AD) versions of the kernels or the versions with hand-coded Jacobians with the parameter use_automatic_differentiation
. It defaults to 'false'.
The following objects are created:
Variables
A total of
op_num
variables
AuxVariables
bnds
, used to visualize grain boundaries
Kernels
One per variable, with a total of
op_num
AuxKernels
BndsCalcAux, used to define grain boundary visualization AuxVariable
bnds
Example Input File Syntax
The GrainGrowthAction
is created as shown below.
[GlobalParams]
op_num = 2
var_name_base = gr
[]
(moose/modules/phase_field/test/tests/actions/grain_growth.i)[Modules]
[./PhaseField]
[./GrainGrowth]
variable_mobility = false
[../]
[../]
[]
(moose/modules/phase_field/test/tests/actions/grain_growth.i)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 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
- familyLAGRANGESpecifies the family of FE shape function to use for the order parameters
Default:LAGRANGE
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Specifies the family of FE shape function to use for the order parameters
- 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.
- initial_from_fileFalseTake the initial condition of all polycrystal variables from the mesh file
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Take the initial condition of all polycrystal variables from the mesh file
- kappakappa_opThe kappa used with the kernels
Default:kappa_op
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:The kappa used with the kernels
- mobilityLThe isotropic mobility used with the kernels
Default:L
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:The isotropic mobility used with the kernels
- orderFIRSTSpecifies the order of the FE shape function to use for the order parameters
Default:FIRST
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Specifies the order of the FE shape function to use for the order parameters
- use_automatic_differentiationFalseFlag to use automatic differentiation (AD) objects when possible
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Flag to use automatic differentiation (AD) objects when possible
- 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
- cName of coupled concentration variable
C++ Type:VariableName
Unit:(no unit assumed)
Controllable:No
Description:Name of coupled concentration variable
- 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
- 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
Multiphysics 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 the order parameters
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Specifies a scaling factor to apply to the order parameters
- 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