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
12 #include "MooseEnum.h"
13 #include "MeshMetaDataInterface.h"
14 #include "LinearInterpolation.h"
15 
23 {
24 public:
26 
28 
29  std::unique_ptr<MeshBase> generate() override;
30 
31 protected:
33  const MeshGeneratorName _input_name;
35  const BoundaryName _input_mesh_external_boundary;
37  const unsigned int _new_num_sector;
41  const SubdomainName _transition_layer_name;
43  const unsigned int _num_layers;
45  const std::vector<std::string> _extra_id_names_to_modify;
47  const std::vector<dof_id_type> _new_extra_id_values_to_assign;
49  std::unique_ptr<MeshBase> & _mesh;
53  unsigned int _num_sides;
54 
63  ReplicatedMesh & mesh,
64  const std::vector<std::pair<Point, std::vector<dof_id_type>>> ref_extra_ids);
65 };
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 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 InputParameters & parameters() const
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...