# PolycrystalVoronoiVoidIC

The PolycrystalVoronoiVoidIC generates a Voronoi tesslation 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
[../]

(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

Options:

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

• op_numNumber of order parameters

C++ Type:unsigned int

Options:

Description:Number of order parameters

• numbubThe number of bubbles to place

C++ Type:unsigned int

Options:

Description:The number of bubbles to place

• structure_typeWhich structure type is being initialized, grains or voids

C++ Type:MooseEnum

Options:grains voids

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

• outvalueThe variable value outside the circle

C++ Type:double

Options:

Description:The variable value outside the circle

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

C++ Type:VariableName

Options:

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

C++ Type:double

Options:

Description:Mean radius value for the circles

• invalueThe variable value inside the circle

C++ Type:double

Options:

Description:The variable value inside the circle

### Required Parameters

• profileCOSFunctional dependence for the interface profile

Default:COS

C++ Type:MooseEnum

Options:COS TANH

Description:Functional dependence for the interface profile

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

Default:0

C++ Type:unsigned int

Options:

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

• grain_num0Number of grains being represented by the order parameters

Default:0

C++ Type:unsigned int

Options:

Description:Number of grains being represented by the order parameters

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

C++ Type:FileName

Options:

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

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

Default:False

C++ Type:bool

Options:

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

• rand_seed12444The random seed

Default:12444

C++ Type:unsigned int

Options:

Description:The random seed

• numtries1000The number of tries

Default:1000

C++ Type:unsigned int

Options:

Description:The number of tries

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

Default:0

C++ Type:double

Options:

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

Default:none

C++ Type:MooseEnum

Options:uniform normal none

Description:Type of distribution that random circle radii will follow

• 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

Options:

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

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

Default:True

C++ Type:bool

Options:

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

• boundaryThe list of boundary IDs from the mesh where this boundary condition applies

C++ Type:std::vector

Options:

Description:The list of boundary IDs from the mesh where this boundary condition applies

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

Default:0

C++ Type:double

Options:

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

• blockThe list of block ids (SubdomainID) that this object will be applied

C++ Type:std::vector

Options:

Description:The list of block ids (SubdomainID) that this object will be applied

### Optional Parameters

• 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

Options:

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

• control_tagsAdds user-defined labels for accessing object parameters via control logic.

C++ Type:std::vector

Options:

Description:Adds user-defined labels for accessing object parameters via control logic.

• enableTrueSet the enabled status of the MooseObject.

Default:True

C++ Type:bool

Options:

Description:Set the enabled status of the MooseObject.