# StitchedMesh

Reads in all of the given meshes and stitches them all together into one mesh.

## Overview

The StitchedMesh object allows for multiple mesh files to be "stitched" together to form a single mesh for use in a simulation. For example, consider the following three meshes.

Fig. 1: Left portion of "stitched" mesh (left.e).

Fig. 2: Center portion of "stitched" mesh (center.e).

Fig. 3: Right portion of "stitched" mesh (right.e).

Using the StitchedMesh object from within the Mesh block of the input file, as shown in the input file snippet below, these three square meshes are joined into a single mesh as shown in Figure 4.

[Mesh]
type = StitchedMesh
files = 'left.e center.e right.e'
stitch_boundaries = 'right left right left'
parallel_type = 'replicated'
[]

(test/tests/mesh/stitched_mesh/stitched_mesh.i)

Fig. 4: Resulting "stitched" mesh from combination of three square meshes.

## Input Parameters

• filesThe name of the mesh files to read. These mesh files will be 'stitched' into the current mesh in this order.

C++ Type:std::vector

Options:

Description:The name of the mesh files to read. These mesh files will be 'stitched' into the current mesh in this order.

• stitch_boundariesPairs of boundary names (one after the other) to stitch together for each step.

C++ Type:std::vector

Options:

Description:Pairs of boundary names (one after the other) to stitch together for each step.

### Required Parameters

• clear_stitched_boundary_idsTrueWhether or not to erase the boundary IDs after they've been used for stitching.

Default:True

C++ Type:bool

Options:

Description:Whether or not to erase the boundary IDs after they've been used for stitching.

• 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

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

• 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

### 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!

• enableTrueSet the enabled status of the MooseObject.

Default:True

C++ Type:bool

Options:

Description:Set the enabled status of the MooseObject.

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

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

• 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