AnnularMeshGenerator

For rmin>0: creates an annular mesh of QUAD4 elements. For rmin=0: creates a disc mesh of QUAD4 and TRI3 elements. Boundary sidesets are created at rmax and rmin, and given these names. If dmin!0 and dmax!360, a sector of an annulus or disc is created. In this case boundary sidesets are also created at dmin and dmax, and given these names

Overview

This MeshGenerator object creates a mesh with an annular shape, and Quad4 elements distributed on several rings. The user can choose the inner and outer radii, as well as the number of elements in the radial and angular directions.

It is also possible to create a disc-shaped mesh with this class. To do so, the user has to choose 0 for the value of the inner radius. This will create a mesh composed of TRI3 elements at the center of the disc, and QUAD4 everywhere else.

If and , this will create a fraction of an annulus or disc.

Description

The AnnularMesh mesh generator builds simple 2D annular and disc meshes. They are created by drawing radial lines and concentric circles, and the mesh consists of the quadrilaterals thus formed. Therefore, no sophisticated paving is used to construct the mesh.

The inner radius and the outer radius must be specified. If the inner radius is zero a disc mesh is created, while if it is positive an annulus is created. The annulus has just one subdomain (block number = 0), whereas the disc has two subdomains: subdomain zero consists of the outer quadrilaterals, while the other (block number = 1) consists of the triangular elements that emanate from the origin.

The minimum and maximum angle may also be specified. These default to zero and 360, respectively. If other values are chosen, a sector of an annulus, or a sector of a disc will be created. Both angles are measured anti-clockwise from the xx axis.

The number of elements in the radial direction and the angular direction may be specified. By default, the mesh spacing is uniform in the radial direction, but the following options are available for more control over the radial meshing: - A growth factor that controls the element size in the radial direction may be specified. In this case, the radial element size in the innermost ring is multiplied by this factor for each concentric ring of elements, moving from the inner to the outer radius. If the growth factor is positive, the element radial dimension increases with increasing radial position, while if the growth factor is negative, the element radial dimension decreases with increasing radial position. - A list of values that define the radial positions of the rings of interior nodes can be specified. This allows for direct control of the element size for every one of the concentric rings. In this case, the number of radial elements is not specified, because it is inferred from the length of that list. - A flag that enforces equal areas among all of the elements. When true, this parameter will automatically determine the radial element spacing so that each element has the same area.

Sidesets are also created:

  • Sideset 0 is called "rmin" and is the set of sides at the minimum radius (which is zero for the disc).

  • Sideset 1 is called "rmax" and is the set of sides at the maximum radius.

  • Sideset 2 is called "dmin" and is the set of sides at the minimum angle, which is created only in the case of a sector of an annulus (or disc)

  • Sideset 3 is called "dmax" and is the set of sides at the maximum angle, which is created only in the case of a sector of an annulus (or disc)

Input Parameters

  • ntNumber of elements in the angular direction

    C++ Type:unsigned int

    Controllable:No

    Description:Number of elements in the angular direction

  • rmaxOuter radius

    C++ Type:double

    Controllable:No

    Description:Outer radius

  • rminInner radius. If rmin=0 then a disc mesh (with no central hole) will be created.

    C++ Type:double

    Controllable:No

    Description:Inner radius. If rmin=0 then a disc mesh (with no central hole) will be created.

Required Parameters

  • boundary_id_offset0This offset is added to the generated boundary IDs

    Default:0

    C++ Type:short

    Controllable:No

    Description:This offset is added to the generated boundary IDs

  • boundary_name_prefixIf provided, prefix the built in boundary names with this string

    C++ Type:BoundaryName

    Controllable:No

    Description:If provided, prefix the built in boundary names with this string

  • dmax360Maximum angle, measured in degrees anticlockwise from x axis. If dmin=0 and dmax=360 an annular mesh is created. Otherwise, only a sector of an annulus is created

    Default:360

    C++ Type:double

    Controllable:No

    Description:Maximum angle, measured in degrees anticlockwise from x axis. If dmin=0 and dmax=360 an annular mesh is created. Otherwise, only a sector of an annulus is created

  • dmin0Minimum degree, measured in degrees anticlockwise from x axis

    Default:0

    C++ Type:double

    Controllable:No

    Description:Minimum degree, measured in degrees anticlockwise from x axis

  • equal_areaFalseWhether to select the radial discretization to achieve equal areas of each ring

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to select the radial discretization to achieve equal areas of each ring

  • growth_r1The ratio of radial sizes of successive rings of elements

    Default:1

    C++ Type:double

    Controllable:No

    Description:The ratio of radial sizes of successive rings of elements

  • nr1Number of elements in the radial direction

    Default:1

    C++ Type:unsigned int

    Controllable:No

    Description:Number of elements in the radial direction

  • quad_subdomain_id0The subdomain ID given to the QUAD4 elements

    Default:0

    C++ Type:unsigned short

    Controllable:No

    Description:The subdomain ID given to the QUAD4 elements

  • radial_positionsDirectly prescribed positions of intermediate radial nodes

    C++ Type:std::vector<double>

    Controllable:No

    Description:Directly prescribed positions of intermediate radial nodes

  • tri_subdomain_id1The subdomain ID given to the TRI3 elements (these exist only if rmin=0, and they exist at the center of the disc

    Default:1

    C++ Type:unsigned short

    Controllable:No

    Description:The subdomain ID given to the TRI3 elements (these exist only if rmin=0, and they exist at the center of the disc

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • save_with_nameKeep the mesh from this mesh generator in memory with the name specified

    C++ Type:std::string

    Controllable:No

    Description:Keep the mesh from this mesh generator in memory with the name specified

Advanced Parameters

  • nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)

  • outputFalseWhether or not to output the mesh file after generating the mesh

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to output the mesh file after generating the mesh

  • show_infoFalseWhether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

Debugging Parameters