https://mooseframework.inl.gov
Loading...
Searching...
No Matches
DuctedPinEngUnit.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://www.mooseframework.org
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
12#include "CSGUniverseEngUnit.h"
13#include "CSGBase.h"
14
15namespace CSG
16{
17
31{
32public:
47 DuctedPinEngUnit(const std::string & name,
48 const std::string & geometry_type,
49 const std::vector<Real> & ring_radii,
50 const std::vector<Real> & duct_apothems,
51 const std::vector<std::vector<std::string>> & region_names,
52 const std::vector<Real> & axial_plane_levels,
53 const std::vector<std::string> & axial_plane_names);
61 std::unordered_map<std::string, AttributeVariant> getAttributes() const override;
62
63protected:
69 std::unique_ptr<CSGUniverseEngUnit> clone() const override;
70
75 void expandUnit() override;
76
82 const std::string getGeometryTypeString() const { return _geometry_type; }
83
84private:
86 const std::vector<Real> _ring_radii;
87
89 const std::vector<Real> _duct_apothems;
90
92 std::vector<std::vector<std::string>> _region_names;
93
95 std::vector<Real> _axial_plane_levels;
96
98 std::vector<std::string> _axial_plane_names;
99
102};
103
104} // namespace CSG
const std::string name
Definition Setup.h:21
DuctedPinEngUnit is a CSGUniverseEngUnit that represents a pin cell structure (concentric cylinders s...
std::unique_ptr< CSGUniverseEngUnit > clone() const override
Return a deep copy of this unit.
std::vector< Real > _axial_plane_levels
Axial plane levels for an extruded pin cell.
void expandUnit() override
Represent the pin cell as a single universe that contains cells that define each region of the pin ce...
const std::string getGeometryTypeString() const
Get the geometry type as a string.
MooseEnum _geometry_type
Geometry type of pin cell structure (hex or square)
std::unordered_map< std::string, AttributeVariant > getAttributes() const override
Return the pin engeering unit attributes for this object.
std::vector< std::vector< std::string > > _region_names
Region IDs of pin cell.
const std::vector< Real > _ring_radii
List of ring radii of pin cell.
const std::vector< Real > _duct_apothems
List of duct apothems of pin cell.
std::vector< std::string > _axial_plane_names
Axial plane names for an extruded pin cell.