24 "trim_peripheral_region",
25 std::vector<unsigned short>(4, 0),
26 "trim_peripheral_region<=1",
27 "Whether the peripheral region on each of the four sides will be trimmed in an assembly " 28 "mesh. See documentation for numbering convention.");
31 "across-center (0, 0, 0) trimming for " 32 "assembly or core 2D meshes generated by PatternedCartesianMG.");
52 "this parameter must be provided along with center_trim_ending_index.");
60 "the remaining mesh after center trimming defined by this parameter and " 61 "center_trim_ending_index must be equal or smaller than half of the " 65 "this input parameter is not used if center trimming is not performed.");
68 std::unique_ptr<MeshBase>
72 if (hasMeshProperty<bool>(
"square_peripheral_trimmability",
_input_name) &&
73 hasMeshProperty<bool>(
"square_center_trimmability",
_input_name))
75 if (!getMeshProperty<bool>(
"square_peripheral_trimmability",
_input_name) &&
77 paramError(
"input",
"The input mesh does not have a trimmable peripheral region.");
78 if (!getMeshProperty<bool>(
"square_center_trimmability",
_input_name) &&
80 paramError(
"input",
"The input mesh cannot be trimmed through its center.");
84 "The input mesh's meta data is not compatible with the CartesianMeshTrimmer because " 85 "the trimmability mesh meta data are absent.");
std::vector< unsigned short > _trim_peripheral_region
Index of the peripheral regions to be trimmed (see moosedocs for indexing scheme) ...
This CartesianMeshTrimmer object takes in a cartesian assembly or core mesh and performs peripheral a...
CartesianMeshTrimmer(const InputParameters ¶meters)
unsigned int _num_sides
Number of polygon sides.
static InputParameters validParams()
short _trimming_end_sector
Index of the sector to end trimming at (counter-clockwise direction)
const BoundaryName _center_trimming_section_boundary
Name of the section formed by center trimming.
std::unique_ptr< MeshBase > generate() override
This PolygonMeshTrimmerBase is the base class for CartesianMeshTrimmer and HexagonMeshTrimmer, which take in a cartesian/hexagonal assembly or core mesh and perform peripheral and/or center trimming on it.
bool isParamValid(const std::string &name) const
std::size_t euclideanMod(T1 dividend, T2 divisor)
unsigned short _center_trim_sector_number
Number of remaining sectors.
void paramError(const std::string ¶m, Args... args) const
const MeshGeneratorName _input_name
Input mesh to be modified.
registerMooseObject("ReactorApp", CartesianMeshTrimmer)
short _trimming_start_sector
Index of the sector to start trimming from (counter-clockwise direction)
std::unique_ptr< MeshBase > generate() override
static InputParameters validParams()