https://mooseframework.inl.gov
PatternedPolygonPeripheralModifierBase.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 #include "MooseEnum.h"
14 #include "MeshMetaDataInterface.h"
15 #include "LinearInterpolation.h"
16 
24 {
25 public:
27 
29 
30  std::unique_ptr<MeshBase> generate() override;
31 
32 protected:
34  const MeshGeneratorName _input_name;
36  const BoundaryName _input_mesh_external_boundary;
38  const unsigned int _new_num_sector;
42  const SubdomainName _transition_layer_name;
44  const unsigned int _num_layers;
46  const std::vector<std::string> _extra_id_names_to_modify;
48  const std::vector<dof_id_type> _new_extra_id_values_to_assign;
50  std::unique_ptr<MeshBase> & _mesh;
54  unsigned int _num_sides;
55 
64  ReplicatedMesh & mesh,
65  const std::vector<std::pair<Point, std::vector<dof_id_type>>> ref_extra_ids);
66 };
const MeshGeneratorName _input_name
Name of the input mesh that needs the modification.
const std::vector< std::string > _extra_id_names_to_modify
Names of extra element integers in the input mesh that need to be retained or reassigned in the trans...
const subdomain_id_type _transition_layer_id
Block ID of the transition layer to be generated.
boundary_id_type _input_mesh_external_bid
Boundary ID of the external boundary of the input mesh.
const InputParameters & parameters() const
const std::vector< dof_id_type > _new_extra_id_values_to_assign
Customized values to be used to reassign the extra element integers in the transition layer...
PatternedPolygonPeripheralModifierBase(const InputParameters &parameters)
unsigned int _num_sides
Number of sides of the mesh to be generated.
int8_t boundary_id_type
const unsigned int _new_num_sector
Target number of mesh sectors on each side of the square.
This PatternedPolygonPeripheralModifierBase is the base class for PatternedCartesianPeripheralModifie...
std::unique_ptr< MeshBase > & _mesh
The main mesh used in this class.
const SubdomainName _transition_layer_name
Block name of the transition layer to be generated.
A base class that contains common members for Reactor module mesh generators.
const unsigned int _num_layers
Number of element layers of the transition layer to be generated.
const BoundaryName _input_mesh_external_boundary
External boundary name of the input mesh.
void transferExtraElemIntegers(ReplicatedMesh &mesh, const std::vector< std::pair< Point, std::vector< dof_id_type >>> ref_extra_ids)
Assign extra element integers to the newly generated transition layer mesh based on the nearest eleme...