- has_outer_squareFalseIt determines if meshes for a outer square are added to concentric circle meshes.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:It determines if meshes for a outer square are added to concentric circle meshes.
- num_sectorsnum_sectors % 2 = 0, num_sectors > 0Number of azimuthal sectors in each quadrant'num_sectors' must be an even number.
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:num_sectors % 2 = 0, num_sectors > 0Number of azimuthal sectors in each quadrant'num_sectors' must be an even number.
- preserve_volumesFalseVolume of concentric circles can be preserved using this function.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Volume of concentric circles can be preserved using this function.
- radiiRadii of major concentric circles
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Radii of major concentric circles
- ringsNumber of rings in each circle or in the enclosing square
C++ Type:std::vector<unsigned int>
Unit:(no unit assumed)
Controllable:No
Description:Number of rings in each circle or in the enclosing square
ConcentricCircleMeshGenerator
This ConcentricCircleMeshGenerator source code is to generate concentric circle meshes.
Overview
The ConcentricCircleMeshGenerator
object is used to generate a 2D mesh for concentric circles. Users can refine the mesh by providing a high number of rings for each specified concentric circle region or a high number of sectors in each quadrant. The test, concentric_circle_mesh_generator.i, explains the use of the ConcentricCircleMeshGenerator
object. To execute the test, only generating a 2D mesh:
~/projects/moose/test/moose_test-opt -i concentric_circle_mesh_generator.i --mesh-only
To execute the test with the engineering and mathematical physics solvers:
~/projects/moose/test/moose_test-opt -i concentric_circle_mesh2.i
Be aware: ConcentricCircleMeshGenerator
only works with Replicated meshes.
More Information
ConcentricCircleMeshGenerator
works by creating the first quadrant, called "top_right." An input parameter, called "portion", controls which portion of mesh would be generated. Any other one-fourth portions of circles are generated by rotating the "top_right" portion. Half portions are generated by stitching two different one-fourth portions depending on users' preference.
Users must provide the input parameters, such as:
number of azimuthal sectors in a quadrant
list of radii: specific locations of radii of concentric circles
list of rings: numbers of rings for concentric circles
inner mesh fraction: ratio of the length of the inner square to the radius of the innermost circle mesh
whether the volume for concentric circles should be preserved or not (true/false)
iteration number: number of iterations for Laplace smoothing
Users can choose if the mesh for the enclosing square is added to the concentric circle mesh or not. A portion can be specified, however, it is not required. The default setting generates the full concentric circles.
Developer Information
If one needs to enhance ConcentricCircleMeshGenerator,
Laplace smoothing has to be constrained to the center circle. Efficient algorithms for adding nodes and elements, including the connectivity, may be needed. They can be found in ConcentricCircleMeshGenerator.C
.
Example Syntax
[Mesh]
[./ccmg]
type = ConcentricCircleMeshGenerator
num_sectors = 6
radii = '0.2546 0.3368 0.3600 0.3818 0.3923 0.4025 0.4110 0.4750'
rings = '5 3 2 1 1 1 1 3 5'
has_outer_square = on
pitch = 1.42063
#portion = left_half
preserve_volumes = off
smoothing_max_it = 3
[]
[]
(moose/test/tests/meshgenerators/concentric_circle_mesh_generator/concentric_circle_mesh_generator.i)Input Parameters
- pitch0The enclosing square can be added to the completed concentric circle mesh.Elements are quad meshes.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The enclosing square can be added to the completed concentric circle mesh.Elements are quad meshes.
- portionfullControl of which part of mesh is created
Default:full
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Control of which part of mesh is created
- smoothing_max_it1Number of Laplacian smoothing iterations
Default:1
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Number of Laplacian smoothing iterations
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
Controllable:No
Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)