# TiledMesh

Use the supplied mesh and create a tiled grid by repeating this mesh in the x,y, and z directions.

## Example

As the name suggests, the TiledMesh object may be utilized to repeat a mesh multiple times. The test, tiled_mesh_test.i, will be used to illustrate the use of the TiledMesh object. This test file is shown at the bottom of this section for reference. To execute the test the moose test application must be compiled:


cd ~/projects/moose/test
make -j 8


Then navigate to the location of the test:


cd tests/mesh/tiled_mesh


Fig. 2: Tiled cube created from the cube input.

Fig. 1: Cube utilized as input to TiledMesh object.

The example utilizes a cube (cube.e) mesh as input as shown in Figure 1, which is a regular cube on the domain from 0 to 10 in the x, y, and z-directions.

As specified in the input file for this test (see below), this mesh is then used to create two tiles in the x, y, and z directions. To execute the example and create a new mesh, the moose test application is executed with the special "–mesh-only" flag, which indicates that only the mesh operations should be performed. Running this command will create the resulting mesh file (tiled_mesh_test_in.e), which is intended to be used by a separate input file to run a complete simulation.


~/projects/moose/test/moose_test-opt -i tiled_mesh_test.i --mesh-only

[Mesh]
type = TiledMesh
file = cube.e

x_width = 10
y_width = 10
z_width = 10

left_boundary = left
right_boundary = right
top_boundary = top
bottom_boundary = bottom
front_boundary = front
back_boundary = back

x_tiles = 2
y_tiles = 2
z_tiles = 2

# You can only run this test with ReplicatedMesh because the underlying
# algorithm, stitch_meshes(), only works with ReplicatedMesh.
parallel_type = replicated
[]

(test/tests/mesh/tiled_mesh/tiled_mesh_test.i)

## Input Parameters

• fileThe name of the mesh file to read

C++ Type:MeshFileName

Options:

Description:The name of the mesh file to read

### Required Parameters

• bottom_boundarybottom_boundaryname of the bottom (y) boundary

Default:bottom_boundary

C++ Type:BoundaryName

Options:

Description:name of the bottom (y) boundary

• front_boundaryfront_boundaryname of the front (z) boundary

Default:front_boundary

C++ Type:BoundaryName

Options:

Description:name of the front (z) boundary

• top_boundarytop_boundaryname of the top (y) boundary

Default:top_boundary

C++ Type:BoundaryName

Options:

Description:name of the top (y) boundary

• back_boundaryback_boundaryname of the back (z) boundary

Default:back_boundary

C++ Type:BoundaryName

Options:

Description:name of the back (z) boundary

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

• right_boundaryright_boundaryname of the right (x) boundary

Default:right_boundary

C++ Type:BoundaryName

Options:

Description:name of the right (x) boundary

• y_width0The tile width in the y direction

Default:0

C++ Type:double

Options:

Description:The tile width in the y direction

• z_width0The tile width in the z direction

Default:0

C++ Type:double

Options:

Description:The tile width in the z direction

• x_width0The tile width in the x direction

Default:0

C++ Type:double

Options:

Description:The tile width in the x direction

• z_tiles1Number of tiles to stitch together (front to back) in the z-direction

Default:1

C++ Type:unsigned int

Options:

Description:Number of tiles to stitch together (front to back) in the z-direction

• 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

• 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

• y_tiles1Number of tiles to stitch together (top to bottom) in the y-direction

Default:1

C++ Type:unsigned int

Options:

Description:Number of tiles to stitch together (top to bottom) in the y-direction

• x_tiles1Number of tiles to stitch together (left to right) in the x-direction

Default:1

C++ Type:unsigned int

Options:

Description:Number of tiles to stitch together (left to right) in the x-direction

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

• left_boundaryleft_boundaryname of the left (x) boundary

Default:left_boundary

C++ Type:BoundaryName

Options:

Description:name of the left (x) boundary

### Optional Parameters

• dim1This is only required for certain mesh formats where the dimension of the mesh cannot be autodetected. In particular you must supply this for GMSH meshes. Note: This is completely ignored for ExodusII meshes!

Default:1

C++ Type:MooseEnum

Options:1 2 3

Description:This is only required for certain mesh formats where the dimension of the mesh cannot be autodetected. In particular you must supply this for GMSH meshes. Note: This is completely ignored for ExodusII meshes!

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

• 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