ConcentricCircleMeshGenerator

This ConcentricCircleMeshGenerator source code is to generate concentric circle meshes.

Description

The ConcentricCircleMeshGenerator object is to generate 2D mesh for concentric circles. Users can refine 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 for generating 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
note

Be aware: ConcentricCircleMeshGenerator only works with the ReplicatedMesh type.

More Information

ConcentricCircleMeshGenerator works by creating the first quadrant called "top_right." MooseEnum 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' usages.

Users must provide the input parameters, such as a number of sectors in a quadrant, a list of radii, a list of rings, the inner mesh fraction, a boolean for the volume preserving function, and an iteration number for Laplace smoothing. * 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 * volume for concentric circles can be preserved or not (on/off). * iteration number: number of iterations for Laplace smoothing

Users can choose if 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 you're going 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

[MeshGenerators]
  [./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'
    inner_mesh_fraction = 0.6
    has_outer_square = on
    pitch = 1.42063
    #portion = left_half
    preserve_volumes = off
    smoothing_max_it = 3
  []
[]

[Mesh]
  type = MeshGeneratorMesh
[]

[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/concentric_circle_mesh_generator/concentric_circle_mesh_generator.i)

Input Parameters

  • has_outer_squareFalseIt determines if meshes for a outer square are added to concentric circle meshes.

    Default:False

    C++ Type:bool

    Options:

    Description:It determines if meshes for a outer square are added to concentric circle meshes.

  • preserve_volumesFalseVolume of concentric circles can be preserved using this function.

    Default:False

    C++ Type:bool

    Options:

    Description:Volume of concentric circles can be preserved using this function.

  • ringsNumber of rings in each circle or in the enclosing square

    C++ Type:std::vector

    Options:

    Description:Number of rings in each circle or in the enclosing square

  • 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

    Options:

    Description:num_sectors % 2 = 0, num_sectors > 0Number of azimuthal sectors in each quadrant'num_sectors' must be an even number.

  • radiiRadii of major concentric circles

    C++ Type:std::vector

    Options:

    Description:Radii of major concentric circles

  • inner_mesh_fractionLength of inner square / radius of the innermost circle

    C++ Type:double

    Options:

    Description:Length of inner square / radius of the innermost circle

Required Parameters

  • portionfullControl of which part of mesh is created

    Default:full

    C++ Type:MooseEnum

    Options:full top_right top_left bottom_left bottom_right right_half left_half top_half bottom_half

    Description:Control of which part of mesh is created

  • smoothing_max_it1Number of Laplacian smoothing iterations

    Default:1

    C++ Type:unsigned int

    Options:

    Description:Number of Laplacian smoothing iterations

  • pitch0The enclosing square can be added to the completed concentric circle mesh.Elements are quad meshes.

    Default:0

    C++ Type:double

    Options:

    Description:The enclosing square can be added to the completed concentric circle mesh.Elements are quad meshes.

Optional Parameters

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

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Options:

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

Input Files