https://mooseframework.inl.gov
Namespaces | Functions
MooseMeshXYCuttingUtils.C File Reference

Go to the source code of this file.

Namespaces

 MooseMeshXYCuttingUtils
 

Functions

void MooseMeshXYCuttingUtils::lineRemoverMoveNode (libMesh::ReplicatedMesh &mesh, const std::vector< Real > &bdry_pars, const subdomain_id_type block_id_to_remove, const std::set< subdomain_id_type > &subdomain_ids_set, const boundary_id_type trimming_section_boundary_id, const boundary_id_type external_boundary_id, const std::vector< boundary_id_type > &other_boundaries_to_conform=std::vector< boundary_id_type >(), const bool assign_ext_to_new=false, const bool side_to_remove=true)
 Removes all the elements on one side of a given line and deforms the elements intercepted by the line to form a flat new boundary. More...
 
bool MooseMeshXYCuttingUtils::lineSideDeterminator (const Real px, const Real py, const Real param_1, const Real param_2, const Real param_3, const bool direction_param, const Real dis_tol=libMesh::TOLERANCE)
 Determines whether a point on XY-plane is on the side of a given line that needs to be removed. More...
 
Point MooseMeshXYCuttingUtils::twoLineIntersection (const Real param_11, const Real param_12, const Real param_13, const Real param_21, const Real param_22, const Real param_23)
 Calculates the intersection Point of two given straight lines. More...
 
Point MooseMeshXYCuttingUtils::twoPointandLineIntersection (const Point &pt1, const Point &pt2, const Real param_1, const Real param_2, const Real param_3)
 
bool MooseMeshXYCuttingUtils::quasiTriElementsFixer (libMesh::ReplicatedMesh &mesh, const std::set< subdomain_id_type > &subdomain_ids_set, const subdomain_id_type tri_elem_subdomain_shift=Moose::INVALID_BLOCK_ID, const SubdomainName tri_elem_subdomain_name_suffix="tri")
 Fixes degenerate QUAD elements created by the hexagonal mesh trimming by converting them into TRI elements. More...
 
std::vector< std::pair< Real, unsigned int > > MooseMeshXYCuttingUtils::vertex_angles (const Elem &elem)
 
std::vector< std::pair< Real, unsigned int > > MooseMeshXYCuttingUtils::vertex_distances (const Elem &elem)
 
void MooseMeshXYCuttingUtils::triElemSplitter (libMesh::ReplicatedMesh &mesh, const dof_id_type elem_id, const unsigned short node_shift, const dof_id_type nid_3, const dof_id_type nid_4, const subdomain_id_type single_elem_side_id, const subdomain_id_type double_elem_side_id)
 Split a TRI3 element into three TRI3 elements based on two nodes on the two sides of the triangle. More...
 
void MooseMeshXYCuttingUtils::triElemSplitter (libMesh::ReplicatedMesh &mesh, const dof_id_type elem_id, const unsigned short node_shift, const dof_id_type nid_m, const subdomain_id_type first_elem_side_id, const subdomain_id_type second_elem_side_id)
 Split a TRI3 element into two TRI3 elements based on one node on one side of the triangle. More...
 
void MooseMeshXYCuttingUtils::quadElemSplitter (libMesh::ReplicatedMesh &mesh, const dof_id_type elem_id, const subdomain_id_type tri_elem_subdomain_shift)
 Split a QUAD4 element into two TRI3 elements. More...
 
void MooseMeshXYCuttingUtils::quadToTriOnLine (libMesh::ReplicatedMesh &mesh, const std::vector< Real > &cut_line_params, const dof_id_type tri_subdomain_id_shift, const SubdomainName tri_elem_subdomain_name_suffix)
 Convert all the QUAD4 elements in the mesh that are crossed by the given line into TRI3 elements. More...
 
void MooseMeshXYCuttingUtils::lineRemoverCutElemTri (libMesh::ReplicatedMesh &mesh, const std::vector< Real > &cut_line_params, const subdomain_id_type block_id_to_remove, const boundary_id_type new_boundary_id)
 Trim the 2D mesh by removing all the elements on one side of the given line. More...
 
void MooseMeshXYCuttingUtils::lineRemoverCutElem (libMesh::ReplicatedMesh &mesh, const std::vector< Real > &cut_line_params, const dof_id_type tri_subdomain_id_shift, const SubdomainName tri_elem_subdomain_name_suffix, const subdomain_id_type block_id_to_remove, const boundary_id_type new_boundary_id, const bool improve_boundary_tri_elems=false)
 Trim the 2D mesh by removing all the elements on one side of the given line. More...
 
void MooseMeshXYCuttingUtils::boundaryTriElemImprover (libMesh::ReplicatedMesh &mesh, const boundary_id_type boundary_to_improve)
 Improve the element quality of the boundary TRI3 elements of the given boundary. More...
 
void MooseMeshXYCuttingUtils::makeImprovedTriElement (libMesh::ReplicatedMesh &mesh, const dof_id_type node_id_0, const dof_id_type node_id_1, const dof_id_type node_id_2, const subdomain_id_type subdomain_id, const std::vector< dof_id_type > &extra_elem_ids, const std::vector< boundary_id_type > &boundary_ids_for_side_1=std::vector< boundary_id_type >(), const std::vector< boundary_id_type > &boundary_ids_for_side_0=std::vector< boundary_id_type >(), const std::vector< boundary_id_type > &boundary_ids_for_side_2=std::vector< boundary_id_type >())
 Make a TRI3 element with the given node ids and subdomain id with boundary information. More...
 
bool MooseMeshXYCuttingUtils::elemSideLocator (libMesh::ReplicatedMesh &mesh, const dof_id_type elem_id, const dof_id_type node_id_0, const dof_id_type node_id_1, unsigned short &side_id, bool &is_inverse)
 Check if there is a side in an element that contains the given pair of nodes; if yes, also find the side id and the direction of the two nodes in the side. More...