Functions | |
| std::unique_ptr< MeshBase > | buildBoundaryLayerRing (MeshGenerator &mg, MeshBase &input_mesh, const std::vector< BoundaryName > &boundary_names, unsigned int num_layers, Real thickness, Real layer_bias, bool outward, const MooseEnum &tri_elem_type, SubdomainID output_subdomain_id, const SubdomainName &output_subdomain_name) |
| Builds a conformal boundary-layer ring of triangulated annuli along a boundary of an input 2D mesh (or a 1D loop). More... | |
| std::vector< Point > | generateOffsetPolyline (MeshGenerator *mg, std::unique_ptr< libMesh::UnstructuredMesh > &ply_mesh_u, std::vector< Point > &points, std::vector< Point > &mid_points, const bool outward, const Real thickness) |
| Generates a list of points offset from the input boundary polyline by a specified thickness in either outward/inward direction. More... | |
| void | collectExteriorVertexPointsFromMesh (libMesh::TriangulatorInterface::MeshedHole &bdry_mh, std::vector< Point > &points, std::vector< Point > &mid_points, const bool skip_node_reduction=false) |
| Collects key vertex points (and optional midpoints) from a meshed hole, optionally discarding colinear vertices. More... | |
| Point | getKeyNormal (const Elem *elem, const unsigned int s, const unsigned int node_index) |
| Extracts the normal vector of the EDGE3 side of a quadratic element at a given node index. More... | |
| std::unique_ptr< MeshBase > | buildBoundaryLayerRing (MeshGenerator &mg, MeshBase &input_mesh, const std::vector< BoundaryName > &boundary_names, unsigned int num_layers, Real thickness, Real layer_bias, bool outward, const MooseEnum &tri_elem_type, SubdomainID output_subdomain_id, const SubdomainName &output_subdomain_name) |
| std::vector< Point > | generateOffsetPolyline (MeshGenerator *mg, std::unique_ptr< libMesh::UnstructuredMesh > &ply_mesh_u, std::vector< Point > &points, std::vector< Point > &mid_points, const bool outward, const Real thickness) |
| void | collectExteriorVertexPointsFromMesh (libMesh::TriangulatorInterface::MeshedHole &bdry_mh, std::vector< Point > &points, std::vector< Point > &mid_points, const bool skip_node_reduction) |
| Point | getKeyNormal (const Elem *elem, const unsigned int s, const unsigned int node_index) |
| std::unique_ptr<MeshBase> BoundaryLayerUtils::buildBoundaryLayerRing | ( | MeshGenerator & | mg, |
| MeshBase & | input_mesh, | ||
| const std::vector< BoundaryName > & | boundary_names, | ||
| unsigned int | num_layers, | ||
| Real | thickness, | ||
| Real | layer_bias, | ||
| bool | outward, | ||
| const MooseEnum & | tri_elem_type, | ||
| SubdomainID | output_subdomain_id, | ||
| const SubdomainName & | output_subdomain_name | ||
| ) |
Definition at line 32 of file BoundaryLayerUtils.C.
| std::unique_ptr<MeshBase> BoundaryLayerUtils::buildBoundaryLayerRing | ( | MeshGenerator & | mg, |
| MeshBase & | input_mesh, | ||
| const std::vector< BoundaryName > & | boundary_names, | ||
| unsigned int | num_layers, | ||
| Real | thickness, | ||
| Real | layer_bias, | ||
| bool | outward, | ||
| const MooseEnum & | tri_elem_type, | ||
| SubdomainID | output_subdomain_id, | ||
| const SubdomainName & | output_subdomain_name | ||
| ) |
Builds a conformal boundary-layer ring of triangulated annuli along a boundary of an input 2D mesh (or a 1D loop).
Generates num_layers + 1 parallel polylines (geometric progression of thicknesses with the given bias), triangulates each annulus with triangulateWithDelaunay, and sequentially stitches them. The output mesh carries 2 * num_layers boundary ids, with the innermost being id 1 and the outermost being id (num_layers - 1) * 2.
| mg | The calling mesh generator (for paramError reporting + buildMeshBaseObject) |
| input_mesh | The 2D-XY input mesh or 1D closed loop providing the seed boundary |
| boundary_names | Subset of boundary names on input_mesh defining the seed boundary; if empty, the external boundary of input_mesh is auto-detected via MeshedHole |
| num_layers | Number of element layers to generate |
| thickness | Total boundary-layer thickness |
| layer_bias | Geometric growth factor between successive layer thicknesses (1.0 = uniform) |
| outward | If true, the layer grows outward from the seed boundary; else inward |
| tri_elem_type | Triangle element type ("TRI3", "TRI6", "TRI7", or "DEFAULT") |
| output_subdomain_id | Subdomain id assigned to all generated triangles (0 = default) |
| output_subdomain_name | Subdomain name assigned to output_subdomain_id (empty = unnamed) |
Referenced by XYTriangleBoundaryLayerGenerator::generate(), and XYDelaunayGenerator::generate().
| void BoundaryLayerUtils::collectExteriorVertexPointsFromMesh | ( | libMesh::TriangulatorInterface::MeshedHole & | bdry_mh, |
| std::vector< Point > & | points, | ||
| std::vector< Point > & | mid_points, | ||
| const bool | skip_node_reduction = false |
||
| ) |
Collects key vertex points (and optional midpoints) from a meshed hole, optionally discarding colinear vertices.
| bdry_mh | The 2D MeshedHole object from which to collect key points |
| points | The vector to which collected vertex points are appended (in order) |
| mid_points | The vector to which collected midpoints are appended; only populated when the MeshedHole reports a midpoint per side AND skip_node_reduction is true |
| skip_node_reduction | If true, retain every vertex and midpoint; if false, drop vertices that are colinear with their two neighbors and do not collect midpoints |
| void BoundaryLayerUtils::collectExteriorVertexPointsFromMesh | ( | libMesh::TriangulatorInterface::MeshedHole & | bdry_mh, |
| std::vector< Point > & | points, | ||
| std::vector< Point > & | mid_points, | ||
| const bool | skip_node_reduction | ||
| ) |
Definition at line 323 of file BoundaryLayerUtils.C.
Referenced by buildBoundaryLayerRing(), and generateOffsetPolyline().
| std::vector<Point> BoundaryLayerUtils::generateOffsetPolyline | ( | MeshGenerator * | mg, |
| std::unique_ptr< libMesh::UnstructuredMesh > & | ply_mesh_u, | ||
| std::vector< Point > & | points, | ||
| std::vector< Point > & | mid_points, | ||
| const bool | outward, | ||
| const Real | thickness | ||
| ) |
Generates a list of points offset from the input boundary polyline by a specified thickness in either outward/inward direction.
| mg | The mesh generator calling this function, used for paramError reporting |
| ply_mesh_u | The 1D loop polyline mesh of the original boundary; the volume it encloses will be triangulated in-place to compute the normal and define the inward/outward directions |
| points | The vertex points of the original polyline. If empty, populated from the input mesh via collectExteriorVertexPointsFromMesh. |
| mid_points | The midpoints of the original polyline (optional to enable quadratic elements). If both this and points are empty, populated from the input mesh. |
| outward | Whether to offset in the outward (true) or inward (false) direction |
| thickness | The offset distance (>= 0) |
| std::vector<Point> BoundaryLayerUtils::generateOffsetPolyline | ( | MeshGenerator * | mg, |
| std::unique_ptr< libMesh::UnstructuredMesh > & | ply_mesh_u, | ||
| std::vector< Point > & | points, | ||
| std::vector< Point > & | mid_points, | ||
| const bool | outward, | ||
| const Real | thickness | ||
| ) |
Definition at line 171 of file BoundaryLayerUtils.C.
Referenced by buildBoundaryLayerRing().
| Point BoundaryLayerUtils::getKeyNormal | ( | const Elem * | elem, |
| const unsigned int | s, | ||
| const unsigned int | node_index | ||
| ) |
Extracts the normal vector of the EDGE3 side of a quadratic element at a given node index.
| elem | The element containing the side of interest |
| s | The side index of interest |
| node_index | The index of the node on the side at which to extract the normal vector |
| Point BoundaryLayerUtils::getKeyNormal | ( | const Elem * | elem, |
| const unsigned int | s, | ||
| const unsigned int | node_index | ||
| ) |
Definition at line 343 of file BoundaryLayerUtils.C.
Referenced by generateOffsetPolyline().
1.8.14