PolycrystalVoronoiVoidIC

The PolycrystalVoronoiVoidIC generates a Voronoi tessellation to produce a grain structure with voids randomly distributed along the grain boundaries. The centroids of grains can be either generated from a set of random points or assigned from a file. It requires the number of voids to be greater than zero. In general, you should use PolycrystalVoronoi to represent Voronoi grain structures without voids.

Typical usage in an input file:

[./c_IC]
  variable = c
  type = PolycrystalVoronoiVoidIC
  structure_type = voids
  polycrystal_ic_uo = voronoi
[../]
(moose/modules/phase_field/test/tests/initial_conditions/PolycrystalVoronoiVoidIC_periodic.i)

Description and Syntax

Random distribution of smooth circles with given minimum spacing

Input Parameters

  • bubspacminimum spacing of bubbles, measured from center to center

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:minimum spacing of bubbles, measured from center to center

  • invalueThe variable value inside the circle

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The variable value inside the circle

  • numbubThe number of bubbles to place

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The number of bubbles to place

  • op_numNumber of order parameters

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Number of order parameters

  • outvalueThe variable value outside the circle

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The variable value outside the circle

  • polycrystal_ic_uoUserObject for obtaining the polycrystal grain structure.

    C++ Type:UserObjectName

    Unit:(no unit assumed)

    Controllable:No

    Description:UserObject for obtaining the polycrystal grain structure.

  • radiusMean radius value for the circles

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Mean radius value for the circles

  • structure_typeWhich structure type is being initialized, grains or voids

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:grains, voids

    Controllable:No

    Description:Which structure type is being initialized, grains or voids

  • 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

  • 3D_spheresTruein 3D, whether the objects are spheres or columns

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:in 3D, whether the objects are spheres or columns

  • 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

  • columnar_3DFalse3D microstructure will be columnar in the z-direction?

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:3D microstructure will be columnar in the z-direction?

  • file_nameFile containing grain centroids, if file_name is provided, the centroids from the file will be used.

    C++ Type:FileName

    Unit:(no unit assumed)

    Controllable:No

    Description:File containing grain centroids, if file_name is provided, the centroids from the file will be used.

  • int_width0The interfacial width of the void surface. Defaults to sharp interface

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The interfacial width of the void surface. Defaults to sharp interface

  • numtries1000The number of tries

    Default:1000

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The number of tries

  • op_index0The index for the current order parameter, not needed if structure_type = voids

    Default:0

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The index for the current order parameter, not needed if structure_type = voids

  • profileCOSFunctional dependence for the interface profile

    Default:COS

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:COS, TANH

    Controllable:No

    Description:Functional dependence for the interface profile

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

  • radius_variation0Plus or minus fraction of random variation in the bubble radius for uniform, standard deviation for normal

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Plus or minus fraction of random variation in the bubble radius for uniform, standard deviation for normal

  • radius_variation_typenoneType of distribution that random circle radii will follow

    Default:none

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:uniform, normal, none

    Controllable:No

    Description:Type of distribution that random circle radii will follow

  • rand_seed12345Seed value for the random number generator

    Default:12345

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Seed value for the random number generator

  • stateCURRENTThis parameter is used to set old state solutions at the start of simulation. If specifying multiple states at the start of simulation, use one IC object for each state being specified. The states are CURRENT=0 OLD=1 OLDER=2. States older than 2 are not currently supported. When the user only specifies current state, the solution is copied to the old and older states, as expected. This functionality is mainly used for dynamic simulations with explicit time integration schemes, where old solution states are used in the velocity and acceleration approximations.

    Default:CURRENT

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:CURRENT, OLD, OLDER

    Controllable:No

    Description:This parameter is used to set old state solutions at the start of simulation. If specifying multiple states at the start of simulation, use one IC object for each state being specified. The states are CURRENT=0 OLD=1 OLDER=2. States older than 2 are not currently supported. When the user only specifies current state, the solution is copied to the old and older states, as expected. This functionality is mainly used for dynamic simulations with explicit time integration schemes, where old solution states are used in the velocity and acceleration approximations.

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

  • zero_gradientFalseSet the gradient DOFs to zero. This can avoid numerical problems with higher order shape functions and overlapping circles.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the gradient DOFs to zero. This can avoid numerical problems with higher order shape functions and overlapping circles.

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