This RevolveGenerator object is designed to revolve a 1D mesh into 2D, or a 2D mesh into 3D based on an axis. More...
#include <RevolveGenerator.h>
Public Types | |
enum | PolygonSizeStyle { PolygonSizeStyle::apothem, PolygonSizeStyle::radius } |
An enum class for style of input polygon size. More... | |
enum | MESH_TYPE { CORNER_MESH = 1, BOUNDARY_MESH = 2, INNER_MESH = 3 } |
enum | RETURN_TYPE { ANGLE_DEGREE = 1, ANGLE_TANGENT = 2 } |
enum | INTRISIC_SUBDOMAIN_ID : subdomain_id_type { PERIPHERAL_ID_SHIFT = 1000, TRANSITION_LAYER_DEFAULT = 10000 } |
enum | INTRINSIC_SIDESET_ID : boundary_id_type { OUTER_SIDESET_ID = 10000, OUTER_SIDESET_ID_ALT = 15000, SLICE_BEGIN = 30000, SLICE_END = 31000, SLICE_ALT = 30500 } |
enum | INTRINSIC_NUM_SIDES { HEXAGON_NUM_SIDES = 6, SQUARE_NUM_SIDES = 4 } |
enum | TRI_ELEM_TYPE { TRI_ELEM_TYPE::TRI3, TRI_ELEM_TYPE::TRI6, TRI_ELEM_TYPE::TRI7 } |
enum | QUAD_ELEM_TYPE { QUAD_ELEM_TYPE::QUAD4, QUAD_ELEM_TYPE::QUAD8, QUAD_ELEM_TYPE::QUAD9 } |
typedef DataFileName | DataFileParameterType |
Public Member Functions | |
RevolveGenerator (const InputParameters ¶meters) | |
std::unique_ptr< MeshBase > | generate () override |
std::unique_ptr< MeshBase > | generateInternal () |
const std::set< MeshGeneratorName > & | getRequestedMeshGenerators () const |
const std::set< MeshGeneratorName > & | getRequestedMeshGeneratorsForSub () const |
void | addParentMeshGenerator (const MeshGenerator &mg, const AddParentChildKey) |
void | addChildMeshGenerator (const MeshGenerator &mg, const AddParentChildKey) |
const std::set< const MeshGenerator *, Comparator > & | getParentMeshGenerators () const |
const std::set< const MeshGenerator *, Comparator > & | getChildMeshGenerators () const |
const std::set< const MeshGenerator *, Comparator > & | getSubMeshGenerators () const |
bool | isParentMeshGenerator (const MeshGeneratorName &name, const bool direct=true) const |
bool | isChildMeshGenerator (const MeshGeneratorName &name, const bool direct=true) const |
bool | isNullMeshName (const MeshGeneratorName &name) const |
bool | hasSaveMesh () const |
bool | hasOutput () const |
const std::string & | getSavedMeshName () const |
bool | hasGenerateData () const |
bool | isDataOnly () const |
virtual bool | enabled () const |
std::shared_ptr< MooseObject > | getSharedPtr () |
std::shared_ptr< const MooseObject > | getSharedPtr () const |
MooseApp & | getMooseApp () const |
const std::string & | type () const |
virtual const std::string & | name () const |
std::string | typeAndName () const |
std::string | errorPrefix (const std::string &error_type) const |
void | callMooseError (std::string msg, const bool with_prefix) const |
MooseObjectParameterName | uniqueParameterName (const std::string ¶meter_name) const |
const InputParameters & | parameters () const |
MooseObjectName | uniqueName () const |
const T & | getParam (const std::string &name) const |
std::vector< std::pair< T1, T2 > > | getParam (const std::string ¶m1, const std::string ¶m2) const |
const T * | queryParam (const std::string &name) const |
const T & | getRenamedParam (const std::string &old_name, const std::string &new_name) const |
T | getCheckedPointerParam (const std::string &name, const std::string &error_string="") const |
bool | isParamValid (const std::string &name) const |
bool | isParamSetByUser (const std::string &nm) const |
void | paramError (const std::string ¶m, Args... args) const |
void | paramWarning (const std::string ¶m, Args... args) const |
void | paramInfo (const std::string ¶m, Args... args) const |
void | connectControllableParams (const std::string ¶meter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const |
void | mooseError (Args &&... args) const |
void | mooseErrorNonPrefixed (Args &&... args) const |
void | mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const |
void | mooseWarning (Args &&... args) const |
void | mooseWarningNonPrefixed (Args &&... args) const |
void | mooseDeprecated (Args &&... args) const |
void | mooseInfo (Args &&... args) const |
std::string | getDataFileName (const std::string ¶m) const |
std::string | getDataFileNameByName (const std::string &relative_path) const |
std::string | getDataFilePath (const std::string &relative_path) const |
const Parallel::Communicator & | comm () const |
processor_id_type | n_processors () const |
processor_id_type | processor_id () const |
Static Public Member Functions | |
static InputParameters | validParams () |
static bool | hasGenerateData (const InputParameters ¶ms) |
static void | setHasGenerateData (InputParameters ¶ms) |
Public Attributes | |
const ConsoleStream | _console |
Static Public Attributes | |
static const std::string | data_only_param |
static constexpr auto | SYSTEM |
static constexpr auto | NAME |
Protected Member Functions | |
std::pair< Real, Point > | getRotationCenterAndRadius (const Point &p_ext, const Point &p_axis, const Point &dir_axis) const |
Get the rotation center and radius of the circular rotation based on the rotation axis and the external point. More... | |
std::vector< Point > | rotationVectors (const Point &p_axis, const Point &dir_axis, const Point &p_input) const |
Calculate the transform matrix between the rotation coordinate system and the original coordinate system. More... | |
std::pair< std::vector< dof_id_type >, std::vector< dof_id_type > > | onAxisNodesIdentifier (const Elem &elem, const std::vector< dof_id_type > &nodes_on_axis) const |
Categorize the nodes of an element into two groups: nodes on the axis and nodes off the axis. More... | |
void | nodeModification (Node &node) |
Modify the position of a node to account for radius correction. More... | |
void | createQUADfromEDGE (const ElemType quad_elem_type, const Elem *elem, const std::unique_ptr< MeshBase > &mesh, std::unique_ptr< Elem > &new_elem, const int current_layer, const unsigned int orig_nodes, const unsigned int total_num_azimuthal_intervals, std::vector< std::pair< dof_id_type, dof_id_type >> &side_pairs, bool &is_flipped) const |
Create a new QUAD element from an existing EDGE element by revolving it. More... | |
void | createTRIfromEDGE (const std::pair< std::vector< dof_id_type >, std::vector< dof_id_type >> &nodes_cates, const ElemType tri_elem_type, const Elem *elem, const std::unique_ptr< MeshBase > &mesh, std::unique_ptr< Elem > &new_elem, const int current_layer, const unsigned int orig_nodes, const unsigned int total_num_azimuthal_intervals, std::vector< std::pair< dof_id_type, dof_id_type >> &side_pairs, dof_id_type &axis_node_case, bool &is_flipped) const |
Create a new TRI element from an existing EDGE element by revolving it. More... | |
void | createPRISMfromTRI (const ElemType prism_elem_type, const Elem *elem, const std::unique_ptr< MeshBase > &mesh, std::unique_ptr< Elem > &new_elem, const int current_layer, const unsigned int orig_nodes, const unsigned int total_num_azimuthal_intervals, std::vector< std::pair< dof_id_type, dof_id_type >> &side_pairs, bool &is_flipped) const |
Create a new PRISM element from an existing TRI element by revolving it. More... | |
void | createPYRAMIDfromTRI (const std::pair< std::vector< dof_id_type >, std::vector< dof_id_type >> &nodes_cates, const ElemType pyramid_elem_type, const Elem *elem, const std::unique_ptr< MeshBase > &mesh, std::unique_ptr< Elem > &new_elem, const int current_layer, const unsigned int orig_nodes, const unsigned int total_num_azimuthal_intervals, std::vector< std::pair< dof_id_type, dof_id_type >> &side_pairs, dof_id_type &axis_node_case, bool &is_flipped) const |
Create a new PYRAMID element from an existing TRI element by revolving it. More... | |
void | createTETfromTRI (const std::pair< std::vector< dof_id_type >, std::vector< dof_id_type >> &nodes_cates, const ElemType tet_elem_type, const Elem *elem, const std::unique_ptr< MeshBase > &mesh, std::unique_ptr< Elem > &new_elem, const int current_layer, const unsigned int orig_nodes, const unsigned int total_num_azimuthal_intervals, std::vector< std::pair< dof_id_type, dof_id_type >> &side_pairs, dof_id_type &axis_node_case, bool &is_flipped) const |
Create a new TET element from an existing TRI element by revolving it. More... | |
void | createHEXfromQUAD (const ElemType hex_elem_type, const Elem *elem, const std::unique_ptr< MeshBase > &mesh, std::unique_ptr< Elem > &new_elem, const int current_layer, const unsigned int orig_nodes, const unsigned int total_num_azimuthal_intervals, std::vector< std::pair< dof_id_type, dof_id_type >> &side_pairs, bool &is_flipped) const |
Create a new HEX element from an existing QUAD element by revolving it. More... | |
void | createPRISMfromQUAD (const std::pair< std::vector< dof_id_type >, std::vector< dof_id_type >> &nodes_cates, const ElemType prism_elem_type, const Elem *elem, const std::unique_ptr< MeshBase > &mesh, std::unique_ptr< Elem > &new_elem, const int current_layer, const unsigned int orig_nodes, const unsigned int total_num_azimuthal_intervals, std::vector< std::pair< dof_id_type, dof_id_type >> &side_pairs, dof_id_type &axis_node_case, bool &is_flipped) const |
Create a new PRISM element from an existing QUAD element by revolving it. More... | |
void | createPYRAMIDPRISMfromQUAD (const std::pair< std::vector< dof_id_type >, std::vector< dof_id_type >> &nodes_cates, const ElemType pyramid_elem_type, const ElemType prism_elem_type, const Elem *elem, const std::unique_ptr< MeshBase > &mesh, std::unique_ptr< Elem > &new_elem, std::unique_ptr< Elem > &new_elem_1, const int current_layer, const unsigned int orig_nodes, const unsigned int total_num_azimuthal_intervals, std::vector< std::pair< dof_id_type, dof_id_type >> &side_pairs, dof_id_type &axis_node_case, bool &is_flipped, bool &is_flipped_additional) const |
Create a new PYRAMID element and a new PRISM element from an existing QUAD element by revolving it. More... | |
std::unique_ptr< ReplicatedMesh > | buildSimpleSlice (std::vector< Real > ring_radii, const std::vector< unsigned int > ring_layers, const std::vector< Real > ring_radial_biases, const multiBdryLayerParams &ring_inner_boundary_layer_params, const multiBdryLayerParams &ring_outer_boundary_layer_params, std::vector< Real > ducts_center_dist, const std::vector< unsigned int > ducts_layers, const std::vector< Real > duct_radial_biases, const multiBdryLayerParams &duct_inner_boundary_layer_params, const multiBdryLayerParams &duct_outer_boundary_layer_params, const Real pitch, const unsigned int num_sectors_per_side, const unsigned int background_intervals, const Real background_radial_bias, const singleBdryLayerParams &background_inner_boundary_layer_params, const singleBdryLayerParams &background_outer_boundary_layer_params, dof_id_type &node_id_background_meta, const unsigned int side_number, const unsigned int side_index, const std::vector< Real > azimuthal_tangent=std::vector< Real >(), const subdomain_id_type block_id_shift=0, const bool quad_center_elements=false, const Real center_quad_factor=0.0, const bool create_inward_interface_boundaries=false, const bool create_outward_interface_boundaries=true, const boundary_id_type boundary_id_shift=0, const bool generate_side_specific_boundaries=true, const TRI_ELEM_TYPE tri_elem_type=TRI_ELEM_TYPE::TRI3, const QUAD_ELEM_TYPE quad_elem_type=QUAD_ELEM_TYPE::QUAD4) |
Creates a mesh of a slice that corresponds to a single side of the polygon to be generated. More... | |
std::unique_ptr< ReplicatedMesh > | buildGeneralSlice (std::vector< Real > ring_radii, const std::vector< unsigned int > ring_layers, const std::vector< Real > ring_radial_biases, const multiBdryLayerParams &ring_inner_boundary_layer_params, const multiBdryLayerParams &ring_outer_boundary_layer_params, std::vector< Real > ducts_center_dist, const std::vector< unsigned int > ducts_layers, const std::vector< Real > duct_radial_biases, const multiBdryLayerParams &duct_inner_boundary_layer_params, const multiBdryLayerParams &duct_outer_boundary_layer_params, const Real primary_side_length, const Real secondary_side_length, const unsigned int num_sectors_per_side, const unsigned int background_intervals, const Real background_radial_bias, const singleBdryLayerParams &background_inner_boundary_layer_params, const singleBdryLayerParams &background_outer_boundary_layer_params, dof_id_type &node_id_background_meta, const Real azimuthal_angle, const std::vector< Real > azimuthal_tangent, const unsigned int side_index, const bool quad_center_elements, const Real center_quad_factor, const Real rotation_angle, const bool generate_side_specific_boundaries=true) |
Creates a mesh of a general polygon slice with a triangular shape and circular regions on one of its vertex. More... | |
std::unique_ptr< ReplicatedMesh > | buildSlice (std::vector< Real > ring_radii, const std::vector< unsigned int > ring_layers, const std::vector< Real > ring_radial_biases, const multiBdryLayerParams &ring_inner_boundary_layer_params, const multiBdryLayerParams &ring_outer_boundary_layer_params, std::vector< Real > ducts_center_dist, const std::vector< unsigned int > ducts_layers, const std::vector< Real > duct_radial_biases, const multiBdryLayerParams &duct_inner_boundary_layer_params, const multiBdryLayerParams &duct_outer_boundary_layer_params, const Real pitch, const unsigned int num_sectors_per_side, const unsigned int background_intervals, const Real background_radial_bias, const singleBdryLayerParams &background_inner_boundary_layer_params, const singleBdryLayerParams &background_outer_boundary_layer_params, dof_id_type &node_id_background_meta, const Real virtual_side_number, const unsigned int side_index, const std::vector< Real > azimuthal_tangent=std::vector< Real >(), const subdomain_id_type block_id_shift=0, const bool quad_center_elements=false, const Real center_quad_factor=0.0, const bool create_inward_interface_boundaries=false, const bool create_outward_interface_boundaries=true, const boundary_id_type boundary_id_shift=0, const Real pitch_scale_factor=1.0, const bool generate_side_specific_boundaries=true, const TRI_ELEM_TYPE tri_elem_type=TRI_ELEM_TYPE::TRI3, const QUAD_ELEM_TYPE quad_elem_type=QUAD_ELEM_TYPE::QUAD4) |
Generates a mesh of a polygon slice, which is the foundation of both buildGeneralSlice and buildSimpleSlice. More... | |
void | centerNodes (ReplicatedMesh &mesh, const Real virtual_side_number, const unsigned int div_num, const Real ring_radii_0, std::vector< std::vector< Node *>> &nodes) const |
Creates nodes of the very central mesh layer of the polygon for quad central elements. More... | |
void | ringNodes (ReplicatedMesh &mesh, const std::vector< Real > ring_radii, const std::vector< unsigned int > ring_layers, const std::vector< std::vector< Real >> biased_terms, const unsigned int num_sectors_per_side, const Real corner_p[2][2], const Real corner_to_corner, const std::vector< Real > azimuthal_tangent=std::vector< Real >()) const |
Creates nodes for the ring-geometry region of a single slice. More... | |
void | backgroundNodes (ReplicatedMesh &mesh, const unsigned int num_sectors_per_side, const unsigned int background_intervals, const std::vector< Real > biased_terms, const Real background_corner_distance, const Real background_corner_radial_interval_length, const Real corner_p[2][2], const Real corner_to_corner, const Real background_in, const std::vector< Real > azimuthal_tangent=std::vector< Real >()) const |
Creates nodes for the ring-to-polygon transition region (i.e., background) of a single slice. More... | |
void | ductNodes (ReplicatedMesh &mesh, std::vector< Real > *const ducts_center_dist, const std::vector< unsigned int > ducts_layers, const std::vector< std::vector< Real >> biased_terms, const unsigned int num_sectors_per_side, const Real corner_p[2][2], const Real corner_to_corner, const std::vector< Real > azimuthal_tangent=std::vector< Real >()) const |
Creates nodes for the duct-geometry region of a single slice. More... | |
void | cenQuadElemDef (ReplicatedMesh &mesh, const unsigned int div_num, const subdomain_id_type block_id_shift, const bool create_outward_interface_boundaries, const boundary_id_type boundary_id_shift, std::vector< std::vector< Node *>> &nodes, const bool assign_external_boundary=false, const unsigned int side_index=0, const bool generate_side_specific_boundaries=true, const QUAD_ELEM_TYPE quad_elem_type=QUAD_ELEM_TYPE::QUAD4) const |
Defines quad elements in the very central region of the polygon. More... | |
void | cenTriElemDef (ReplicatedMesh &mesh, const unsigned int num_sectors_per_side, const std::vector< Real > azimuthal_tangent=std::vector< Real >(), const subdomain_id_type block_id_shift=0, const bool create_outward_interface_boundaries=true, const boundary_id_type boundary_id_shift=0, const bool assign_external_boundary=false, const unsigned int side_index=0, const bool generate_side_specific_boundaries=true, const TRI_ELEM_TYPE tri_elem_type=TRI_ELEM_TYPE::TRI3) const |
Defines triangular elements in the very central region of the polygon. More... | |
void | quadElemDef (ReplicatedMesh &mesh, const unsigned int num_sectors_per_side, const std::vector< unsigned int > subdomain_rings, const unsigned int side_index, const std::vector< Real > azimuthal_tangent=std::vector< Real >(), const subdomain_id_type block_id_shift=0, const dof_id_type nodeid_shift=0, const bool create_inward_interface_boundaries=false, const bool create_outward_interface_boundaries=true, const boundary_id_type boundary_id_shift=0, const bool generate_side_specific_boundaries=true, const QUAD_ELEM_TYPE quad_elem_type=QUAD_ELEM_TYPE::QUAD4) const |
Defines general quad elements for the polygon. More... | |
std::unique_ptr< ReplicatedMesh > | buildSimplePeripheral (const unsigned int num_sectors_per_side, const unsigned int peripheral_invervals, const std::vector< std::pair< Real, Real >> &position_inner, const std::vector< std::pair< Real, Real >> &d_position_outer, const subdomain_id_type id_shift, const QUAD_ELEM_TYPE quad_elem_type, const bool create_inward_interface_boundaries=false, const bool create_outward_interface_boundaries=true) |
Creates peripheral area mesh for the patterned hexagon mesh. More... | |
void | adjustPeripheralQuadraticElements (MeshBase &out_mesh, const QUAD_ELEM_TYPE boundary_quad_elem_type) const |
Adjusts the mid-edge node locations in boundary regions when using quadratic elements with uniform boundary node spacing enabled. More... | |
std::pair< Real, Real > | pointInterpolate (const Real pi_1_x, const Real pi_1_y, const Real po_1_x, const Real po_1_y, const Real pi_2_x, const Real pi_2_y, const Real po_2_x, const Real po_2_y, const unsigned int i, const unsigned int j, const unsigned int num_sectors_per_side, const unsigned int peripheral_intervals) const |
Calculates the point coordinates of within a parallelogram region using linear interpolation. More... | |
void | nodeCoordRotate (Real &x, Real &y, const Real theta) const |
Calculates x and y coordinates after rotating by theta angle. More... | |
void | cutOffPolyDeform (MeshBase &mesh, const Real orientation, const Real y_max_0, const Real y_max_n, const Real y_min, const unsigned int mesh_type, const Real unit_angle=60.0, const Real tols=1E-5) const |
Deforms peripheral region when the external side of a polygon assembly of stitched meshes cuts off the stitched meshes. More... | |
std::pair< Real, Real > | fourPointIntercept (const std::pair< Real, Real > &p1, const std::pair< Real, Real > &p2, const std::pair< Real, Real > &p3, const std::pair< Real, Real > &p4) const |
Finds the center of a quadrilateral based on four vertices. More... | |
std::vector< Real > | azimuthalAnglesCollector (ReplicatedMesh &mesh, std::vector< Point > &boundary_points, const Real lower_azi=-30.0, const Real upper_azi=30.0, const unsigned int return_type=ANGLE_TANGENT, const unsigned int num_sides=6, const boundary_id_type bid=OUTER_SIDESET_ID, const bool calculate_origin=true, const Real input_origin_x=0.0, const Real input_origin_y=0.0, const Real tol=1.0E-10) const |
Collects sorted azimuthal angles of the external boundary. More... | |
std::vector< Real > | azimuthalAnglesCollector (ReplicatedMesh &mesh, const Real lower_azi=-30.0, const Real upper_azi=30.0, const unsigned int return_type=ANGLE_TANGENT, const unsigned int num_sides=6, const boundary_id_type bid=OUTER_SIDESET_ID, const bool calculate_origin=true, const Real input_origin_x=0.0, const Real input_origin_y=0.0, const Real tol=1.0E-10) const |
Collects sorted azimuthal angles of the external boundary. More... | |
std::vector< std::vector< Real > > | biasTermsCalculator (const std::vector< Real > radial_biases, const std::vector< unsigned int > intervals, const multiBdryLayerParams inner_boundary_layer_params, const multiBdryLayerParams outer_boundary_layer_params) const |
Creates bias terms for multiple blocks. More... | |
std::vector< Real > | biasTermsCalculator (const Real radial_bias, const unsigned int intervals, const singleBdryLayerParams inner_boundary_layer_params={0.0, 0.0, 0, 1.0}, const singleBdryLayerParams outer_boundary_layer_params={0.0, 0.0, 0, 1.0}) const |
Creates bias terms for a single block. More... | |
void | setSectorExtraIDs (MeshBase &mesh, const std::string id_name, const unsigned int num_sides, const std::vector< unsigned int > num_sectors_per_side) |
assign sector extra ids to polygon mesh More... | |
void | setRingExtraIDs (MeshBase &mesh, const std::string id_name, const unsigned int num_sides, const std::vector< unsigned int > num_sectors_per_side, const std::vector< unsigned int > ring_intervals, const bool ring_wise_id, const bool quad_center_elements) |
assign ring extra ids to polygon mesh More... | |
void | reassignBoundaryIDs (MeshBase &mesh, const boundary_id_type id_shift, const std::set< boundary_id_type > &boundary_ids, const bool reverse=false) |
reassign interface boundary IDs on the input mesh by applying the boundary ID shift More... | |
std::set< boundary_id_type > | getInterfaceBoundaryIDs (const std::vector< std::vector< unsigned int >> &pattern, const std::vector< std::vector< boundary_id_type >> &interface_boundary_id_shift_pattern, const std::set< boundary_id_type > &boundary_ids, const std::vector< std::set< boundary_id_type >> &input_interface_boundary_ids, const bool use_interface_boundary_id_shift, const bool create_interface_boundary_id, const unsigned int num_extra_layers) const |
returns a list of interface boundary IDs on the mesh generated by this mesh generator More... | |
multiBdryLayerParams | modifiedMultiBdryLayerParamsCreator (const multiBdryLayerParams &original_multi_bdry_layer_params, const unsigned int order) const |
Modifies the input multi boundary layer parameters for node generation, especially for the quadratic elements. More... | |
singleBdryLayerParams | modifiedSingleBdryLayerParamsCreator (const singleBdryLayerParams &original_single_bdry_layer_params, const unsigned int order) const |
Modifies the input single boundary layer parameters for node generation, especially for the quadratic elements. More... | |
std::string | pitchMetaDataErrorGenerator (const std::vector< MeshGeneratorName > &input_names, const std::vector< Real > &metadata_vals, const std::string &metadata_name) const |
Generate a string that contains the detailed metadata information for inconsistent input mesh metadata error messages. More... | |
virtual void | generateData () |
T & | copyMeshProperty (const std::string &target_data_name, const std::string &source_data_name, const std::string &source_mesh) |
T & | copyMeshProperty (const std::string &source_data_name, const std::string &source_mesh) |
std::unique_ptr< MeshBase > & | getMesh (const std::string ¶m_name, const bool allow_invalid=false) |
std::vector< std::unique_ptr< MeshBase > *> | getMeshes (const std::string ¶m_name) |
std::unique_ptr< MeshBase > & | getMeshByName (const MeshGeneratorName &mesh_generator_name) |
std::vector< std::unique_ptr< MeshBase > *> | getMeshesByName (const std::vector< MeshGeneratorName > &mesh_generator_names) |
void | declareMeshForSub (const std::string ¶m_name) |
void | declareMeshesForSub (const std::string ¶m_name) |
void | declareMeshForSubByName (const MeshGeneratorName &mesh_generator_name) |
void | declareMeshesForSubByName (const std::vector< MeshGeneratorName > &mesh_generator_names) |
std::unique_ptr< MeshBase > | buildMeshBaseObject (unsigned int dim=libMesh::invalid_uint) |
std::unique_ptr< ReplicatedMesh > | buildReplicatedMesh (unsigned int dim=libMesh::invalid_uint) |
std::unique_ptr< DistributedMesh > | buildDistributedMesh (unsigned int dim=libMesh::invalid_uint) |
void | addMeshSubgenerator (const std::string &type, const std::string &name, Ts... extra_input_parameters) |
void | addMeshSubgenerator (const std::string &type, const std::string &name, InputParameters params) |
void | declareNullMeshName (const MeshGeneratorName &name) |
const T & | getMeshProperty (const std::string &data_name, const std::string &prefix) |
const T & | getMeshProperty (const std::string &data_name) |
bool | hasMeshProperty (const std::string &data_name, const std::string &prefix) const |
bool | hasMeshProperty (const std::string &data_name, const std::string &prefix) const |
bool | hasMeshProperty (const std::string &data_name) const |
bool | hasMeshProperty (const std::string &data_name) const |
std::string | meshPropertyName (const std::string &data_name) const |
T & | declareMeshProperty (const std::string &data_name, Args &&... args) |
T & | declareMeshProperty (const std::string &data_name, const T &data_value) |
T & | declareMeshProperty (const std::string &data_name, Args &&... args) |
T & | declareMeshProperty (const std::string &data_name, const T &data_value) |
T & | setMeshProperty (const std::string &data_name, Args &&... args) |
T & | setMeshProperty (const std::string &data_name, const T &data_value) |
T & | setMeshProperty (const std::string &data_name, Args &&... args) |
T & | setMeshProperty (const std::string &data_name, const T &data_value) |
Static Protected Member Functions | |
static void | addRingAndSectorIDParams (InputParameters ¶ms) |
Add InputParameters which are used by ring and sector IDs. More... | |
static std::string | meshPropertyName (const std::string &data_name, const std::string &prefix) |
Protected Attributes | |
std::unique_ptr< MeshBase > & | _input |
Lower dimensional mesh from another generator. More... | |
const Point & | _axis_point |
A point of the axis of revolution. More... | |
const Point & | _axis_direction |
A direction vector of the axis of revolution. More... | |
const std::vector< Real > | _revolving_angles |
Angles of revolution delineating each azimuthal section. More... | |
const std::vector< std::vector< subdomain_id_type > > & | _subdomain_swaps |
Subdomains to swap out for each azimuthal section. More... | |
const std::vector< std::vector< boundary_id_type > > & | _boundary_swaps |
Boundaries to swap out for each elevation. More... | |
const std::vector< std::string > & | _elem_integer_names_to_swap |
Names and indices of extra element integers to swap. More... | |
std::vector< unsigned int > | _elem_integer_indices_to_swap |
const std::vector< std::vector< std::vector< dof_id_type > > > & | _elem_integers_swaps |
Extra element integers to swap out for each elevation and each element integer name. More... | |
const bool & | _clockwise |
Revolving direction. More... | |
const std::vector< unsigned int > & | _nums_azimuthal_intervals |
Numbers of azimuthal mesh intervals in each azimuthal section. More... | |
const bool | _preserve_volumes |
Volume preserving function is optional. More... | |
bool | _has_start_boundary |
Whether a starting boundary is specified. More... | |
boundary_id_type | _start_boundary |
Boundary ID of the starting boundary. More... | |
bool | _has_end_boundary |
Whether an ending boundary is specified. More... | |
std::vector< std::unordered_map< subdomain_id_type, subdomain_id_type > > | _subdomain_swap_pairs |
Easier to work with version of _sudomain_swaps. More... | |
std::vector< std::unordered_map< boundary_id_type, boundary_id_type > > | _boundary_swap_pairs |
Easier to work with version of _boundary_swaps. More... | |
std::vector< std::unordered_map< dof_id_type, dof_id_type > > | _elem_integers_swap_pairs |
Easier to work with version of _elem_integers_swaps. More... | |
bool | _full_circle_revolving |
Whether to revolve for a full circle or not. More... | |
std::vector< Real > | _unit_angles |
Unit angles of all azimuthal sections of revolution. More... | |
boundary_id_type | _end_boundary |
Boundary ID of the ending boundary. More... | |
Real | _radius_correction_factor |
Radius correction factor. More... | |
MooseMesh *const | _mesh |
const bool & | _enabled |
MooseApp & | _app |
const std::string | _type |
const std::string | _name |
const InputParameters & | _pars |
Factory & | _factory |
ActionFactory & | _action_factory |
const Parallel::Communicator & | _communicator |
This RevolveGenerator object is designed to revolve a 1D mesh into 2D, or a 2D mesh into 3D based on an axis.
Definition at line 17 of file RevolveGenerator.h.
|
inherited |
Enumerator | |
---|---|
HEXAGON_NUM_SIDES | |
SQUARE_NUM_SIDES |
Definition at line 75 of file PolygonMeshGeneratorBase.h.
|
inherited |
Enumerator | |
---|---|
OUTER_SIDESET_ID | |
OUTER_SIDESET_ID_ALT | |
SLICE_BEGIN | |
SLICE_END | |
SLICE_ALT |
Definition at line 66 of file PolygonMeshGeneratorBase.h.
|
inherited |
Enumerator | |
---|---|
PERIPHERAL_ID_SHIFT | |
TRANSITION_LAYER_DEFAULT |
Definition at line 60 of file PolygonMeshGeneratorBase.h.
|
inherited |
Enumerator | |
---|---|
CORNER_MESH | |
BOUNDARY_MESH | |
INNER_MESH |
Definition at line 47 of file PolygonMeshGeneratorBase.h.
|
stronginherited |
An enum class for style of input polygon size.
Enumerator | |
---|---|
apothem | |
radius |
Definition at line 41 of file PolygonMeshGeneratorBase.h.
|
stronginherited |
|
inherited |
|
stronginherited |
RevolveGenerator::RevolveGenerator | ( | const InputParameters & | parameters | ) |
Definition at line 110 of file RevolveGenerator.C.
|
staticprotectedinherited |
Add InputParameters which are used by ring and sector IDs.
params | InputParameters to be modified with the added params |
Definition at line 1598 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonConcentricCircleMeshGeneratorBase::validParams(), and TriPinHexAssemblyGenerator::validParams().
|
protectedinherited |
Adjusts the mid-edge node locations in boundary regions when using quadratic elements with uniform boundary node spacing enabled.
out_mesh | mesh to be adjusted. |
boundary_quad_elem_type | boundary quad element type. |
Definition at line 1253 of file PolygonMeshGeneratorBase.C.
Referenced by PatternedHexMeshGenerator::generate(), and PatternedCartesianMeshGenerator::generate().
|
protectedinherited |
Collects sorted azimuthal angles of the external boundary.
mesh | input mesh whose boundary node azimuthal angles need to be collected |
boundary_points | reference vector to contain the Points corresponding to the collected azimuthal angles |
lower_azi | lower boundary of the azimuthal angles to be collected |
upper_azi | upper boundary of the azimuthal angles to be collected |
return_type | whether angle values or tangent values are returned |
num_sides | number of sides of the input mesh (only used if return type is ANGLE_TANGENT) |
bid | id of the boundary of which the nodes' azimuthal angles are collected |
calculate_origin | whether the mesh origin is calculated based on the centroid position |
input_origin_x | precalculated mesh origin coordinate x |
input_origin_y | precalculated mesh origin coordinate y |
tol | tolerance that the minimum azimuthal angle is |
Referenced by AzimuthalBlockSplitGenerator::generate(), PolygonConcentricCircleMeshGeneratorBase::generate(), and PatternedPolygonPeripheralModifierBase::generate().
|
protectedinherited |
Collects sorted azimuthal angles of the external boundary.
mesh | input mesh whose boundary node azimuthal angles need to be collected |
lower_azi | lower boundary of the azimuthal angles to be collected |
upper_azi | upper boundary of the azimuthal angles to be collected |
return_type | whether angle values or tangent values are returned |
num_sides | number of sides of the input mesh (only used if return type is ANGLE_TANGENT) |
bid | id of the boundary of which the nodes' azimuthal angles are collected |
calculate_origin | whether the mesh origin is calculated based on the centroid position |
input_origin_x | precalculated mesh origin coordinate x |
input_origin_y | precalculated mesh origin coordinate y |
tol | tolerence that the minimum azimuthal angle is |
|
protectedinherited |
Creates nodes for the ring-to-polygon transition region (i.e., background) of a single slice.
mesh | input mesh to add the nodes onto |
num_sectors_per_side | number of azimuthal intervals |
background_intervals | number of radial intervals of the background region |
biased_terms | normalized spacing values used for radial meshing biasing in background region |
background_corner_distance | center to duct (innermost duct) corner distance |
background_corner_radial_interval_length | radial interval distance |
corner_p[2][2] | array contains the coordinates of the corner positions |
corner_to_corner | diameter of the circumscribed circle of the polygon |
background_in | radius of the inner boundary of the background region |
azimuthal_tangent | vector of tangent values of the azimuthal angles as reference for adaptive boundary matching |
Definition at line 720 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSlice().
|
protectedinherited |
Creates bias terms for multiple blocks.
radial_biases | bias growth factors of the elements within the main regions of the blocks |
intervals | radial interval numbers of the main regions of the blocks |
inner_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the inner boundary layers |
outer_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the outer boundary layers |
Definition at line 1523 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSlice(), and PeripheralRingMeshGenerator::generate().
|
protectedinherited |
Creates bias terms for a single block.
radial_bias | bias growth factor of the elements within the main region of the block |
intervals | radial interval number of the main region of the block |
inner_boundary_layer_params | width, radial fraction, radial sector, and growth factor of the inner boundary layer |
outer_boundary_layer_params | width, radial fraction, radial sector, and growth factor of the outer boundary layer |
Definition at line 1545 of file PolygonMeshGeneratorBase.C.
|
protectedinherited |
Creates a mesh of a general polygon slice with a triangular shape and circular regions on one of its vertex.
ring_radii | radii of the ring regions |
ring_layers | numbers of radial intervals of the ring regions |
ring_radial_biases | values used for radial meshing biasing in ring regions |
ring_inner_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the inner boundary layer of the ring regions |
ring_outer_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the outer boundary layer of the ring regions |
ducts_center_dist | distance parameters of the duct regions |
ducts_layers | numbers of radial intervals of the duct regions |
duct_radial_biases | values used for radial meshing biasing in duct regions |
duct_inner_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the inner boundary layer of the duct regions |
duct_outer_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the outer boundary layer of the duct regions |
primary_side_length | length of the first side (i.e., the side that is parallel to y-axis when rotation_angle is zero) that involves the ring center vertex |
secondary_side_length | length of the second side (obtained by clockwise rotating the fist side by azimuthal_angle) that involves the ring center vertex |
num_sectors_per_side | number of azimuthal intervals |
background_intervals | number of radial intervals of the background region |
background_radial_bias | value used for radial meshing biasing in background region |
background_inner_boundary_layer_params | width, radial sectors, and growth factor of the inner boundary layer of the background region |
background_outer_boundary_layer_params | width, radial sectors, and growth factor of the outer boundary layer of the background region |
node_id_background_meta | pointer to the first node's id of the background region |
azimuthal_angle | the angle defined by the primary and secondary sides |
azimuthal_tangent | vector of tangent values of the azimuthal angles as reference for adaptive boundary matching |
side_index | index of the polygon side |
quad_center_elements | whether the central region contains quad elements or not |
center_quad_factor | A fractional radius factor used to determine the radial positions of transition nodes in the center region meshed by quad elements (default is 1.0 - 1.0/div_num) |
rotation_angle | azimuthal angle of the primary side |
generate_side_specific_boundaries | whether the side-specific external boundaries are generated or not |
Definition at line 42 of file PolygonMeshGeneratorBase.C.
Referenced by TriPinHexAssemblyGenerator::buildSinglePinSection().
|
protectedinherited |
Creates peripheral area mesh for the patterned hexagon mesh.
Note that the function create the peripheral area for each side of the unit hexagon mesh before stitching. An edge unit hexagon has two sides that need peripheral areas, whereas a corner unit hexagon has three such sides. The positions of the inner and outer boundary nodes are pre-calculated as positions_inner and d_positions_outer; This function performs interpolation to generate the mesh grid.
mesh | input mesh to create the peripheral area mesh onto |
num_sectors_per_side | number of azimuthal intervals |
peripheral_invervals | number of radial intervals of the peripheral region |
position_inner | key positions of the inner side of the peripheral region |
d_position_outer | key inremental positions of the outer side of the peripheral region |
id_shift | shift of subdomain id of the peripheral region |
create_inward_interface_boundaries | whether inward interface boundary sidesets are created |
create_outward_interface_boundaries | whether outward interface boundary sidesets are created |
quad_elem_type | type of quad element to be created |
Definition at line 1153 of file PolygonMeshGeneratorBase.C.
Referenced by PatternedHexMeshGenerator::addPeripheralMesh(), and PatternedCartesianMeshGenerator::addPeripheralMesh().
|
protectedinherited |
Creates a mesh of a slice that corresponds to a single side of the polygon to be generated.
ring_radii | radii of the ring regions |
ring_layers | numbers of radial intervals of the ring regions |
ring_radial_biases | values used for radial meshing biasing in ring regions |
ring_inner_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the inner boundary layer of the ring regions |
ring_outer_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the outer boundary layer of the ring regions |
ducts_center_dist | distance parameters of the duct regions |
ducts_layers | numbers of radial intervals of the duct regions |
duct_radial_biases | values used for radial meshing biasing in duct regions |
duct_inner_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the inner boundary layer of the duct regions |
duct_outer_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the outer boundary layer of the duct regions |
pitch | twice the distance from the ring center vertex to the side defined by the other vertices |
num_sectors_per_side | number of azimuthal intervals |
background_intervals | number of radial intervals of the background region |
background_radial_bias | value used for radial meshing biasing in background region |
background_inner_boundary_layer_params | width, radial sectors, and growth factor of the inner boundary layer of the background region |
background_outer_boundary_layer_params | width, radial sectors, and growth factor of the outer boundary layer of the background region |
node_id_background_meta | pointer to the first node's id of the background region |
side_number | number of sides of the polygon |
side_index | index of the polygon side |
azimuthal_tangent | vector of tangent values of the azimuthal angles as reference for adaptive boundary matching |
block_id_shift | shift of the subdomain ids generated by this function |
quad_center_elements | whether the central region contrains quad elements or not |
center_quad_factor | A fractional radius factor used to determine the radial positions of transition nodes in the center region meshed by quad elements (default is 1.0 - 1.0/div_num) |
create_inward_interface_boundaries | whether inward interface boundary sidesets are created |
create_outward_interface_boundaries | whether outward interface boundary sidesets are created |
boundary_id_shift | shift of the interface boundary ids |
generate_side_specific_boundaries | whether the side-specific external boundaries are generated or not |
tri_elem_type | type of the triangular elements to be generated |
quad_elem_type | type of the quadrilateral elements to be generated |
Definition at line 106 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonConcentricCircleMeshGeneratorBase::generate().
|
protectedinherited |
Generates a mesh of a polygon slice, which is the foundation of both buildGeneralSlice and buildSimpleSlice.
ring_radii | radii of the ring regions |
ring_layers | numbers of radial intervals of the ring regions |
ring_radial_biases | values used for radial meshing biasing in ring regions |
ring_inner_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the inner boundary layer of the ring regions |
ring_outer_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the outer boundary layer of the ring regions |
ducts_center_dist | distance parameters of the duct regions |
ducts_layers | numbers of radial intervals of the duct regions |
duct_radial_biases | values used for radial meshing biasing in duct regions |
duct_inner_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the inner boundary layer of the duct regions |
duct_outer_boundary_layer_params | widths, radial fractions, radial sectors, and growth factors of the outer boundary layer of the duct regions |
pitch | twice of the length of the first side times cosine of the azimuthal angle |
num_sectors_per_side | number of azimuthal intervals |
background_intervals | number of radial intervals of the background region |
background_radial_bias | value used for radial meshing biasing in background region |
background_inner_boundary_layer_params | width, radial sectors, and growth factor of the inner boundary layer of the background region |
background_outer_boundary_layer_params | width, radial sectors, and growth factor of the outer boundary layer of the background region |
node_id_background_meta | pointer to the first node's id of the background region |
virtual_side_number | 360.0 over the azimuthal angle of the slice (happens to be number of sides of the polygon if a regular polygon is to be generated) |
side_index | index of the polygon side |
azimuthal_tangent | vector of tangent values of the azimuthal angles as reference for adaptive boundary matching |
block_id_shift | shift of the subdomain ids generated by this function |
quad_center_elements | whether the central region contrains quad elements or not |
center_quad_factor | A fractional radius factor used to determine the radial positions of transition nodes in the center region meshed by quad elements (default is 1.0 - 1.0/div_num) |
create_inward_interface_boundaries | whether inward interface boundary sidesets are created |
create_outward_interface_boundaries | whether outward interface boundary sidesets are created |
boundary_id_shift | shift of the interface boundary ids |
pitch_scale_factor | the ratio between the secondary side length to the primary side length. |
generate_side_specific_boundaries | whether the side-specific external boundaries are generated or not |
tri_elem_type | type of the triangular elements to be generated |
quad_elem_type | type of the quadrilateral elements to be generated |
Definition at line 170 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildGeneralSlice(), PolygonMeshGeneratorBase::buildSimpleSlice(), and AdvancedConcentricCircleGenerator::generate().
|
protectedinherited |
Defines quad elements in the very central region of the polygon.
mesh | input mesh to create the elements onto |
div_num | division number of the central mesh layer |
block_id_shift | shift of the subdomain ids generated by this function |
create_outward_interface_boundaries | whether outward interface boundary sidesets are created |
boundary_id_shift | shift of the interface boundary ids |
id_array | pointer to a vector that contains the node_ids with basic geometry information |
assign_external_boundary | whether the external boundary ids are assigned |
side_index | index of the polygon side (only used if external boundary ids are assigned) |
generate_side_specific_boundaries | whether the side-specific external boundaries are generated or not |
quad_elem_type | type of the quadrilateral elements to be generated |
Definition at line 853 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSlice().
|
protectedinherited |
Creates nodes of the very central mesh layer of the polygon for quad central elements.
mesh | input mesh to add the nodes onto |
virtual_side_number | virtual number of sides of the polygon (360/slice_azimuthal) |
div_num | division number of the central mesh layer |
ring_radii_0 | radius of the central mesh layer |
nodes | pointer to the mesh's nodes |
nodes | vector that contains the nodes with basic geometry information |
Definition at line 577 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSlice().
|
protectedinherited |
Defines triangular elements in the very central region of the polygon.
mesh | input mesh to create the elements onto |
num_sectors_per_side | number of azimuthal intervals |
azimuthal_tangent | vector of tangent values of the azimuthal angles as reference for adaptive boundary matching |
block_id_shift | shift of the subdomain ids generated by this function |
create_outward_interface_boundaries | whether outward interface boundary sidesets are created |
boundary_id_shift | shift of the interface boundary ids |
assign_external_boundary | whether the external boundary ids are assigned |
side_index | index of the polygon side (only used if external boundary ids are assigned) |
generate_side_specific_boundaries | whether the side-specific external boundaries are generated or not |
tri_elem_type | type of the triangular elements to be generated |
Definition at line 989 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSlice().
|
protected |
Create a new HEX element from an existing QUAD element by revolving it.
hex_elem_type | the type of the new HEX element |
elem | the QUAD element to be revolved |
mesh | the mesh that the new HEX element will be added to |
new_elem | the new HEX element |
current_layer | the current layer of the revolving |
orig_nodes | the number of nodes in the original mesh |
total_num_azimuthal_intervals | the total number of azimuthal intervals for revolving |
side_pairs | a vector of pairs to record the corresponding side indices of the original and the new elements |
is_flipped | a flag to indicate whether the new element is flipped after creation (to ensure a positive element volume) |
Definition at line 2043 of file RevolveGenerator.C.
Referenced by generate().
|
protected |
Create a new PRISM element from an existing QUAD element by revolving it.
nodes_cates | a pair of two lists of node IDs: the first list is for nodes on the axis, and the second list is for nodes off the axis |
prism_elem_type | the type of the new PRISM element |
elem | the QUAD element to be revolved |
mesh | the mesh that the new PRISM element will be added to |
new_elem | the new PRISM element |
current_layer | the current layer of the revolving |
orig_nodes | the number of nodes in the original mesh |
total_num_azimuthal_intervals | the total number of azimuthal intervals for revolving |
side_pairs | a vector of pairs to record the corresponding side indices of the original and the new elements |
axis_node_case | a parameter to record on-axis node(s) |
is_flipped | a flag to indicate whether the new element is flipped after creation (to ensure a positive element volume) |
Definition at line 2181 of file RevolveGenerator.C.
Referenced by generate().
|
protected |
Create a new PRISM element from an existing TRI element by revolving it.
prism_elem_type | the type of the new TET element |
elem | the TRI element to be revolved |
mesh | the mesh that the new TET element will be added to |
new_elem | the new TET element |
current_layer | the current layer of the revolving |
orig_nodes | the number of nodes in the original mesh |
total_num_azimuthal_intervals | the total number of azimuthal intervals for revolving |
side_pairs | a vector of pairs to record the corresponding side indices of the original and the new elements |
is_flipped | a flag to indicate whether the new element is flipped after creation (to ensure a positive element volume) |
Definition at line 1689 of file RevolveGenerator.C.
Referenced by generate().
|
protected |
Create a new PYRAMID element from an existing TRI element by revolving it.
nodes_cates | a pair of two lists of node IDs: the first list is for nodes on the axis, and the second list is for nodes off the axis |
pyramid_elem_type | the type of the new PYRAMID element |
elem | the TRI element to be revolved |
mesh | the mesh that the new PYRAMID element will be added to |
new_elem | the new PYRAMID element |
current_layer | the current layer of the revolving |
orig_nodes | the number of nodes in the original mesh |
total_num_azimuthal_intervals | the total number of azimuthal intervals for revolving |
side_pairs | a vector of pairs to record the corresponding side indices of the original and the new elements |
axis_node_case | a parameter to record on-axis node(s) |
is_flipped | a flag to indicate whether the new element is flipped after creation (to ensure a positive element volume) |
Definition at line 1806 of file RevolveGenerator.C.
Referenced by generate().
|
protected |
Create a new PYRAMID element and a new PRISM element from an existing QUAD element by revolving it.
nodes_cates | a pair of two lists of node IDs: the first list is for nodes on the axis, and the second list is for nodes off the axis |
pyramid_elem_type | the type of the new PYRAMID element |
prism_elem_type | the type of the new PRISM element |
elem | the QUAD element to be revolved |
mesh | the mesh that the new PYRAMID element will be added to |
new_elem | the new PYRAMID element |
new_elem_1 | the new PRISM element |
current_layer | the current layer of the revolving |
orig_nodes | the number of nodes in the original mesh |
total_num_azimuthal_intervals | the total number of azimuthal intervals for revolving |
side_pairs | a vector of pairs to record the corresponding side indices of the original and the new elements |
axis_node_case | a parameter to record on-axis node(s) |
is_flipped | a flag to indicate whether the PYRAMID element is flipped after creation (to ensure a positive element volume) |
is_flipped_additional | a flag to indicate whether the PRISM element is flipped after (to ensure a positive element volume) creation |
Definition at line 2305 of file RevolveGenerator.C.
Referenced by generate().
|
protected |
Create a new QUAD element from an existing EDGE element by revolving it.
quad_elem_type | the type of the new QUAD element |
elem | the EDGE element to be revolved |
mesh | the mesh that the new QUAD element will be added to |
new_elem | the new QUAD element |
current_layer | the current azimuthal layer |
orig_nodes | the number of nodes in the original mesh |
total_num_azimuthal_intervals | the total number of azimuthal intervals for revolving |
side_pairs | a vector of pairs to record the corresponding side indices of the original and the new elements |
is_flipped | a flag to indicate whether the new element is flipped after creation (to ensure a positive element volume) |
Definition at line 1565 of file RevolveGenerator.C.
Referenced by generate().
|
protected |
Create a new TET element from an existing TRI element by revolving it.
nodes_cates | a pair of two lists of node IDs: the first list is for nodes on the axis, and the second list is for nodes off the axis |
tet_elem_type | the type of the new TET element |
elem | the TRI element to be revolved |
mesh | the mesh that the new TET element will be added to |
new_elem | the new TET element |
current_layer | the current layer of the revolving |
orig_nodes | the number of nodes in the original mesh |
total_num_azimuthal_intervals | the total number of azimuthal intervals for revolving |
side_pairs | a vector of pairs to record the corresponding side indices of the original and the new elements |
axis_node_case | a parameter to record on-axis node(s) |
is_flipped | a flag to indicate whether the new element is flipped after creation (to ensure a positive element volume) |
Definition at line 1926 of file RevolveGenerator.C.
Referenced by generate().
|
protected |
Create a new TRI element from an existing EDGE element by revolving it.
nodes_cates | a pair of two lists of node IDs: the first list is for nodes on the axis, and the second list is for nodes off the axis |
tri_elem_type | the type of the new TRI element |
elem | the EDGE element to be revolved |
mesh | the mesh that the new TRI element will be added to |
new_elem | the new TRI element |
current_layer | the current layer of the revolving |
orig_nodes | the number of nodes in the original mesh |
total_num_azimuthal_intervals | the total number of azimuthal intervals for revolving |
side_pairs | a vector of pairs to record the corresponding side indices of the original and the new elements |
axis_node_case | a parameter to record on-axis node(s) |
is_flipped | a flag to indicate whether the new element is flipped after creation (to ensure a positive element volume) |
Definition at line 1629 of file RevolveGenerator.C.
Referenced by generate().
|
protectedinherited |
Deforms peripheral region when the external side of a polygon assembly of stitched meshes cuts off the stitched meshes.
mesh | input mesh to be deformed |
orientation | orientation angle of the input mesh (move the deformation direction to y) |
y_max_0 | original maximum y position |
y_max_n | maximum y position after deformation |
y_min | minimum y position that is affected by the deformation |
mesh_type | whether the peripheral region is for a corner or a side hexagon mesh. |
tols | tolerance used to determine the boundary of deformation region |
unit_angle | unit angle of the geometry, which is 60.0 for hexagonal and 90.0 for square |
Definition at line 1329 of file PolygonMeshGeneratorBase.C.
Referenced by PatternedHexMeshGenerator::generate(), and PatternedCartesianMeshGenerator::generate().
|
protectedinherited |
Creates nodes for the duct-geometry region of a single slice.
mesh | input mesh to add the nodes onto |
ducts_center_dist | distance parameters of the duct regions |
ducts_layers | numbers of radial intervals of the duct regions |
biased_terms | normalized spacing values used for radial meshing biasing in duct region |
num_sectors_per_side | number of azimuthal intervals |
corner_p[2][2] | array contains the coordinates of the corner positions |
corner_to_corner | diameter of the circumscribed circle of the polygon |
azimuthal_tangent | vector of tangent values of the azimuthal angles as reference for adaptive boundary matching |
Definition at line 792 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSlice().
|
protectedinherited |
Finds the center of a quadrilateral based on four vertices.
p1 | vertex 1 |
p2 | vertex 2 |
p3 | vertex 3 |
p4 | vertex 4 |
Definition at line 1396 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::centerNodes(), and AzimuthalBlockSplitGenerator::nodeModifier().
|
overridevirtual |
Reimplemented from PolygonMeshGeneratorBase.
Definition at line 209 of file RevolveGenerator.C.
|
protectedinherited |
returns a list of interface boundary IDs on the mesh generated by this mesh generator
pattern | pattern of cells used in this mesh generator |
interface_boundary_id_shift_pattern | 2D pattern of shift values applied to the boundary IDs inside each pattern cells |
boundary_ids | list of boundary IDs on the mesh generated by this mesh generator |
input_interface_boundary_ids | list of interface boundary IDs of the pattern cells |
use_interface_boundary_id_shift | whether ID shifts are applied to interface boundary IDs of the pattern cells |
create_interface_boundary_id | whether interface boundary IDs are generated by this mesh generator |
num_extra_layers | number of extra layers to define background and duct regions on the patterned mesh generated by this mesh generator |
Definition at line 1722 of file PolygonMeshGeneratorBase.C.
Referenced by PatternedHexMeshGenerator::generate(), and PatternedCartesianMeshGenerator::generate().
|
protected |
Get the rotation center and radius of the circular rotation based on the rotation axis and the external point.
p_ext | external point that needs to be rotated |
p_axis | a point on the rotation axis |
dir_axis | direction vector of the rotation axis |
Definition at line 1502 of file RevolveGenerator.C.
Referenced by generate().
|
protectedinherited |
Modifies the input multi boundary layer parameters for node generation, especially for the quadratic elements.
original_multi_bdry_layer_params | original multi boundary layer parameters |
order | order of the elements |
Definition at line 1775 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSlice().
|
protectedinherited |
Modifies the input single boundary layer parameters for node generation, especially for the quadratic elements.
original_single_bdry_layer_params | original single boundary layer parameters |
order | order of the elements |
Definition at line 1789 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSlice().
|
protectedinherited |
Calculates x and y coordinates after rotating by theta angle.
x | x coordinate of the node to be rotated |
y | y coordinate of the node to be rotated |
theta | rotation angle |
Definition at line 1320 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::cutOffPolyDeform(), FlexiblePatternGenerator::FlexiblePatternGenerator(), PolygonConcentricCircleMeshGeneratorBase::generate(), PatternedHexMeshGenerator::generate(), and PatternedCartesianMeshGenerator::generate().
Modify the position of a node to account for radius correction.
node | the node to be modified |
Definition at line 1556 of file RevolveGenerator.C.
Referenced by generate().
|
protected |
Categorize the nodes of an element into two groups: nodes on the axis and nodes off the axis.
elem | the element whose nodes are to be categorized |
nodes_on_axis | a list of node IDs on the axis |
Definition at line 1535 of file RevolveGenerator.C.
Referenced by generate().
|
protectedinherited |
Generate a string that contains the detailed metadata information for inconsistent input mesh metadata error messages.
input_names | list of input mesh generator names |
metadata_vals | list of input mesh metadata values |
metadata_name | name of the input mesh metadata |
Definition at line 1799 of file PolygonMeshGeneratorBase.C.
Referenced by PatternedHexMeshGenerator::generate(), and PatternedCartesianMeshGenerator::generate().
|
protectedinherited |
Calculates the point coordinates of within a parallelogram region using linear interpolation.
pi_1_x | x coordinate of the first inner side point (parallelogram vertex) |
pi_1_y | y coordinate of the first inner side point (parallelogram vertex) |
po_1_x | x coordinate of the first outer side point (parallelogram vertex) |
po_1_y | y coordinate of the first outer side point (parallelogram vertex) |
pi_2_x | x coordinate of the second inner side point (parallelogram vertex) |
pi_2_y | y coordinate of the second inner side point (parallelogram vertex) |
po_2_x | x coordinate of the second outer side point (parallelogram vertex) |
po_2_y | y coordinate of the second outer side point (parallelogram vertex) |
i | passed loop index 1 |
j | passed loop index 2 |
num_sectors_per_side | number of azimuthal intervals |
peripheral_invervals | number of radial intervals of the peripheral region |
Definition at line 1293 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSimplePeripheral().
|
protectedinherited |
Defines general quad elements for the polygon.
mesh | input mesh to create the elements onto |
num_sectors_per_side | number of azimuthal intervals |
subdomain_rings | numbers of radial intervals of all involved subdomain layers |
side_index | index of the polygon side |
azimuthal_tangent | vector of tangent values of the azimuthal angles as reference for adaptive boundary matching |
block_id_shift | shift of the subdomain ids generated by this function |
nodeid_shift | shift of the node_ids of these elements |
create_inward_interface_boundaries | whether inward interface boundary sidesets are created |
create_outward_interface_boundaries | whether outward interface boundary sidesets are created |
boundary_id_shift | shift of the interface boundary ids |
generate_side_specific_boundaries | whether the side-specific external boundaries are generated or not |
quad_elem_type | type of the quadrilateral elements to be generated |
Definition at line 1053 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSlice().
|
protectedinherited |
reassign interface boundary IDs on the input mesh by applying the boundary ID shift
mesh | input mesh |
id_shift | ID shift value to be applied |
boundary_ids | list of boundary IDs to be reassigned |
reverse | remove boundary ID shift |
Definition at line 1703 of file PolygonMeshGeneratorBase.C.
Referenced by PatternedHexMeshGenerator::generate(), and PatternedCartesianMeshGenerator::generate().
|
protectedinherited |
Creates nodes for the ring-geometry region of a single slice.
mesh | input mesh to add the nodes onto |
ring_radii | radii of the ring regions |
ring_layers | numbers of radial intervals of the ring regions |
biased_terms | normalized spacing values used for radial meshing biasing in ring regions |
num_sectors_per_side | number of azimuthal intervals |
corner_p[2][2] | array contains the coordinates of the corner positions |
corner_to_corner | diameter of the circumscribed circle of the polygon |
azimuthal_tangent | vector of tangent values of the azimuthal angles as reference for adaptive boundary matching |
Definition at line 656 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonMeshGeneratorBase::buildSlice().
|
protected |
Calculate the transform matrix between the rotation coordinate system and the original coordinate system.
p_axis | a point on the rotation axis |
dir_axis | direction vector of the rotation axis |
p_input | a point in the input mesh |
Definition at line 1516 of file RevolveGenerator.C.
Referenced by generate().
|
protectedinherited |
assign ring extra ids to polygon mesh
mesh | input mesh where ring extra ids are assigned |
id_name | ring extra id name |
num_sides | number of polygon sides |
num_sectors_per_side | number of sectors of each side of the polygon |
ring_intervals | number of rings in each circle |
ring_wise_id | whether ring ids are assigned to each ring or to each block |
quad_center_elements | whether center elements are quad or triangular |
Definition at line 1638 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonConcentricCircleMeshGeneratorBase::generate(), and TriPinHexAssemblyGenerator::generate().
|
protectedinherited |
assign sector extra ids to polygon mesh
mesh | input mesh where sector extra ids are assigned |
id_name | sector extra ID name |
num_side | number of polygon sides |
num_sectors_per_side | number of sections of each side of the polygon |
Definition at line 1613 of file PolygonMeshGeneratorBase.C.
Referenced by PolygonConcentricCircleMeshGeneratorBase::generate(), and TriPinHexAssemblyGenerator::generate().
|
static |
Definition at line 42 of file RevolveGenerator.C.
|
protected |
A direction vector of the axis of revolution.
Definition at line 34 of file RevolveGenerator.h.
Referenced by generate(), and nodeModification().
|
protected |
A point of the axis of revolution.
Definition at line 31 of file RevolveGenerator.h.
Referenced by generate(), and nodeModification().
|
protected |
Easier to work with version of _boundary_swaps.
Definition at line 74 of file RevolveGenerator.h.
Referenced by generate(), and RevolveGenerator().
|
protected |
Boundaries to swap out for each elevation.
Definition at line 43 of file RevolveGenerator.h.
Referenced by RevolveGenerator().
|
protected |
|
protected |
Definition at line 47 of file RevolveGenerator.h.
Referenced by generate().
|
protected |
Names and indices of extra element integers to swap.
Definition at line 46 of file RevolveGenerator.h.
Referenced by generate(), and RevolveGenerator().
|
protected |
Easier to work with version of _elem_integers_swaps.
Definition at line 77 of file RevolveGenerator.h.
Referenced by generate(), and RevolveGenerator().
|
protected |
Extra element integers to swap out for each elevation and each element integer name.
Definition at line 50 of file RevolveGenerator.h.
Referenced by RevolveGenerator().
|
protected |
Boundary ID of the ending boundary.
Definition at line 86 of file RevolveGenerator.h.
Referenced by generate().
|
protected |
Whether to revolve for a full circle or not.
Definition at line 80 of file RevolveGenerator.h.
Referenced by createHEXfromQUAD(), createPRISMfromQUAD(), createPRISMfromTRI(), createPYRAMIDfromTRI(), createPYRAMIDPRISMfromQUAD(), createQUADfromEDGE(), createTETfromTRI(), createTRIfromEDGE(), generate(), and RevolveGenerator().
|
protected |
Whether an ending boundary is specified.
Definition at line 68 of file RevolveGenerator.h.
Referenced by generate(), and RevolveGenerator().
|
protected |
Whether a starting boundary is specified.
Definition at line 62 of file RevolveGenerator.h.
Referenced by generate(), and RevolveGenerator().
|
protected |
Lower dimensional mesh from another generator.
Definition at line 28 of file RevolveGenerator.h.
Referenced by generate().
|
protected |
Numbers of azimuthal mesh intervals in each azimuthal section.
Definition at line 56 of file RevolveGenerator.h.
Referenced by generate(), and RevolveGenerator().
|
protected |
Volume preserving function is optional.
Definition at line 59 of file RevolveGenerator.h.
Referenced by generate().
|
protected |
Radius correction factor.
Definition at line 89 of file RevolveGenerator.h.
Referenced by generate(), and nodeModification().
|
protected |
Angles of revolution delineating each azimuthal section.
Definition at line 37 of file RevolveGenerator.h.
Referenced by generate(), and RevolveGenerator().
|
protected |
Boundary ID of the starting boundary.
Definition at line 65 of file RevolveGenerator.h.
Referenced by generate().
|
protected |
Easier to work with version of _sudomain_swaps.
Definition at line 71 of file RevolveGenerator.h.
Referenced by generate(), and RevolveGenerator().
|
protected |
Subdomains to swap out for each azimuthal section.
Definition at line 40 of file RevolveGenerator.h.
Referenced by RevolveGenerator().
|
protected |
Unit angles of all azimuthal sections of revolution.
Definition at line 83 of file RevolveGenerator.h.
Referenced by generate().