PatternedMesh

Creates a 2D mesh from a specified set of unique 'tiles' meshes and a two-dimensional pattern.

The PatternedMesh object is similar to TiledMesh but restricted to two dimensions but adds the ability to create a tile pattern from an arbitrary number of input meshes.

For example the input meshes shown in Figures 1 and 2 can be organized into a two dimensional pattern within the input file, as shown below, to create the pattern shown in Figure 3.

[Mesh]
  type = PatternedMesh
  files = 'quad_mesh.e tri_mesh.e'
  pattern = '0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
             0 1 1 0 0 0 0 0 0 0 0 1 1 0 ;
             0 1 1 1 0 0 0 0 0 0 1 1 1 0 ;
             0 1 0 1 1 0 0 0 0 1 1 0 1 0 ;
             0 1 0 0 1 1 0 0 1 1 0 0 1 0 ;
             0 1 0 0 0 1 1 1 1 0 0 0 1 0 ;
             0 1 0 0 0 0 1 1 0 0 0 0 1 0 ;
             0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
             0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
             0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
             0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
             0 0 0 0 0 0 0 0 0 0 0 0 0 0'
  bottom_boundary = 1
  right_boundary = 2
  top_boundary = 3
  left_boundary = 4
  y_width = 1.2
  x_width = 1.2
  parallel_type = replicated
[]
(moose/test/tests/mesh/patterned_mesh/patterned_mesh.i)

Fig 1: Input put mesh: quad_mesh.e

Fig 2: Input put mesh: tri_mesh.e

Fig 3: Resulting mesh created using PatternedMesh.

Input Parameters

  • filesThe name of the mesh files to read. They are automatically assigned ids starting with zero.

    C++ Type:std::vector

    Description:The name of the mesh files to read. They are automatically assigned ids starting with zero.

  • patternA double-indexed array starting with the upper-left corner

    C++ Type:std::vector>

    Description:A double-indexed array starting with the upper-left corner

Required Parameters

  • bottom_boundarybottom_boundaryname of the bottom (y) boundary

    Default:bottom_boundary

    C++ Type:BoundaryName

    Description:name of the bottom (y) boundary

  • top_boundarytop_boundaryname of the top (y) boundary

    Default:top_boundary

    C++ Type:BoundaryName

    Description:name of the top (y) boundary

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

    Default:True

    C++ Type:bool

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

  • right_boundaryright_boundaryname of the right (x) boundary

    Default:right_boundary

    C++ Type:BoundaryName

    Description:name of the right (x) boundary

  • y_width0The tile width in the y direction

    Default:0

    C++ Type:double

    Description:The tile width in the y direction

  • z_width0The tile width in the z direction

    Default:0

    C++ Type:double

    Description:The tile width in the z direction

  • x_width0The tile width in the x direction

    Default:0

    C++ Type:double

    Description:The tile width in the x direction

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

    Default:DEFAULT

    C++ Type:MooseEnum

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

  • 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

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

  • left_boundaryleft_boundaryname of the left (x) boundary

    Default:left_boundary

    C++ Type:BoundaryName

    Description:name of the left (x) boundary

  • 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

    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.

Optional Parameters

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

    Default:default

    C++ Type:MooseEnum

    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

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

Partitioning 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

    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

    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

    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

    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

    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

    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

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

Advanced Parameters