https://mooseframework.inl.gov
PeripheralRingMeshGenerator.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
12 #include "MooseEnum.h"
13 #include "MooseMeshUtils.h"
14 #include "MeshMetaDataInterface.h"
15 
20 {
21 public:
23 
25 
26  std::unique_ptr<MeshBase> generate() override;
27 
28 protected:
30  const MeshGeneratorName _input_name;
34  const unsigned int _peripheral_layer_num;
44  const bool _preserve_volumes;
46  const BoundaryName _input_mesh_external_boundary;
50  const SubdomainName _peripheral_ring_block_name;
54  const BoundaryName _external_boundary_name;
56  std::unique_ptr<MeshBase> & _input;
59 
74  void innerBdryLayerNodesDefiner(const unsigned int input_ext_node_num,
75  const std::vector<Real> input_bdry_angles,
76  const std::vector<Point> ref_inner_bdry_surf,
77  const std::vector<Real> inner_peripheral_bias_terms,
78  const std::vector<Real> azi_array,
79  const Point origin_pt,
80  std::vector<std::vector<Point>> & points_array) const;
81 };
const SubdomainName _peripheral_ring_block_name
Subdomain name of the added peripheral region.
const BoundaryName _input_mesh_external_boundary
Name of the external boundary of the input mesh.
std::unique_ptr< MeshBase > & _input
Reference to input mesh pointer.
static InputParameters validParams()
This PeripheralRingMeshGenerator object adds a circular peripheral region to the input mesh...
const subdomain_id_type _peripheral_ring_block_id
Subdomain ID of the added peripheral region.
const BoundaryName _external_boundary_name
Name of the new external boundary.
Contains a single block&#39;s boundary layer related parameters.
const bool _force_input_centroid_as_center
Whether to enforce use of the centroid position of the input mesh as the center of the peripheral rin...
const Real _peripheral_ring_radius
Radius of the peripheral region&#39;s outer circular boundary.
std::unique_ptr< MeshBase > generate() override
PeripheralRingMeshGenerator(const InputParameters &parameters)
singleBdryLayerParams _peripheral_inner_boundary_layer_params
Width, fraction, radiation sectors and growth factor of the inner boundary layer of the peripheral re...
int8_t boundary_id_type
boundary_id_type _input_mesh_external_bid
ID of the external boundary of the input mesh.
Real _peripheral_radial_bias
Bias value used to induce biasing to radial meshing in peripheral ring region.
void innerBdryLayerNodesDefiner(const unsigned int input_ext_node_num, const std::vector< Real > input_bdry_angles, const std::vector< Point > ref_inner_bdry_surf, const std::vector< Real > inner_peripheral_bias_terms, const std::vector< Real > azi_array, const Point origin_pt, std::vector< std::vector< Point >> &points_array) const
Define node positions of the inner boundary layer that is conformal to the input mesh&#39;s external boun...
const boundary_id_type _external_boundary_id
ID of the new external boundary.
const bool _preserve_volumes
Volume preserving function is optional.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
A base class that contains common members for Reactor module mesh generators.
singleBdryLayerParams _peripheral_outer_boundary_layer_params
Width, fraction, radiation sectors and growth factor of the outer boundary layer of the peripheral re...
const InputParameters & parameters() const
const MeshGeneratorName _input_name
Name of the mesh generator to get the input mesh.
const unsigned int _peripheral_layer_num
Number of layers of elements of the peripheral region in radial direction.