AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
A class to perform scattered data interpolation at arbitrary points over an input point set. More...
#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/develop/src/axom/quest/ScatteredInterpolation.hpp>
Public Types | |
using | DelaunayTriangulation = Delaunay< DIM > |
using | PointType = typename DelaunayTriangulation::PointType |
using | BoundingBoxType = typename DelaunayTriangulation::BoundingBox |
using | CoordType = typename PointType::CoordType |
Public Member Functions | |
void | buildTriangulation (conduit::Node &mesh_node, const std::string &coordset) |
Builds a Delaunay triangulation over the point set from mesh_node. More... | |
void | locatePoints (conduit::Node &query_mesh, const std::string &coordset) |
Locates cell from Delaunay complex containing each point in query_mesh. More... | |
bool | getInterpolationWeights (const PointType &query_pt, primal::Point< axom::IndexType, NDIMS+1 > &indices, primal::Point< CoordType, NDIMS+1 > &weights) const |
Given a location in space, find the associated indices and interpolation weights with respect to the input mesh points. More... | |
void | interpolateField (conduit::Node &query_mesh, const std::string &coordset, conduit::Node &input_mesh, const std::string &input_field_name, const std::string &output_field_name, const double INVALID_VALUE=std::numeric_limits< double >::quiet_NaN()) |
Interpolates a field from an input_mesh to one on a query_mesh. More... | |
void | exportDelaunayComplex (conduit::Node &mesh_node, std::string &&filename) const |
Exports the Delaunay complex with scalar fields as a vtk file. More... | |
int | numVertices () const |
Returns the number of vertices in the underlying Deluanay complex. More... | |
int | numSimplices () const |
Returns the number of simplices (triangles/tetrahedra) in the underlying Deluanay complex. More... | |
const BoundingBoxType & | boundingBox () const |
Returns the bounding box of the input data points. More... | |
Static Public Attributes | |
static constexpr int | DIM = NDIMS |
A class to perform scattered data interpolation at arbitrary points over an input point set.
The class uses linear interpolation over a Delaunay triangulation of the point set.
using axom::quest::ScatteredInterpolation< NDIMS >::DelaunayTriangulation = Delaunay<DIM> |
using axom::quest::ScatteredInterpolation< NDIMS >::PointType = typename DelaunayTriangulation::PointType |
using axom::quest::ScatteredInterpolation< NDIMS >::BoundingBoxType = typename DelaunayTriangulation::BoundingBox |
using axom::quest::ScatteredInterpolation< NDIMS >::CoordType = typename PointType::CoordType |
|
inline |
Builds a Delaunay triangulation over the point set from mesh_node.
[in] | mesh_node | Conduit node for the input mesh |
[in] | coordset | The name of the coordinate set for the input mesh |
References axom::quest::Delaunay< DIM >::initializeBoundary(), axom::quest::Delaunay< DIM >::insertPoint(), axom::quest::Delaunay< DIM >::removeBoundary(), and SLIC_ASSERT.
|
inline |
Locates cell from Delaunay complex containing each point in query_mesh.
[in,out] | query_node | Conduit node for the query points in mesh Blueprint format; results will be placed into the cell_idx field |
[in] | coordset | The name of the coordinate set for the query mesh |
cell_idx
to store the results Delaunay::INVALID_INDEX
for points that cannot be located within the mesh References axom::quest::Delaunay< DIM >::findContainingElement(), SLIC_ASSERT, and SLIC_ERROR_IF.
|
inline |
Given a location in space, find the associated indices and interpolation weights with respect to the input mesh points.
[in] | query_pt | The point at which we want to interpolate |
[out] | indices | The indices of the points from the input mesh in the support of query_pt |
[out] | weights | The interpolation weights associated with each input point in indices |
References axom::quest::Delaunay< DIM >::findContainingElement(), axom::quest::Delaunay< DIM >::getBaryCoords(), axom::quest::Delaunay< DIM >::getMeshData(), and axom::quest::Delaunay< DIM >::INVALID_INDEX.
|
inline |
Interpolates a field from an input_mesh to one on a query_mesh.
[in,out] | query_mesh | Root node of mesh (in blueprint format) containing field to generate |
[in] | coordset | The name of the coords for query points in query_mesh |
[in] | input_mesh | Root node of mesh (in blueprint format) containing the field to interpolate |
[in] | input_field_name | Name of field on input_mesh |
[in] | output_field_name | Name of field on query_mesh |
[in] | INVALID_VALUE | Value to use for points that are not in the input_mesh |
References axom::quest::Delaunay< DIM >::getBaryCoords(), axom::quest::Delaunay< DIM >::getMeshData(), axom::quest::Delaunay< DIM >::INVALID_INDEX, and SLIC_ASSERT.
|
inline |
Exports the Delaunay complex with scalar fields as a vtk file.
[in] | mesh_node | Conduit node for the input mesh |
[in] | filename | The name of the output file |
References axom::mint::UnstructuredMesh< TOPO >::appendCell(), axom::mint::UnstructuredMesh< TOPO >::appendNodes(), axom::mint::Mesh::createField(), axom::quest::ScatteredInterpolation< NDIMS >::DIM, axom::quest::Delaunay< DIM >::getMeshData(), axom::mint::NODE_CENTERED, axom::slam::OrderedSet< PosType, ElemType, SizePolicy, OffsetPolicy, StridePolicy, IndirectionPolicy, SubsettingPolicy, InterfacePolicy >::positions(), SLIC_DEBUG, axom::mint::TET, axom::mint::TRIANGLE, and axom::mint::write_vtk().
|
inline |
Returns the number of vertices in the underlying Deluanay complex.
References axom::quest::Delaunay< DIM >::getMeshData().
|
inline |
Returns the number of simplices (triangles/tetrahedra) in the underlying Deluanay complex.
References axom::quest::Delaunay< DIM >::getMeshData().
|
inline |
Returns the bounding box of the input data points.
|
staticconstexpr |