Advanced Multi-Physics (AMP)
On-Line Documentation
TriangleHelpers.h
Go to the documentation of this file.
1#ifndef included_AMP_TriangleMeshHelpers
2#define included_AMP_TriangleMeshHelpers
3
4#include "AMP/geometry/Geometry.h"
5#include "AMP/mesh/Mesh.h"
6#include "AMP/utils/AMP_MPI.h"
7
8#include <array>
9#include <memory>
10#include <vector>
11
12
14
15
17template<size_t NG>
18size_t count( const std::vector<std::array<int, NG + 1>> &tri );
19
20
22std::vector<std::array<std::array<double, 3>, 3>> readSTL( const std::string &filename,
23 double scale );
24
26size_t readSTLHeader( const std::string &filename );
27
28
30template<size_t NG, size_t NP>
31void createTriangles( const std::vector<std::array<std::array<double, NP>, NG + 1>> &tri_list,
32 std::vector<std::array<double, NP>> &vertices,
33 std::vector<std::array<int, NG + 1>> &triangles,
34 double tol );
35
37template<size_t NG>
38std::vector<std::vector<std::array<int, NG + 1>>>
39splitDomains( std::vector<std::array<int, NG + 1>> tri );
40
42std::shared_ptr<AMP::Mesh::Mesh>
43generateSTL( std::shared_ptr<const AMP::Mesh::MeshParameters> params );
44
46std::shared_ptr<AMP::Mesh::Mesh> generateGeom( std::shared_ptr<AMP::Geometry::Geometry> geom,
47 const AMP_MPI &comm,
48 double resolution );
49
51std::shared_ptr<AMP::Mesh::Mesh> generate( std::shared_ptr<const MeshParameters> params );
52
53
65template<size_t NG, size_t NP = 3>
66std::shared_ptr<AMP::Mesh::Mesh>
67generate( const std::vector<std::array<std::array<double, NP>, NG + 1>> &triangles,
68 const AMP_MPI &comm,
69 const std::string &name,
70 double tol = 1e-12,
71 bool splitDomain = true,
72 int loadBalanceMethod = 1 );
73
74
76size_t estimateMeshSize( std::shared_ptr<const MeshParameters> params );
77
79size_t maxProcs( std::shared_ptr<const MeshParameters> params );
80
81
82} // namespace AMP::Mesh::TriangleHelpers
83
84#endif
Provides C++ wrapper around MPI routines.
Definition AMP_MPI.h:63
std::shared_ptr< AMP::Mesh::Mesh > generate(std::shared_ptr< const MeshParameters > params)
Generate a triangle mesh (or multi-mesh) from parameters.
size_t count(const std::vector< std::array< int, NG+1 > > &tri)
Count the number of unique triangles.
void createTriangles(const std::vector< std::array< std::array< double, NP >, NG+1 > > &tri_list, std::vector< std::array< double, NP > > &vertices, std::vector< std::array< int, NG+1 > > &triangles, double tol)
Create triangles/vertices from a set of triangles specified by their coordinates.
std::vector< std::vector< std::array< int, NG+1 > > > splitDomains(std::vector< std::array< int, NG+1 > > tri)
Create triangles neighbors from the triangles.
size_t readSTLHeader(const std::string &filename)
Read the header for an STL file.
std::vector< std::array< std::array< double, 3 >, 3 > > readSTL(const std::string &filename, double scale)
Read an STL file.
size_t estimateMeshSize(std::shared_ptr< const MeshParameters > params)
Estimate Mesh size.
std::shared_ptr< AMP::Mesh::Mesh > generateSTL(std::shared_ptr< const AMP::Mesh::MeshParameters > params)
Read an STL file and generate a mesh (triangle mesh or multi-mesh)
size_t maxProcs(std::shared_ptr< const MeshParameters > params)
Maximum processor size.
std::shared_ptr< AMP::Mesh::Mesh > generateGeom(std::shared_ptr< AMP::Geometry::Geometry > geom, const AMP_MPI &comm, double resolution)
Generate a triangle mesh (or multi-mesh) from a geometry.



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:41.
Comments on this page