Classes | |
struct | BCTupleKeyComp |
Functions | |
void | hexElemSplitter (ReplicatedMesh &mesh, const std::vector< libMesh::BoundaryInfo::BCTuple > &bdry_side_list, const dof_id_type elem_id, std::vector< dof_id_type > &converted_elems_ids) |
Split a HEX8 element into six TET4 elements. More... | |
void | pyramidElemSplitter (ReplicatedMesh &mesh, const std::vector< libMesh::BoundaryInfo::BCTuple > &bdry_side_list, const dof_id_type elem_id, std::vector< dof_id_type > &converted_elems_ids) |
Split a PYRAMID5 element into two TET4 elements. More... | |
void | prismElemSplitter (ReplicatedMesh &mesh, const std::vector< libMesh::BoundaryInfo::BCTuple > &bdry_side_list, const dof_id_type elem_id, std::vector< dof_id_type > &converted_elems_ids) |
Split a PRISM6 element into three TET4 elements. More... | |
void | nodeRotationHEX8 (const unsigned int min_id_index, const unsigned int sec_min_pos, std::vector< unsigned int > &face_rotation, std::vector< unsigned int > &node_rotation) |
Rotate a HEX8 element's nodes to ensure that the node with the minimum id is the first node; and the node among its three neighboring nodes with the minimum id is the second node. More... | |
std::vector< unsigned int > | neighborNodeIndicesHEX8 (unsigned int min_id_index) |
Calculate the indices (within the element nodes) of the three neighboring nodes of a node in a HEX8 element. More... | |
void | hexNodesToTetNodesDeterminer (std::vector< const Node *> &hex_nodes, std::vector< std::vector< unsigned int >> &rotated_tet_face_indices, std::vector< std::vector< const Node *>> &tet_nodes_list) |
For a vector of rotated nodes that can form a HEX8 element, create a vector of four-node sets that can form TET4 elements to replace the original HEX8 element. More... | |
std::vector< bool > | quadFaceDiagonalDirectionsHex (const std::vector< const Node *> &hex_nodes) |
For a HEX8 element, determine the direction of the diagonal line of each face that involves the node with the minimum id of that face. More... | |
bool | quadFaceDiagonalDirection (const std::vector< const Node *> &quad_nodes) |
For a QUAD4 element, determine the direction of the diagonal line that involves the node with the minimum id of that element. More... | |
std::vector< std::vector< unsigned int > > | tetNodesForHex (const std::vector< bool > diagonal_directions, std::vector< std::vector< unsigned int >> &tet_face_indices) |
Creates sets of four nodes indices that can form TET4 elements to replace the original HEX8 element. More... | |
void | nodeRotationPRISM6 (unsigned int min_id_index, std::vector< unsigned int > &face_rotation, std::vector< unsigned int > &node_rotation) |
Rotate a PRISM6 element nodes to ensure that the node with the minimum id is the first node. More... | |
void | prismNodesToTetNodesDeterminer (std::vector< const Node *> &prism_nodes, std::vector< std::vector< unsigned int >> &rotated_tet_face_indices, std::vector< std::vector< const Node *>> &tet_nodes_list) |
For a rotated nodes that can form a PRISM6 element, create a series of four-node set that can form TET4 elements to replace the original PRISM6 element. More... | |
std::vector< std::vector< unsigned int > > | tetNodesForPrism (const bool diagonal_direction, std::vector< std::vector< unsigned int >> &tet_face_indices) |
Creates sets of four nodes indices that can form TET4 elements to replace the original PRISM6 element. More... | |
void | nodeRotationPYRAMID5 (unsigned int min_id_index, std::vector< unsigned int > &face_rotation, std::vector< unsigned int > &node_rotation) |
Rotate a PYRAMID5 element nodes to ensure that the node with the minimum id is the first node for the bottom face. More... | |
void | pyramidNodesToTetNodesDeterminer (std::vector< const Node *> &pyramid_nodes, std::vector< std::vector< unsigned int >> &rotated_tet_face_indices, std::vector< std::vector< const Node *>> &tet_nodes_list) |
For a rotated nodes that can form a PYRAMID5 element, create a series of four-node set that can form TET4 elements to replace the original PYRAMID5 element. More... | |
void | convert3DMeshToAllTet4 (ReplicatedMesh &mesh, const std::vector< std::pair< dof_id_type, bool >> &elems_to_process, std::vector< dof_id_type > &converted_elems_ids_to_track, const subdomain_id_type block_id_to_remove, const bool delete_block_to_remove) |
Convert all the elements in a 3D mesh, consisting of only linear elements, into TET4 elements. More... | |
void | convert3DMeshToAllTet4 (ReplicatedMesh &mesh) |
Convert all the elements in a 3D mesh consisting of only linear elements into TET4 elements. More... | |
void | elementBoundaryInfoCollector (const std::vector< libMesh::BoundaryInfo::BCTuple > &bdry_side_list, const dof_id_type elem_id, const unsigned short n_elem_sides, std::vector< std::vector< boundary_id_type >> &elem_side_list) |
Collect the boundary information of the given element in a mesh. More... | |
void | convertElem (ReplicatedMesh &mesh, const dof_id_type &elem_id, const std::vector< unsigned int > &side_indices, const std::vector< std::vector< boundary_id_type >> &elem_side_info, const SubdomainID &subdomain_id_shift_base) |
Convert the element to an element with TRI3 side-elements on the user-specified sides by modifying the mesh. More... | |
void | convertHex8Elem (ReplicatedMesh &mesh, const dof_id_type &elem_id, const std::vector< unsigned int > &side_indices, const std::vector< std::vector< boundary_id_type >> &elem_side_info, const SubdomainID &subdomain_id_shift_base) |
Convert a HEX8 element to elements with TRI3 surfaces on the given original QUAD4 side(s). More... | |
void | createUnitPyramid5FromHex8 (ReplicatedMesh &mesh, const dof_id_type &elem_id, const unsigned int &side_index, const Node *new_node, const std::vector< boundary_id_type > &side_info, const SubdomainID &subdomain_id_shift_base) |
Create one PYRAMID5 element based on a side and the centroid of the HEX8 element. More... | |
void | createUnitTet4FromHex8 (ReplicatedMesh &mesh, const dof_id_type &elem_id, const unsigned int &side_index, const Node *new_node, const std::vector< boundary_id_type > &side_info, const SubdomainID &subdomain_id_shift_base) |
Create two TET4 elements based on a side and the centroid of the HEX8 element. More... | |
void | convertPrism6Elem (ReplicatedMesh &mesh, const dof_id_type &elem_id, const std::vector< unsigned int > &side_indices, const std::vector< std::vector< boundary_id_type >> &elem_side_info, const SubdomainID &subdomain_id_shift_base) |
Convert a PRISM6 element to elements with TRI3 surfaces on the given original QUAD4 side(s). More... | |
void | createUnitTet4FromPrism6 (ReplicatedMesh &mesh, const dof_id_type &elem_id, const unsigned int &side_index, const Node *new_node, const std::vector< boundary_id_type > &side_info, const SubdomainID &subdomain_id_shift_base) |
Create one or two TET4 elements based on a side and the centroid of the PRISM6 element. More... | |
void | createUnitPyramid5FromPrism6 (ReplicatedMesh &mesh, const dof_id_type &elem_id, const unsigned int &side_index, const Node *new_node, const std::vector< boundary_id_type > &side_info, const SubdomainID &subdomain_id_shift_base) |
Create a PYRAMID5 element opposite the sides converted to tets and the centroid of the PRISM6 element. More... | |
void | convertPyramid5Elem (ReplicatedMesh &mesh, const dof_id_type &elem_id, const std::vector< std::vector< boundary_id_type >> &elem_side_info, const SubdomainID &subdomain_id_shift_base) |
Convert a PYRAMID5 element to elements with TRI3 surfaces on the original QUAD4 side. More... | |
void | retainEEID (ReplicatedMesh &mesh, const dof_id_type &elem_id, Elem *new_elem_ptr) |
Retain the extra integer of the original element in a new element. More... | |
void | transitionLayerGenerator (ReplicatedMesh &mesh, const std::vector< BoundaryName > &boundary_names, const unsigned int conversion_element_layer_number, const bool external_boundaries_checking) |
Generate a transition layer of elements with TRI3 surfaces on the given boundaries. More... | |
void | assignConvertedElementsSubdomainNameSuffix (ReplicatedMesh &mesh, const std::set< subdomain_id_type > &original_subdomain_ids, const subdomain_id_type sid_shift_base, const SubdomainName &tet_suffix, const SubdomainName &pyramid_suffix) |
Assign a subdomain name suffix to the converted elements created during transition layer generation. More... | |
void | hexElemSplitter (ReplicatedMesh &mesh, const std::vector< libMesh::BoundaryInfo::BCTuple > &bdry_side_list, const dof_id_type elem_id, std::vector< dof_id_type > &converted_elems_ids) |
void | prismElemSplitter (ReplicatedMesh &mesh, const std::vector< libMesh::BoundaryInfo::BCTuple > &bdry_side_list, const dof_id_type elem_id, std::vector< dof_id_type > &converted_elems_ids) |
void | pyramidElemSplitter (ReplicatedMesh &mesh, const std::vector< libMesh::BoundaryInfo::BCTuple > &bdry_side_list, const dof_id_type elem_id, std::vector< dof_id_type > &converted_elems_ids) |
void | hexNodesToTetNodesDeterminer (std::vector< const Node *> &hex_nodes, std::vector< std::vector< unsigned int >> &rotated_tet_face_indices, std::vector< std::vector< const Node *>> &tet_nodes_list) |
std::vector< bool > | quadFaceDiagonalDirectionsHex (const std::vector< const Node *> &hex_nodes) |
bool | quadFaceDiagonalDirection (const std::vector< const Node *> &quad_nodes) |
void | prismNodesToTetNodesDeterminer (std::vector< const Node *> &prism_nodes, std::vector< std::vector< unsigned int >> &rotated_tet_face_indices, std::vector< std::vector< const Node *>> &tet_nodes_list) |
void | pyramidNodesToTetNodesDeterminer (std::vector< const Node *> &pyramid_nodes, std::vector< std::vector< unsigned int >> &rotated_tet_face_indices, std::vector< std::vector< const Node *>> &tet_nodes_list) |
void | convert3DMeshToAllTet4 (ReplicatedMesh &mesh, const std::vector< std::pair< dof_id_type, bool >> &elems_to_process, std::vector< dof_id_type > &converted_elems_ids_to_track, const subdomain_id_type block_id_to_remove, const bool delete_block_to_remove) |
void | convert3DMeshToAllTet4 (ReplicatedMesh &mesh) |
void | elementBoundaryInfoCollector (const std::vector< libMesh::BoundaryInfo::BCTuple > &bdry_side_list, const dof_id_type elem_id, const unsigned short n_elem_sides, std::vector< std::vector< boundary_id_type >> &elem_side_list) |
Collect the boundary information of the given element in a mesh. More... | |
void | convertElem (ReplicatedMesh &mesh, const dof_id_type &elem_id, const std::vector< unsigned int > &side_indices, const std::vector< std::vector< boundary_id_type >> &elem_side_info, const SubdomainID &subdomain_id_shift_base) |
void | convertHex8Elem (ReplicatedMesh &mesh, const dof_id_type &elem_id, const std::vector< unsigned int > &side_indices, const std::vector< std::vector< boundary_id_type >> &elem_side_info, const SubdomainID &subdomain_id_shift_base) |
void | createUnitPyramid5FromHex8 (ReplicatedMesh &mesh, const dof_id_type &elem_id, const unsigned int &side_index, const Node *new_node, const std::vector< boundary_id_type > &side_info, const SubdomainID &subdomain_id_shift_base) |
void | createUnitTet4FromHex8 (ReplicatedMesh &mesh, const dof_id_type &elem_id, const unsigned int &side_index, const Node *new_node, const std::vector< boundary_id_type > &side_info, const SubdomainID &subdomain_id_shift_base) |
void | convertPrism6Elem (ReplicatedMesh &mesh, const dof_id_type &elem_id, const std::vector< unsigned int > &side_indices, const std::vector< std::vector< boundary_id_type >> &elem_side_info, const SubdomainID &subdomain_id_shift_base) |
void | createUnitTet4FromPrism6 (ReplicatedMesh &mesh, const dof_id_type &elem_id, const unsigned int &side_index, const Node *new_node, const std::vector< boundary_id_type > &side_info, const SubdomainID &subdomain_id_shift_base) |
void | createUnitPyramid5FromPrism6 (ReplicatedMesh &mesh, const dof_id_type &elem_id, const unsigned int &side_index, const Node *new_node, const std::vector< boundary_id_type > &side_info, const SubdomainID &subdomain_id_shift_base) |
void | convertPyramid5Elem (ReplicatedMesh &mesh, const dof_id_type &elem_id, const std::vector< std::vector< boundary_id_type >> &elem_side_info, const SubdomainID &subdomain_id_shift_base) |
void | retainEEID (ReplicatedMesh &mesh, const dof_id_type &elem_id, Elem *new_elem_ptr) |
void | transitionLayerGenerator (ReplicatedMesh &mesh, const std::vector< BoundaryName > &boundary_names, const unsigned int conversion_element_layer_number, const bool external_boundaries_checking) |
void | assignConvertedElementsSubdomainNameSuffix (ReplicatedMesh &mesh, const std::set< subdomain_id_type > &original_subdomain_ids, const subdomain_id_type sid_shift_base, const SubdomainName &tet_suffix, const SubdomainName &pyramid_suffix) |
void MooseMeshElementConversionUtils::assignConvertedElementsSubdomainNameSuffix | ( | ReplicatedMesh & | mesh, |
const std::set< subdomain_id_type > & | original_subdomain_ids, | ||
const subdomain_id_type | sid_shift_base, | ||
const SubdomainName & | tet_suffix, | ||
const SubdomainName & | pyramid_suffix | ||
) |
Assign a subdomain name suffix to the converted elements created during transition layer generation.
mesh | The mesh to be modified |
original_subdomain_ids | A set of original subdomain IDs of the mesh before conversion |
sid_shift_base | The base subdomain ID to shift the original elements because of the element type change |
tet_suffix | The suffix to be added to the subdomain names of the converted TET4 elements |
pyramid_suffix | The suffix to be added to the subdomain names of the converted PYRAMID5 elements |
Referenced by BoundaryElementConversionGenerator::generate(), and CutMeshByLevelSetGeneratorBase::generate().
void MooseMeshElementConversionUtils::assignConvertedElementsSubdomainNameSuffix | ( | ReplicatedMesh & | mesh, |
const std::set< subdomain_id_type > & | original_subdomain_ids, | ||
const subdomain_id_type | sid_shift_base, | ||
const SubdomainName & | tet_suffix, | ||
const SubdomainName & | pyramid_suffix | ||
) |
Definition at line 1226 of file MooseMeshElementConversionUtils.C.
void MooseMeshElementConversionUtils::convert3DMeshToAllTet4 | ( | ReplicatedMesh & | mesh, |
const std::vector< std::pair< dof_id_type, bool >> & | elems_to_process, | ||
std::vector< dof_id_type > & | converted_elems_ids_to_track, | ||
const subdomain_id_type | block_id_to_remove, | ||
const bool | delete_block_to_remove | ||
) |
Convert all the elements in a 3D mesh, consisting of only linear elements, into TET4 elements.
mesh | The mesh to be converted |
elems_to_process | A vector of pairs of element ids and a bool indicating whether the element needs to be fully retained or will be further processed in the following procedures |
converted_elems_ids_to_track | A vector of element ids that need to be tracked for being further processed in the following procedures |
block_id_to_remove | The id of a new subdomain in the mesh containing all the elements to be removed |
delete_block_to_remove | A bool indicating whether the block to be removed will be deleted in this method |
Referenced by ElementsToTetrahedronsConverter::generate(), CutMeshByLevelSetGeneratorBase::generate(), and transitionLayerGenerator().
void MooseMeshElementConversionUtils::convert3DMeshToAllTet4 | ( | ReplicatedMesh & | mesh | ) |
Convert all the elements in a 3D mesh consisting of only linear elements into TET4 elements.
mesh | The mesh to be converted |
void MooseMeshElementConversionUtils::convert3DMeshToAllTet4 | ( | ReplicatedMesh & | mesh, |
const std::vector< std::pair< dof_id_type, bool >> & | elems_to_process, | ||
std::vector< dof_id_type > & | converted_elems_ids_to_track, | ||
const subdomain_id_type | block_id_to_remove, | ||
const bool | delete_block_to_remove | ||
) |
Definition at line 585 of file MooseMeshElementConversionUtils.C.
void MooseMeshElementConversionUtils::convert3DMeshToAllTet4 | ( | ReplicatedMesh & | mesh | ) |
Definition at line 647 of file MooseMeshElementConversionUtils.C.
void MooseMeshElementConversionUtils::convertElem | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const std::vector< unsigned int > & | side_indices, | ||
const std::vector< std::vector< boundary_id_type >> & | elem_side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Convert the element to an element with TRI3 side-elements on the user-specified sides by modifying the mesh.
mesh | The mesh containing the element |
elem_id | The ID of the element to be converted |
side_indices | The indices of the sides to be converted |
elem_side_info | The boundary IDs associated with the sides of the element |
subdomain_id_shift_base | the reference id used to shift the subdomain ID for new elements |
Referenced by CutMeshByLevelSetGeneratorBase::generate(), and transitionLayerGenerator().
void MooseMeshElementConversionUtils::convertElem | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const std::vector< unsigned int > & | side_indices, | ||
const std::vector< std::vector< boundary_id_type >> & | elem_side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Definition at line 688 of file MooseMeshElementConversionUtils.C.
void MooseMeshElementConversionUtils::convertHex8Elem | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const std::vector< unsigned int > & | side_indices, | ||
const std::vector< std::vector< boundary_id_type >> & | elem_side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Convert a HEX8 element to elements with TRI3 surfaces on the given original QUAD4 side(s).
mesh | The mesh containing the element |
elem_id | The ID of the HEX8 element to be converted |
side_indices | The indices of the QUAD4 sides to be converted to TRI3 sides |
elem_side_info | The boundary IDs associated with the sides of the HEX8 element |
subdomain_id_shift_base | the reference id used to shift the subdomain ID for new elements |
void MooseMeshElementConversionUtils::convertHex8Elem | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const std::vector< unsigned int > & | side_indices, | ||
const std::vector< std::vector< boundary_id_type >> & | elem_side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Definition at line 720 of file MooseMeshElementConversionUtils.C.
Referenced by convertElem().
void MooseMeshElementConversionUtils::convertPrism6Elem | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const std::vector< unsigned int > & | side_indices, | ||
const std::vector< std::vector< boundary_id_type >> & | elem_side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Convert a PRISM6 element to elements with TRI3 surfaces on the given original QUAD4 side(s).
mesh | The mesh containing the element |
elem_id | The ID of the PRISM6 element to be converted |
side_indices | The indices of the QUAD sides to be converted to TRI3 sides |
elem_side_info | The boundary IDs associated with the sides of the PRISM6 element |
subdomain_id_shift_base | the reference id used to shift the subdomain ID for new elements |
void MooseMeshElementConversionUtils::convertPrism6Elem | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const std::vector< unsigned int > & | side_indices, | ||
const std::vector< std::vector< boundary_id_type >> & | elem_side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Definition at line 826 of file MooseMeshElementConversionUtils.C.
Referenced by convertElem().
void MooseMeshElementConversionUtils::convertPyramid5Elem | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const std::vector< std::vector< boundary_id_type >> & | elem_side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Convert a PYRAMID5 element to elements with TRI3 surfaces on the original QUAD4 side.
mesh | The mesh containing the element |
elem_id | The ID of the PYRAMID5 element to be converted |
elem_side_info | The boundary IDs associated with the sides of the PYRAMID |
subdomain_id_shift_base | the reference id used to shift the subdomain ID for new elements |
void MooseMeshElementConversionUtils::convertPyramid5Elem | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const std::vector< std::vector< boundary_id_type >> & | elem_side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Definition at line 933 of file MooseMeshElementConversionUtils.C.
Referenced by convertElem().
void MooseMeshElementConversionUtils::createUnitPyramid5FromHex8 | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const unsigned int & | side_index, | ||
const Node * | new_node, | ||
const std::vector< boundary_id_type > & | side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Create one PYRAMID5 element based on a side and the centroid of the HEX8 element.
mesh | The mesh containing the element |
elem_id | The ID of the HEX8 element to be converted |
side_index | The index of the side to be converted |
new_node | The new node created at the centroid of the HEX8 element |
side_info | The boundary IDs associated with the side of the HEX8 element |
subdomain_id_shift_base | the reference id used to shift the subdomain ID for new elements |
void MooseMeshElementConversionUtils::createUnitPyramid5FromHex8 | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const unsigned int & | side_index, | ||
const Node * | new_node, | ||
const std::vector< boundary_id_type > & | side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Definition at line 744 of file MooseMeshElementConversionUtils.C.
Referenced by convertHex8Elem(), and createUnitPyramid5FromPrism6().
void MooseMeshElementConversionUtils::createUnitPyramid5FromPrism6 | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const unsigned int & | side_index, | ||
const Node * | new_node, | ||
const std::vector< boundary_id_type > & | side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Create a PYRAMID5 element opposite the sides converted to tets and the centroid of the PRISM6 element.
mesh | The mesh containing the element |
elem_id | The ID of the PRISM6 element to be converted |
side_index | The index of the side to be converted |
new_node | The new node created at the centroid of the PRISM6 element |
side_info | The boundary IDs associated with the side of the PRISM6 element |
subdomain_id_shift_base | the reference id used to shift the subdomain ID for new elements |
void MooseMeshElementConversionUtils::createUnitPyramid5FromPrism6 | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const unsigned int & | side_index, | ||
const Node * | new_node, | ||
const std::vector< boundary_id_type > & | side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Definition at line 920 of file MooseMeshElementConversionUtils.C.
Referenced by convertPrism6Elem().
void MooseMeshElementConversionUtils::createUnitTet4FromHex8 | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const unsigned int & | side_index, | ||
const Node * | new_node, | ||
const std::vector< boundary_id_type > & | side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Create two TET4 elements based on a side and the centroid of the HEX8 element.
mesh | The mesh containing the element |
elem_id | The ID of the HEX8 element to be converted |
side_index | The index of the side to be converted |
new_node | The new node created at the centroid of the HEX8 element |
side_info | The boundary IDs associated with the side of the HEX8 element |
subdomain_id_shift_base | the reference id used to shift the subdomain ID for new elements |
void MooseMeshElementConversionUtils::createUnitTet4FromHex8 | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const unsigned int & | side_index, | ||
const Node * | new_node, | ||
const std::vector< boundary_id_type > & | side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Definition at line 765 of file MooseMeshElementConversionUtils.C.
Referenced by convertHex8Elem().
void MooseMeshElementConversionUtils::createUnitTet4FromPrism6 | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const unsigned int & | side_index, | ||
const Node * | new_node, | ||
const std::vector< boundary_id_type > & | side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Create one or two TET4 elements based on a side and the centroid of the PRISM6 element.
mesh | The mesh containing the element |
elem_id | The ID of the PRISM6 element to be converted |
side_index | The index of the side to be converted |
new_node | The new node created at the centroid of the PRISM6 element |
side_info | The boundary IDs associated with the side of the PRISM6 element |
subdomain_id_shift_base | the reference id used to shift the subdomain ID for new elements |
void MooseMeshElementConversionUtils::createUnitTet4FromPrism6 | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
const unsigned int & | side_index, | ||
const Node * | new_node, | ||
const std::vector< boundary_id_type > & | side_info, | ||
const SubdomainID & | subdomain_id_shift_base | ||
) |
Definition at line 850 of file MooseMeshElementConversionUtils.C.
Referenced by convertPrism6Elem().
void MooseMeshElementConversionUtils::elementBoundaryInfoCollector | ( | const std::vector< libMesh::BoundaryInfo::BCTuple > & | bdry_side_list, |
const dof_id_type | elem_id, | ||
const unsigned short | n_elem_sides, | ||
std::vector< std::vector< boundary_id_type >> & | elem_side_list | ||
) |
Collect the boundary information of the given element in a mesh.
bdry_side_list | A list that contains the boundary information of the mesh |
elem_id | The id of the element to be processed |
n_elem_sides | The number of sides of the element |
elem_side_list | a vector of vectors to record the boundary information of the element |
Definition at line 671 of file MooseMeshElementConversionUtils.C.
Referenced by hexElemSplitter(), prismElemSplitter(), pyramidElemSplitter(), and CutMeshByLevelSetGeneratorBase::tet4ElemCutter().
void MooseMeshElementConversionUtils::elementBoundaryInfoCollector | ( | const std::vector< libMesh::BoundaryInfo::BCTuple > & | bdry_side_list, |
const dof_id_type | elem_id, | ||
const unsigned short | n_elem_sides, | ||
std::vector< std::vector< boundary_id_type >> & | elem_side_list | ||
) |
Collect the boundary information of the given element in a mesh.
bdry_side_list | A list that contains the boundary information of the mesh |
elem_id | The id of the element to be processed |
n_elem_sides | The number of sides of the element |
elem_side_list | a vector of vectors to record the boundary information of the element |
Definition at line 671 of file MooseMeshElementConversionUtils.C.
Referenced by hexElemSplitter(), prismElemSplitter(), pyramidElemSplitter(), and CutMeshByLevelSetGeneratorBase::tet4ElemCutter().
void MooseMeshElementConversionUtils::hexElemSplitter | ( | ReplicatedMesh & | mesh, |
const std::vector< libMesh::BoundaryInfo::BCTuple > & | bdry_side_list, | ||
const dof_id_type | elem_id, | ||
std::vector< dof_id_type > & | converted_elems_ids | ||
) |
Definition at line 32 of file MooseMeshElementConversionUtils.C.
Referenced by convert3DMeshToAllTet4().
void MooseMeshElementConversionUtils::hexElemSplitter | ( | ReplicatedMesh & | mesh, |
const std::vector< libMesh::BoundaryInfo::BCTuple > & | bdry_side_list, | ||
const dof_id_type | elem_id, | ||
std::vector< dof_id_type > & | converted_elems_ids | ||
) |
Split a HEX8 element into six TET4 elements.
mesh | The mesh to be modified |
bdry_side_list | A list that contains the boundary information of the original mesh |
elem_id | The id of the element to be split |
converted_elems_ids | a vector to record the ids of the newly created TET4 elements |
void MooseMeshElementConversionUtils::hexNodesToTetNodesDeterminer | ( | std::vector< const Node *> & | hex_nodes, |
std::vector< std::vector< unsigned int >> & | rotated_tet_face_indices, | ||
std::vector< std::vector< const Node *>> & | tet_nodes_list | ||
) |
For a vector of rotated nodes that can form a HEX8 element, create a vector of four-node sets that can form TET4 elements to replace the original HEX8 element.
All the QUAD4 faces of the HEX8 element will be split by the diagonal line that involves the node with the minimum id of that face.
hex_nodes | A vector of pointers to the nodes that can form a HEX8 element |
rotated_tet_face_indices | A vector of vectors of the original face indices of the HEX8 element corresponding to the faces of the newly created TET4 elements |
tet_nodes_list | a vector of vectors of pointers to the nodes that can form TET4 elements |
void MooseMeshElementConversionUtils::hexNodesToTetNodesDeterminer | ( | std::vector< const Node *> & | hex_nodes, |
std::vector< std::vector< unsigned int >> & | rotated_tet_face_indices, | ||
std::vector< std::vector< const Node *>> & | tet_nodes_list | ||
) |
Definition at line 231 of file MooseMeshElementConversionUtils.C.
Referenced by hexElemSplitter().
std::vector< unsigned int > MooseMeshElementConversionUtils::neighborNodeIndicesHEX8 | ( | unsigned int | min_id_index | ) |
Calculate the indices (within the element nodes) of the three neighboring nodes of a node in a HEX8 element.
min_id_index | The index of the node with the minimum id |
Definition at line 220 of file MooseMeshElementConversionUtils.C.
Referenced by hexNodesToTetNodesDeterminer().
void MooseMeshElementConversionUtils::nodeRotationHEX8 | ( | const unsigned int | min_id_index, |
const unsigned int | sec_min_pos, | ||
std::vector< unsigned int > & | face_rotation, | ||
std::vector< unsigned int > & | node_rotation | ||
) |
Rotate a HEX8 element's nodes to ensure that the node with the minimum id is the first node; and the node among its three neighboring nodes with the minimum id is the second node.
min_id_index | The index of the node with the minimum id |
sec_min_pos | The index of the node among its three neighboring nodes with the minimum id (see comments in the function for more details about how the index is defined) |
face_rotation | A vector to record the rotation of the faces of the HEX8 element |
node_rotation | a vector of node indices that can form a HEX8 element |
Definition at line 374 of file MooseMeshElementConversionUtils.C.
Referenced by hexNodesToTetNodesDeterminer().
void MooseMeshElementConversionUtils::nodeRotationPRISM6 | ( | unsigned int | min_id_index, |
std::vector< unsigned int > & | face_rotation, | ||
std::vector< unsigned int > & | node_rotation | ||
) |
Rotate a PRISM6 element nodes to ensure that the node with the minimum id is the first node.
min_id_index | The index of the node, within the prism nodes, with the minimum id |
face_rotation | A vector to record the rotation of the faces of the PRISM6 element |
node_rotation | a vector of node indices that can form a PRISM6 element |
Definition at line 414 of file MooseMeshElementConversionUtils.C.
Referenced by prismNodesToTetNodesDeterminer().
void MooseMeshElementConversionUtils::nodeRotationPYRAMID5 | ( | unsigned int | min_id_index, |
std::vector< unsigned int > & | face_rotation, | ||
std::vector< unsigned int > & | node_rotation | ||
) |
Rotate a PYRAMID5 element nodes to ensure that the node with the minimum id is the first node for the bottom face.
min_id_index | The index of the node, within the pyramid nodes, with the minimum id for the bottom face |
face_rotation | A vector to record the rotation of the faces of the PYRAMID5 element |
node_rotation | a vector of node indices that can form a PYRAMID5 element |
Definition at line 515 of file MooseMeshElementConversionUtils.C.
Referenced by pyramidNodesToTetNodesDeterminer().
void MooseMeshElementConversionUtils::prismElemSplitter | ( | ReplicatedMesh & | mesh, |
const std::vector< libMesh::BoundaryInfo::BCTuple > & | bdry_side_list, | ||
const dof_id_type | elem_id, | ||
std::vector< dof_id_type > & | converted_elems_ids | ||
) |
Split a PRISM6 element into three TET4 elements.
mesh | The mesh to be modified |
bdry_side_list | A list that contains the boundary information of the original mesh |
elem_id | The id of the element to be split |
converted_elems_ids | a vector to record the ids of the newly created TET4 elements |
void MooseMeshElementConversionUtils::prismElemSplitter | ( | ReplicatedMesh & | mesh, |
const std::vector< libMesh::BoundaryInfo::BCTuple > & | bdry_side_list, | ||
const dof_id_type | elem_id, | ||
std::vector< dof_id_type > & | converted_elems_ids | ||
) |
Definition at line 98 of file MooseMeshElementConversionUtils.C.
Referenced by convert3DMeshToAllTet4().
void MooseMeshElementConversionUtils::prismNodesToTetNodesDeterminer | ( | std::vector< const Node *> & | prism_nodes, |
std::vector< std::vector< unsigned int >> & | rotated_tet_face_indices, | ||
std::vector< std::vector< const Node *>> & | tet_nodes_list | ||
) |
For a rotated nodes that can form a PRISM6 element, create a series of four-node set that can form TET4 elements to replace the original PRISM6 element.
All the QUAD4 face of the PRISM6 element will be split by the diagonal line that involves the node with the minimum id of that face.
prism_nodes | A vector of pointers to the nodes that can form a PRISM6 element |
rotated_tet_face_indices | A vector of vectors of the original face indices of the PRISM6 element corresponding to the faces of the newly created TET4 elements |
tet_nodes_list | a vector of vectors of pointers to the nodes that can form TET4 elements |
Referenced by CutMeshByLevelSetGeneratorBase::tet4ElemCutter().
void MooseMeshElementConversionUtils::prismNodesToTetNodesDeterminer | ( | std::vector< const Node *> & | prism_nodes, |
std::vector< std::vector< unsigned int >> & | rotated_tet_face_indices, | ||
std::vector< std::vector< const Node *>> & | tet_nodes_list | ||
) |
Definition at line 443 of file MooseMeshElementConversionUtils.C.
Referenced by prismElemSplitter().
void MooseMeshElementConversionUtils::pyramidElemSplitter | ( | ReplicatedMesh & | mesh, |
const std::vector< libMesh::BoundaryInfo::BCTuple > & | bdry_side_list, | ||
const dof_id_type | elem_id, | ||
std::vector< dof_id_type > & | converted_elems_ids | ||
) |
Split a PYRAMID5 element into two TET4 elements.
mesh | The mesh to be modified |
bdry_side_list | A list that contains the boundary information of the original mesh |
elem_id | The id of the element to be split |
converted_elems_ids | a vector to record the ids of the newly created TET4 elements |
void MooseMeshElementConversionUtils::pyramidElemSplitter | ( | ReplicatedMesh & | mesh, |
const std::vector< libMesh::BoundaryInfo::BCTuple > & | bdry_side_list, | ||
const dof_id_type | elem_id, | ||
std::vector< dof_id_type > & | converted_elems_ids | ||
) |
Definition at line 160 of file MooseMeshElementConversionUtils.C.
Referenced by convert3DMeshToAllTet4().
void MooseMeshElementConversionUtils::pyramidNodesToTetNodesDeterminer | ( | std::vector< const Node *> & | pyramid_nodes, |
std::vector< std::vector< unsigned int >> & | rotated_tet_face_indices, | ||
std::vector< std::vector< const Node *>> & | tet_nodes_list | ||
) |
For a rotated nodes that can form a PYRAMID5 element, create a series of four-node set that can form TET4 elements to replace the original PYRAMID5 element.
The QUAD4 face of the PYRAMID5 element will be split by the diagonal line that involves the node with the minimum id of that face.
pyramid_nodes | A vector of pointers to the nodes that can form a PYRAMID5 element |
rotated_tet_face_indices | A vector of vectors of the original face indices of the PYRAMID5 element corresponding to the faces of the newly created TET4 elements |
tet_nodes_list | a vector of vectors of pointers to the nodes that can form TET4 elements |
Referenced by CutMeshByLevelSetGeneratorBase::tet4ElemCutter().
void MooseMeshElementConversionUtils::pyramidNodesToTetNodesDeterminer | ( | std::vector< const Node *> & | pyramid_nodes, |
std::vector< std::vector< unsigned int >> & | rotated_tet_face_indices, | ||
std::vector< std::vector< const Node *>> & | tet_nodes_list | ||
) |
Definition at line 536 of file MooseMeshElementConversionUtils.C.
Referenced by pyramidElemSplitter().
bool MooseMeshElementConversionUtils::quadFaceDiagonalDirection | ( | const std::vector< const Node *> & | quad_nodes | ) |
For a QUAD4 element, determine the direction of the diagonal line that involves the node with the minimum id of that element.
quad_nodes | A vector of pointers to the nodes that can form a QUAD4 element |
bool MooseMeshElementConversionUtils::quadFaceDiagonalDirection | ( | const std::vector< const Node *> & | quad_nodes | ) |
Definition at line 311 of file MooseMeshElementConversionUtils.C.
Referenced by prismNodesToTetNodesDeterminer(), and quadFaceDiagonalDirectionsHex().
std::vector<bool> MooseMeshElementConversionUtils::quadFaceDiagonalDirectionsHex | ( | const std::vector< const Node *> & | hex_nodes | ) |
For a HEX8 element, determine the direction of the diagonal line of each face that involves the node with the minimum id of that face.
hex_nodes | A vector of pointers to the nodes that can form a HEX8 element |
std::vector<bool> MooseMeshElementConversionUtils::quadFaceDiagonalDirectionsHex | ( | const std::vector< const Node *> & | hex_nodes | ) |
Definition at line 293 of file MooseMeshElementConversionUtils.C.
Referenced by hexNodesToTetNodesDeterminer().
void MooseMeshElementConversionUtils::retainEEID | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
Elem * | new_elem_ptr | ||
) |
Retain the extra integer of the original element in a new element.
mesh | The mesh containing the element |
elem_id | The ID of the original element |
new_elem_ptr | The pointer to the new element that will retain the extra integer |
void MooseMeshElementConversionUtils::retainEEID | ( | ReplicatedMesh & | mesh, |
const dof_id_type & | elem_id, | ||
Elem * | new_elem_ptr | ||
) |
Definition at line 998 of file MooseMeshElementConversionUtils.C.
Referenced by convertPyramid5Elem(), createUnitPyramid5FromHex8(), createUnitTet4FromHex8(), and createUnitTet4FromPrism6().
std::vector< std::vector< unsigned int > > MooseMeshElementConversionUtils::tetNodesForHex | ( | const std::vector< bool > | diagonal_directions, |
std::vector< std::vector< unsigned int >> & | tet_face_indices | ||
) |
Creates sets of four nodes indices that can form TET4 elements to replace the original HEX8 element.
diagonal_directions | A vector of boolean values indicating the direction of the diagonal line of each face; true means the diagonal line is connecting node 0 and node 2, false means the diagonal line is connecting node 1 and node 3 of that quad face |
tet_face_indices | A vector of vectors of the original face indices of the HEX8 element corresponding to the faces of the newly created TET4 elements |
Definition at line 324 of file MooseMeshElementConversionUtils.C.
Referenced by hexNodesToTetNodesDeterminer().
std::vector< std::vector< unsigned int > > MooseMeshElementConversionUtils::tetNodesForPrism | ( | const bool | diagonal_direction, |
std::vector< std::vector< unsigned int >> & | tet_face_indices | ||
) |
Creates sets of four nodes indices that can form TET4 elements to replace the original PRISM6 element.
diagonal_direction | A boolean value indicating the direction of the diagonal line of Face 2 |
tet_face_indices | A vector of vectors of the original face indices of the PRISM6 element corresponding to the faces of the newly created TET4 elements |
Definition at line 498 of file MooseMeshElementConversionUtils.C.
Referenced by prismNodesToTetNodesDeterminer().
void MooseMeshElementConversionUtils::transitionLayerGenerator | ( | ReplicatedMesh & | mesh, |
const std::vector< BoundaryName > & | boundary_names, | ||
const unsigned int | conversion_element_layer_number, | ||
const bool | external_boundaries_checking | ||
) |
Generate a transition layer of elements with TRI3 surfaces on the given boundaries.
mesh | The mesh to be modified |
boundary_names | A vector of boundary names on which the transition layer will be generated |
conversion_element_layer_number | The number of element layers to be converted on the given boundaries. |
external_boundaries_checking | Whether to check if the provided boundaries are external boundaries |
Referenced by BoundaryElementConversionGenerator::generate().
void MooseMeshElementConversionUtils::transitionLayerGenerator | ( | ReplicatedMesh & | mesh, |
const std::vector< BoundaryName > & | boundary_names, | ||
const unsigned int | conversion_element_layer_number, | ||
const bool | external_boundaries_checking | ||
) |
Definition at line 1006 of file MooseMeshElementConversionUtils.C.