1#ifndef included_AMP_MeshUtilities
2#define included_AMP_MeshUtilities
5#include "AMP/geometry/Geometry.h"
6#include "AMP/mesh/Mesh.h"
7#include "AMP/mesh/MeshElement.h"
8#include "AMP/utils/Array.h"
9#include "AMP/utils/MeshPoint.h"
10#include "AMP/utils/kdtree2.h"
24std::tuple<std::vector<Point>, std::vector<MeshElementID>>
sample(
const Mesh &mesh,
double dx );
97 std::shared_ptr<AMP::Mesh::Mesh>
d_mesh;
A class used to abstract away geometry information from an application or mesh.
A class used to help find the nearest element to a point.
const auto & getTree() const
Return the underlying tree.
double distance(const Point &pos, const Point &dir) const
Calculate the distance to the object given a ray.
std::pair< std::unique_ptr< MeshElement >, Point > nearest(const Point &x) const
Get the nearest element and point.
kdtree2< 3, AMP::Mesh::MeshElementID > d_tree
ElementFinder()
Empty constructor.
AMP::Mesh::MeshIterator d_elements
ElementFinder(ElementFinder &&)=default
Move constructor.
ElementFinder(std::shared_ptr< AMP::Mesh::Mesh > mesh, AMP::Mesh::MeshIterator it)
Empty constructor.
ElementFinder(std::shared_ptr< AMP::Mesh::Mesh > mesh)
Empty constructor.
ElementFinder(const ElementFinder &)=delete
Copy constructor.
void update() const
Ensure the tree is up-to-date.
ElementFinder & operator=(ElementFinder &&)=default
Move operator.
std::shared_ptr< AMP::Mesh::Mesh > d_mesh
A class used to iterate over elements in a Mesh.
A class used to abstract away mesh from an application.
A class used to to perform kd-tree based operations.
Array< double > volumeOverlap(const AMP::Geometry::Geometry &geom, const std::vector< int > &N)
Get a grid with the overlap with the given geometry.
std::tuple< std::vector< Point >, std::vector< MeshElementID > > sample(const Mesh &mesh, double dx)
Get points in the mesh.