# ImageMesh

Generated mesh with the aspect ratio of a given image stack.

## Description

The ImageMesh object is a convenience tool for setting up a mesh to match the pixel structure of a two or three dimensional image. It is generally used in union with the ImageFunction object to perform simulations that rely on image data, such as setting up an initial condition of a grain structure. By default the generated mesh is sized to the dimensions of the images and creates one element per pixel.

## Example Syntax

[Mesh]
type = ImageMesh
dim = 3
file_base = stack/test
file_suffix = png
[]

(test/tests/functions/image_function/image_mesh_3d.i)

## Input Parameters

• file_suffixSuffix of the file to open, e.g. 'png'

C++ Type:std::string

Options:

Description:Suffix of the file to open, e.g. 'png'

• zmax1Upper Z Coordinate of the generated mesh

Default:1

C++ Type:double

Options:

Description:Upper Z Coordinate of the generated mesh

• zmin0Lower Z Coordinate of the generated mesh

Default:0

C++ Type:double

Options:

Description:Lower Z Coordinate of the generated mesh

• parallel_typeDEFAULTDEFAULT: Use libMesh::ReplicatedMesh unless --distributed-mesh is specified on the command line REPLICATED: Always use libMesh::ReplicatedMesh DISTRIBUTED: Always use libMesh::DistributedMesh

Default:DEFAULT

C++ Type:MooseEnum

Options:DEFAULT REPLICATED DISTRIBUTED

Description:DEFAULT: Use libMesh::ReplicatedMesh unless --distributed-mesh is specified on the command line REPLICATED: Always use libMesh::ReplicatedMesh DISTRIBUTED: Always use libMesh::DistributedMesh

• fileName of single image file to extract mesh parameters from. If provided, a 2D mesh is created.

C++ Type:FileName

Options:

Description:Name of single image file to extract mesh parameters from. If provided, a 2D mesh is created.

• allow_renumberingTrueIf allow_renumbering=false, node and element numbers are kept fixed until deletion

Default:True

C++ Type:bool

Options:

Description:If allow_renumbering=false, node and element numbers are kept fixed until deletion

• xmin0Lower X Coordinate of the generated mesh

Default:0

C++ Type:double

Options:

Description:Lower X Coordinate of the generated mesh

• ymin0Lower Y Coordinate of the generated mesh

Default:0

C++ Type:double

Options:

Description:Lower Y Coordinate of the generated mesh

• ymax1Upper Y Coordinate of the generated mesh

Default:1

C++ Type:double

Options:

Description:Upper Y Coordinate of the generated mesh

• bias_z1The amount by which to grow (or shrink) the cells in the z-direction.

Default:1

C++ Type:double

Options:

Description:The amount by which to grow (or shrink) the cells in the z-direction.

• nx1Number of elements in the X direction

Default:1

C++ Type:unsigned int

Options:

Description:Number of elements in the X direction

• ny1Number of elements in the Y direction

Default:1

C++ Type:unsigned int

Options:

Description:Number of elements in the Y direction

• nz1Number of elements in the Z direction

Default:1

C++ Type:unsigned int

Options:

Description:Number of elements in the Z direction

• ghosting_patch_sizeThe number of nearest neighbors considered for ghosting purposes when 'iteration' patch update strategy is used. Default is 5 * patch_size.

C++ Type:unsigned int

Options:

Description:The number of nearest neighbors considered for ghosting purposes when 'iteration' patch update strategy is used. Default is 5 * patch_size.

• max_leaf_size10The maximum number of points in each leaf of the KDTree used in the nearest neighbor search. As the leaf size becomes larger,KDTree construction becomes faster but the nearest neighbor searchbecomes slower.

Default:10

C++ Type:unsigned int

Options:

Description:The maximum number of points in each leaf of the KDTree used in the nearest neighbor search. As the leaf size becomes larger,KDTree construction becomes faster but the nearest neighbor searchbecomes slower.

• elem_typeThe type of element from libMesh to generate (default: linear element for requested dimension)

C++ Type:MooseEnum

Description:The type of element from libMesh to generate (default: linear element for requested dimension)

