TricrystalTripleJunctionIC

Tricrystal with a triple junction

Overview

This initial condition (ICs) sets the variable values to represent a grain structure with three grains coming together at a triple junction. The initial triple junction angles are set by the user.

Note that the grains are created with sharp interfaces.

Example Input File Syntax

[GlobalParams]
  # Parameters used by several kernels that are defined globally to simplify input file
  op_num = 3 # Number of order parameters used
  var_name_base = gr # base name of grains
  v = 'gr0 gr1 gr2' # Names of the grains
  theta1 = 135 # Angle the first grain makes at the triple junction
  theta2 = 100 # Angle the second grain makes at the triple junction
  length_scale = 1.0e-9 # Length scale in nm
  time_scale = 1.0e-9 # Time scale in ns
[]
(moose/modules/phase_field/test/tests/initial_conditions/TricrystalTripleJunctionIC.i)
[ICs]
  [gr0_IC]
    type = TricrystalTripleJunctionIC
    variable = gr0
    op_index = 1
  []
  [gr1_IC]
    type = TricrystalTripleJunctionIC
    variable = gr1
    op_index = 2
  []
  [gr2_IC]
    type = TricrystalTripleJunctionIC
    variable = gr2
    op_index = 3
  []
[]
(moose/modules/phase_field/test/tests/initial_conditions/TricrystalTripleJunctionIC.i)

Input Parameters

  • op_indexIndex for the current grain order parameter

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Index for the current grain order parameter

  • op_numNumber of grain order parameters

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Number of grain order parameters

  • variableThe variable this initial condition is supposed to provide values for.

    C++ Type:VariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:The variable this initial condition is supposed to provide values for.

Required Parameters

  • blockThe list of blocks (ids or names) that this object will be applied

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • boundaryThe list of boundaries (ids or names) from the mesh where this object applies

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies

  • junctionThe point where the triple junction is located. Default is the center of the mesh

    C++ Type:libMesh::Point

    Unit:(no unit assumed)

    Controllable:No

    Description:The point where the triple junction is located. Default is the center of the mesh

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • theta1135Angle of first grain at triple junction in degrees

    Default:135

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Angle of first grain at triple junction in degrees

  • theta2135Angle of second grain at triple junction in degrees

    Default:135

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Angle of second grain at triple junction in degrees

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

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.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • ignore_uo_dependencyFalseWhen set to true, a UserObject retrieved by this IC will not be executed before the this IC

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:When set to true, a UserObject retrieved by this IC will not be executed before the this IC

Advanced Parameters