https://mooseframework.inl.gov
ConcentricCircleGeneratorBase.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 
19 {
20 public:
22 
24 
25  virtual std::unique_ptr<MeshBase> generate() override = 0;
26 
27 protected:
29  const std::vector<Real> _ring_radii;
31  const std::vector<unsigned int> _ring_intervals;
33  const std::vector<Real> _ring_radial_biases;
39  std::vector<subdomain_id_type> _ring_block_ids;
41  std::vector<SubdomainName> _ring_block_names;
43  const bool _preserve_volumes;
57  const BoundaryName _external_boundary_name;
59  const std::vector<std::string> _inward_interface_boundary_names;
61  const std::vector<std::string> _outward_interface_boundary_names;
67  unsigned short _order;
68 
73  void assignInterfaceBoundaryNames(ReplicatedMesh & mesh) const;
74 
83  void assignBlockIdsNames(ReplicatedMesh & mesh,
84  std::vector<subdomain_id_type> & block_ids_old,
85  std::vector<subdomain_id_type> & block_ids_new,
86  std::vector<SubdomainName> & block_names,
87  const std::string & generator_name) const;
88 
97  void ringBlockIdsNamesPreparer(unsigned int & block_counter,
98  unsigned int & ring_block_num,
99  std::vector<subdomain_id_type> & block_ids_old,
100  std::vector<subdomain_id_type> & block_ids_new,
101  std::vector<SubdomainName> & block_names) const;
102 };
const std::vector< unsigned int > _ring_intervals
Number of rings in each circle or in the enclosing square.
const boundary_id_type _interface_boundary_id_shift
Shift in default boundary IDs of interfaces to avert potential conflicts.
const std::vector< std::string > _outward_interface_boundary_names
Boundary Names of the mesh&#39;s outward interface boundaries.
const subdomain_id_type _block_id_shift
Shift in default subdomain IDs to avert potential conflicts with other meshes.
QUAD_ELEM_TYPE _quad_elem_type
Type of quadrilateral elements to be generated.
const bool _preserve_volumes
Volume preserving function is optional.
const boundary_id_type _external_boundary_id
Boundary ID of the mesh&#39;s external boundary.
Contains multiple blocks&#39;s boundary layer related parameters.
multiBdryLayerParams _ring_inner_boundary_layer_params
Widths, fractions, radial sectors and growth factors of the inner boundary layers of the ring regions...
const std::vector< Real > _ring_radii
Radii of concentric circles.
void assignBlockIdsNames(ReplicatedMesh &mesh, std::vector< subdomain_id_type > &block_ids_old, std::vector< subdomain_id_type > &block_ids_new, std::vector< SubdomainName > &block_names, const std::string &generator_name) const
Assign block IDs and names to the mesh if applicable.
void ringBlockIdsNamesPreparer(unsigned int &block_counter, unsigned int &ring_block_num, std::vector< subdomain_id_type > &block_ids_old, std::vector< subdomain_id_type > &block_ids_new, std::vector< SubdomainName > &block_names) const
Prepare user-defined ring block IDs and names to replace the default ones.
const bool _create_outward_interface_boundaries
Whether outward interface boundaries are created.
const std::vector< std::string > _inward_interface_boundary_names
Boundary Names of the mesh&#39;s inward interface boundaries.
multiBdryLayerParams _ring_outer_boundary_layer_params
Widths, fractions, radial sectors and growth factors of the outer boundary layers of the ring regions...
int8_t boundary_id_type
ConcentricCircleGeneratorBase(const InputParameters &parameters)
virtual std::unique_ptr< MeshBase > generate() override=0
const bool _create_inward_interface_boundaries
Whether inward interface boundaries are created.
const std::vector< Real > _ring_radial_biases
Bias values used to induce biasing to radial meshing in ring regions.
std::vector< SubdomainName > _ring_block_names
Subdomain Names of the ring regions.
const BoundaryName _external_boundary_name
Boundary Name of the mesh&#39;s external boundary.
A base class that contains common members for Reactor module mesh generators.
std::vector< subdomain_id_type > _ring_block_ids
Subdomain IDs of the ring regions.
const InputParameters & parameters() const
This ConcentricCircleGeneratorBase object is a base class to be inherited for mesh generators that in...
TRI_ELEM_TYPE _tri_elem_type
Type of triangular elements to be generated.
const bool _generate_side_specific_boundaries
Whether the side-specific external boundaries are generated or not.
unsigned short _order
Order of the elements to be generated.
void assignInterfaceBoundaryNames(ReplicatedMesh &mesh) const
Assign interface boundary names to the mesh if applicable.