• file_baseImage file base to open, use this option when a stack of images must be read (ignored if 'file' is given)

C++ Type:FileNameNoExtension

Options:

Description:Image file base to open, use this option when a stack of images must be read (ignored if 'file' is given)

• cells_per_pixel1The number of mesh cells per pixel, must be <=1

Default:1

C++ Type:double

Options:

Description:The number of mesh cells per pixel, must be <=1

• file_rangeRange of images to analyze, used with 'file_base' (ignored if 'file' is given)

C++ Type:std::vector

Options:

Description:Range of images to analyze, used with 'file_base' (ignored if 'file' is given)

• scale_to_oneTrueWhether or not to scale the image so its max dimension is 1

Default:True

C++ Type:bool

Options:

Description:Whether or not to scale the image so its max dimension is 1

• bias_x1The amount by which to grow (or shrink) the cells in the x-direction.

Default:1

C++ Type:double

Options:

Description:The amount by which to grow (or shrink) the cells in the x-direction.

• bias_y1The amount by which to grow (or shrink) the cells in the y-direction.

Default:1

C++ Type:double

Options:

Description:The amount by which to grow (or shrink) the cells in the y-direction.

Default:False

C++ Type:bool

Options:

• xmax1Upper X Coordinate of the generated mesh

Default:1

C++ Type:double

Options:

Description:Upper X Coordinate of the generated mesh

### Optional Parameters

• nemesisFalseIf nemesis=true and file=foo.e, actually reads foo.e.N.0, foo.e.N.1, ... foo.e.N.N-1, where N = # CPUs, with NemesisIO.

Default:False

C++ Type:bool

Options:

Description:If nemesis=true and file=foo.e, actually reads foo.e.N.0, foo.e.N.1, ... foo.e.N.N-1, where N = # CPUs, with NemesisIO.

• patch_update_strategyneverHow often to update the geometric search 'patch'. The default is to never update it (which is the most efficient but could be a problem with lots of relative motion). 'always' will update the patch for all slave nodes at the beginning of every timestep which might be time consuming. 'auto' will attempt to determine at the start of which timesteps the patch for all slave nodes needs to be updated automatically.'iteration' updates the patch at every nonlinear iteration for a subset of slave nodes for which penetration is not detected. If there can be substantial relative motion between the master and slave surfaces during the nonlinear iterations within a timestep, it is advisable to use 'iteration' option to ensure accurate contact detection.

Default:never

C++ Type:MooseEnum

Options:never always auto iteration

Description:How often to update the geometric search 'patch'. The default is to never update it (which is the most efficient but could be a problem with lots of relative motion). 'always' will update the patch for all slave nodes at the beginning of every timestep which might be time consuming. 'auto' will attempt to determine at the start of which timesteps the patch for all slave nodes needs to be updated automatically.'iteration' updates the patch at every nonlinear iteration for a subset of slave nodes for which penetration is not detected. If there can be substantial relative motion between the master and slave surfaces during the nonlinear iterations within a timestep, it is advisable to use 'iteration' option to ensure accurate contact detection.

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

• construct_node_list_from_side_listTrueWhether or not to generate nodesets from the sidesets (usually a good idea).

Default:True

C++ Type:bool

Options:

Description:Whether or not to generate nodesets from the sidesets (usually a good idea).

• patch_size40The number of nodes to consider in the NearestNode neighborhood.

Default:40

C++ Type:unsigned int

Options:

Description:The number of nodes to consider in the NearestNode neighborhood.

• dimThe dimension of the mesh to be generated

C++ Type:MooseEnum

Options:1 2 3

Description:The dimension of the mesh to be generated

### Main Parameters

• partitionerdefaultSpecifies a mesh partitioner to use when splitting the mesh for a parallel computation.

Default:default

C++ Type:MooseEnum

Options:default metis parmetis linear centroid hilbert_sfc morton_sfc

Description:Specifies a mesh partitioner to use when splitting the mesh for a parallel computation.

• centroid_partitioner_directionSpecifies the sort direction if using the centroid partitioner. Available options: x, y, z, radial

C++ Type:MooseEnum