|
AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Preprocesses a triangle mesh for GWN evaluation, and performs the calculation on the DOFs of an input MFEM mesh. More...
#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/develop/src/axom/quest/GWNMethods.hpp>
Public Types | |
| using | Point3D = axom::primal::Point< double, 3 > |
| using | BoxType = axom::primal::BoundingBox< double, 3 > |
| using | TriangleType = axom::primal::Triangle< double, 3 > |
| using | GWNMoments = axom::quest::GWNMomentData< double, 3, ORDER > |
Public Member Functions | |
| TriangleGWNQuery ()=default | |
| void | preprocess (axom::mint::UnstructuredMesh< axom::mint::SINGLE_SHAPE > *tri_mesh, bool use_direct_eval) |
| Load triangles from mint::mesh to primal::Triangles, optionally building a BVH. More... | |
| void | query (mfem::DataCollection &dc, const primal::WindingTolerances &tol, const double slice_z=0.0) |
| Evaluate the GWN for a query grid at the DOFs of the dc query mesh. More... | |
Preprocesses a triangle mesh for GWN evaluation, and performs the calculation on the DOFs of an input MFEM mesh.
| ExecSpace | The execution space for the algorithm. |
| ORDER | If agglomeration is used, this is the order of the Taylor expansion. |
Possible evaluation modes are use_direct_eval : If true, evaluation is done triangle-by-triangle. If false, evaluation is sped up with agglomeration via Taylor-expansion
| using axom::quest::TriangleGWNQuery< ExecSpace, ORDER >::Point3D = axom::primal::Point<double, 3> |
| using axom::quest::TriangleGWNQuery< ExecSpace, ORDER >::BoxType = axom::primal::BoundingBox<double, 3> |
| using axom::quest::TriangleGWNQuery< ExecSpace, ORDER >::TriangleType = axom::primal::Triangle<double, 3> |
| using axom::quest::TriangleGWNQuery< ExecSpace, ORDER >::GWNMoments = axom::quest::GWNMomentData<double, 3, ORDER> |
|
default |
|
inline |
Load triangles from mint::mesh to primal::Triangles, optionally building a BVH.
| [in] | tri_mesh | The input mesh |
| [in] | use_direct_eval | If false, use accelerated agglomeration algorithm via BVH |
References axom::primal::BoundingBox< T, NDIMS >::addPoint(), AXOM_ANNOTATE_SCOPE, AXOM_LAMBDA, AXOM_UNUSED_PARAM, axom::primal::BoundingBox< T, NDIMS >::getCentroid(), axom::primal::BoundingBox< T, NDIMS >::getLongestDimension(), axom::primal::BoundingBox< T, NDIMS >::getMax(), axom::primal::BoundingBox< T, NDIMS >::getMin(), axom::mint::UnstructuredMesh< TOPO >::getNumberOfCells(), axom::spin::BVH< NDIMS, ExecSpace, FloatType, BVHImpl >::getTraverser(), axom::spin::BVH< NDIMS, ExecSpace, FloatType, BVHImpl >::initialize(), axom::numerics::transforms::scale(), SLIC_WARNING, and axom::Array< T, DIM, SPACE, StoragePolicy >::view().
|
inline |
Evaluate the GWN for a query grid at the DOFs of the dc query mesh.
| [in] | dc | A query grid to be evaluated at the DOFs |
| [in] | tol | A collection of possible tolerances for GWN evaluation |
| [in] | slice_z | If the dc mesh is 2D, the GWN will be evaluated on a slice parallel to the x-y plane with this offset on the z-axis |
References axom::primal::Point< T, NDIMS >::array(), AXOM_ANNOTATE_SCOPE, axom::primal::WindingTolerances::edge_tol, axom::primal::WindingTolerances::EPS, axom::quest::fast_approximate_winding_number(), axom::spin::BVH< NDIMS, ExecSpace, FloatType, BVHImpl >::getTraverser(), axom::spin::BVH< NDIMS, ExecSpace, FloatType, BVHImpl >::isInitialized(), SLIC_WARNING, and axom::primal::winding_number().