-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #26052 from shikhar413/bypass_meshgen
Option to bypass mesh generation using RGMB mesh generators
- Loading branch information
Showing
23 changed files
with
2,331 additions
and
566 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
299 changes: 163 additions & 136 deletions
299
modules/reactor/src/meshgenerators/AssemblyMeshGenerator.C
Large diffs are not rendered by default.
Oops, something went wrong.
459 changes: 239 additions & 220 deletions
459
modules/reactor/src/meshgenerators/CoreMeshGenerator.C
Large diffs are not rendered by default.
Oops, something went wrong.
430 changes: 225 additions & 205 deletions
430
modules/reactor/src/meshgenerators/PinMeshGenerator.C
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 33 additions & 0 deletions
33
modules/reactor/test/include/meshgenerators/TestReactorGeometryMeshBuilderMeshGenerator.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
//* This file is part of the MOOSE framework | ||
//* https://www.mooseframework.org | ||
//* | ||
//* All rights reserved, see COPYRIGHT for full restrictions | ||
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT | ||
//* | ||
//* Licensed under LGPL 2.1, please see LICENSE for details | ||
//* https://www.gnu.org/licenses/lgpl-2.1.html | ||
|
||
#pragma once | ||
|
||
#include "MeshGenerator.h" | ||
|
||
class TestReactorGeometryMeshBuilderMeshGenerator : public MeshGenerator | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
TestReactorGeometryMeshBuilderMeshGenerator(const InputParameters & parameters); | ||
|
||
std::unique_ptr<MeshBase> generate() override; | ||
|
||
private: | ||
/// the input mesh name | ||
const std::string _input; | ||
|
||
/// The final mesh that is generated by the subgenerators; | ||
/// This mesh is pointed to by the input. We store it so we can later reset it in `generate`. | ||
std::unique_ptr<MeshBase> * _input_mesh; | ||
|
||
/// The final mesh that is generated by the subgenerators; | ||
std::unique_ptr<MeshBase> * _build_mesh; | ||
}; |
56 changes: 56 additions & 0 deletions
56
modules/reactor/test/src/meshgenerators/TestReactorGeometryMeshBuilderMeshGenerator.C
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
//* This file is part of the MOOSE framework | ||
//* https://www.mooseframework.org | ||
//* | ||
//* All rights reserved, see COPYRIGHT for full restrictions | ||
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT | ||
//* | ||
//* Licensed under LGPL 2.1, please see LICENSE for details | ||
//* https://www.gnu.org/licenses/lgpl-2.1.html | ||
|
||
#include "TestReactorGeometryMeshBuilderMeshGenerator.h" | ||
#include "ReactorGeometryMeshBuilderBase.h" | ||
|
||
registerMooseObject("ReactorTestApp", TestReactorGeometryMeshBuilderMeshGenerator); | ||
|
||
InputParameters | ||
TestReactorGeometryMeshBuilderMeshGenerator::validParams() | ||
{ | ||
InputParameters params = MeshGenerator::validParams(); | ||
params.addRequiredParam<MeshGeneratorName>("input", "Input core mesh"); | ||
return params; | ||
} | ||
|
||
TestReactorGeometryMeshBuilderMeshGenerator::TestReactorGeometryMeshBuilderMeshGenerator(const InputParameters & params) | ||
: MeshGenerator(params), | ||
_input(getParam<MeshGeneratorName>("input")), | ||
_input_mesh(&getMesh("input")) | ||
{ | ||
// Assumes input has been generated by CoreMeshGenerator and contains valid metadata for generation | ||
const auto reactor_params_name = getMeshProperty<std::string>(RGMB::reactor_params_name, _input); | ||
|
||
// Get assembly pitch from metadata and define a circular mesh that preserves volume of assembly structure | ||
const auto assembly_pitch = getMeshProperty<double>(RGMB::assembly_pitch, reactor_params_name); | ||
const auto mesh_geometry = getMeshProperty<std::string>(RGMB::mesh_geometry, reactor_params_name); | ||
double vol_multiplier = (mesh_geometry == "Square") ? 1.0 : std::sqrt(3) / 2; | ||
double equivalent_volume = vol_multiplier * assembly_pitch * assembly_pitch; | ||
double equivalent_radius = std::sqrt(equivalent_volume / M_PI); | ||
|
||
{ | ||
auto mesh_params = _app.getFactory().getValidParams("AdvancedConcentricCircleGenerator"); | ||
mesh_params.set<std::vector<double>>("ring_radii") = {equivalent_radius}; | ||
mesh_params.set<std::vector<unsigned int>>("ring_intervals") = {1}; | ||
mesh_params.set<unsigned int>("num_sectors") = 8; | ||
addMeshSubgenerator("AdvancedConcentricCircleGenerator", "eqv_core_circle", mesh_params); | ||
|
||
_build_mesh = &getMeshByName("eqv_core_circle"); | ||
} | ||
} | ||
|
||
std::unique_ptr<MeshBase> | ||
TestReactorGeometryMeshBuilderMeshGenerator::generate() | ||
{ | ||
// Input mesh is essentially a data store to build the equivalent core, so we reset it as it is no | ||
// longer needed. The mesh we care about is the one created by the subgenerator | ||
_input_mesh->reset(); | ||
return std::move(*_build_mesh); | ||
} |
76 changes: 76 additions & 0 deletions
76
modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_2d_datadriven.i
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
[Mesh] | ||
[rmp] | ||
type = ReactorMeshParams | ||
dim = 2 | ||
geom = "Hex" | ||
assembly_pitch = 3.7884 | ||
radial_boundary_id = 200 | ||
[] | ||
|
||
[pin1] | ||
type = PinMeshGenerator | ||
reactor_params = rmp | ||
pin_type = 1 | ||
pitch = 1.3425 | ||
region_ids = '1 2' | ||
quad_center_elements = false | ||
num_sectors = 2 | ||
ring_radii = 0.5404 | ||
mesh_intervals = '1 1' | ||
[] | ||
|
||
[amg1] | ||
type = AssemblyMeshGenerator | ||
assembly_type = 1 | ||
inputs = 'pin1' | ||
pattern = '0 0; | ||
0 0 0; | ||
0 0' | ||
background_intervals = 1 | ||
background_region_id = 3 | ||
duct_halfpitch = 1.7703 | ||
duct_intervals = 1 | ||
duct_region_ids = 4 | ||
[] | ||
|
||
[cmg] | ||
type = CoreMeshGenerator | ||
inputs = 'amg1' | ||
dummy_assembly_name = empty | ||
pattern = '0 0; | ||
0 0 0; | ||
0 0' | ||
extrude = false | ||
mesh_periphery = true | ||
periphery_generator = quad_ring | ||
periphery_region_id = 5 | ||
outer_circle_radius = 7 | ||
periphery_num_layers = 1 | ||
desired_area = 5.0 | ||
[] | ||
[test_rgmb] | ||
type = TestReactorGeometryMeshBuilderMeshGenerator | ||
input = cmg | ||
[] | ||
data_driven_generator = test_rgmb | ||
[] | ||
|
||
[Problem] | ||
solve = false | ||
[] | ||
|
||
[Executioner] | ||
type = Steady | ||
[] | ||
|
||
[Reporters/metadata] | ||
type = MeshMetaDataReporter | ||
[] | ||
|
||
[Outputs] | ||
[out] | ||
type = JSON | ||
execute_on = FINAL | ||
execute_system_information_on = none | ||
[] | ||
[] |
Oops, something went wrong.