https://mooseframework.inl.gov
Loading...
Searching...
No Matches
BoundaryLayerUtils.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "libmesh/replicated_mesh.h"
13#include "libmesh/mesh_triangle_holes.h"
14
15#include "MooseTypes.h"
16#include "MeshGenerator.h"
17
19{
20
40std::unique_ptr<MeshBase> buildBoundaryLayerRing(MeshGenerator & mg,
41 MeshBase & input_mesh,
42 const std::vector<BoundaryName> & boundary_names,
43 unsigned int num_layers,
44 Real thickness,
45 Real layer_bias,
46 bool outward,
47 const MooseEnum & tri_elem_type,
48 SubdomainID output_subdomain_id,
49 const SubdomainName & output_subdomain_name);
50
66std::vector<Point> generateOffsetPolyline(MeshGenerator * mg,
67 std::unique_ptr<libMesh::UnstructuredMesh> & ply_mesh_u,
68 std::vector<Point> & points,
69 std::vector<Point> & mid_points,
70 const bool outward,
71 const Real thickness);
72
84 std::vector<Point> & points,
85 std::vector<Point> & mid_points,
86 const bool skip_node_reduction = false);
87
95Point getKeyNormal(const Elem * elem, const unsigned int s, const unsigned int node_index);
96}
MeshGenerators are objects that can modify or add to an existing mesh.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition MooseEnum.h:55
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 (o...
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.
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 colinea...
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...