- inner_radiusThe size of the inner circle.
C++ Type:double
Description:The size of the inner circle.
- nodes_per_ringNumber of nodes on each ring.
C++ Type:unsigned int
Description:Number of nodes on each ring.
- num_ringsThe number of rings.
C++ Type:unsigned int
Description:The number of rings.
- outer_radiusThe size of the outer circle. Logically, it has to be greater than inner_radius
C++ Type:double
Description:The size of the outer circle. Logically, it has to be greater than inner_radius
SpiralAnnularMesh
This mesh is derived from MooseMesh. It has an annular shape, and nodes are located on different concentric rings between the inner and outer circles. The elements are triangular.
Here are the required parameters :
inner_radius
outer_radius
nodes_per_ring
num_rings
Given all these parameters, the radial bias will be computed automatically.
It is also possible to specify if you want a second-order Mesh : TRI3 elements will become TRI6 elements. To do that, simply change the use_tri6
parameter to true
.
Example Input File
For example, with the following input file :
[Mesh]
type = SpiralAnnularMesh
use_tri6 = true
inner_radius = 1
nodes_per_ring = 18
outer_radius = 10
num_rings = 10
[]
The resulting mesh looks like this :

Further SpiralAnnularMesh Documentation
Input Parameters
- 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
- build_all_side_lowerd_meshFalseTrue to build the lower-dimensional mesh for all sides.
Default:False
C++ Type:bool
Description:True to build the lower-dimensional mesh for all sides.
- cylinder_bid1The boundary id to use for the cylinder (inner circle)
Default:1
C++ Type:short
Description:The boundary id to use for the cylinder (inner circle)
- exterior_bid2The boundary id to use for the exterior (outer circle)
Default:2
C++ Type:short
Description:The boundary id to use for the exterior (outer circle)
- 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.
- initial_delta_rWidth of the initial layer of elements around the cylinder.This number should be approximately 2 * pi * inner_radius / nodes_per_ring to ensure that the initial layer of elements is almost equilateral
C++ Type:double
Description:Width of the initial layer of elements around the cylinder.This number should be approximately 2 * pi * inner_radius / nodes_per_ring to ensure that the initial layer of elements is almost equilateral
- 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.
- 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
Description:DEFAULT: Use libMesh::ReplicatedMesh unless --distributed-mesh is specified on the command line REPLICATED: Always use libMesh::ReplicatedMesh DISTRIBUTED: Always use libMesh::DistributedMesh
- skip_refine_when_use_splitTrueTrue to skip uniform refinements when using a pre-split mesh.
Default:True
C++ Type:bool
Description:True to skip uniform refinements when using a pre-split mesh.
- use_tri6FalseGenerate mesh of TRI6 elements instead of TRI3 elements.
Default:False
C++ Type:bool
Description:Generate mesh of TRI6 elements instead of TRI3 elements.
Optional Parameters
- 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
- 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.
Partitioning Parameters
- 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).
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Description:Adds user-defined labels for accessing object parameters via control logic.
- 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.
- 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.
- 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.
- 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 secondary 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 secondary nodes needs to be updated automatically.'iteration' updates the patch at every nonlinear iteration for a subset of secondary nodes for which penetration is not detected. If there can be substantial relative motion between the primary and secondary 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 secondary 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 secondary nodes needs to be updated automatically.'iteration' updates the patch at every nonlinear iteration for a subset of secondary nodes for which penetration is not detected. If there can be substantial relative motion between the primary and secondary surfaces during the nonlinear iterations within a timestep, it is advisable to use 'iteration' option to ensure accurate contact detection.