AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::quest::TriangleGWNQuery< ExecSpace, ORDER > Class Template Reference

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...
 

Detailed Description

template<typename ExecSpace, int ORDER = 2>
class axom::quest::TriangleGWNQuery< ExecSpace, ORDER >

Preprocesses a triangle mesh for GWN evaluation, and performs the calculation on the DOFs of an input MFEM mesh.

Template Parameters
ExecSpaceThe execution space for the algorithm.
ORDERIf 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

Member Typedef Documentation

◆ Point3D

template<typename ExecSpace , int ORDER = 2>
using axom::quest::TriangleGWNQuery< ExecSpace, ORDER >::Point3D = axom::primal::Point<double, 3>

◆ BoxType

template<typename ExecSpace , int ORDER = 2>
using axom::quest::TriangleGWNQuery< ExecSpace, ORDER >::BoxType = axom::primal::BoundingBox<double, 3>

◆ TriangleType

template<typename ExecSpace , int ORDER = 2>
using axom::quest::TriangleGWNQuery< ExecSpace, ORDER >::TriangleType = axom::primal::Triangle<double, 3>

◆ GWNMoments

template<typename ExecSpace , int ORDER = 2>
using axom::quest::TriangleGWNQuery< ExecSpace, ORDER >::GWNMoments = axom::quest::GWNMomentData<double, 3, ORDER>

Constructor & Destructor Documentation

◆ TriangleGWNQuery()

template<typename ExecSpace , int ORDER = 2>
axom::quest::TriangleGWNQuery< ExecSpace, ORDER >::TriangleGWNQuery ( )
default

Member Function Documentation

◆ preprocess()

◆ query()

template<typename ExecSpace , int ORDER = 2>
void axom::quest::TriangleGWNQuery< ExecSpace, ORDER >::query ( mfem::DataCollection &  dc,
const primal::WindingTolerances tol,
const double  slice_z = 0.0 
)
inline

Evaluate the GWN for a query grid at the DOFs of the dc query mesh.

Parameters
[in]dcA query grid to be evaluated at the DOFs
[in]tolA collection of possible tolerances for GWN evaluation
[in]slice_zIf 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().


The documentation for this class was generated from the following file: