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

Preprocesses a linear 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 Point2D = axom::primal::Point< double, 2 >
 
using BoxType = axom::primal::BoundingBox< double, 2 >
 
using CurveArrayType = axom::Array< axom::primal::NURBSCurve< double, 2 > >
 
using SegmentType = axom::primal::Segment< double, 2 >
 
using GWNMoments = axom::quest::GWNMomentData< double, 2, ORDER >
 

Public Member Functions

 PolylineGWNQuery ()=default
 
void preprocess (axom::mint::UnstructuredMesh< axom::mint::SINGLE_SHAPE > *poly_mesh, bool use_direct_eval)
 Process mint::mesh into axom::Segments, optionally building a BVH. More...
 
void query (mfem::DataCollection &dc, const primal::WindingTolerances &tol)
 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::PolylineGWNQuery< ExecSpace, ORDER >

Preprocesses a linear 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 segment-by-segment. If false, evaluation is sped up with agglomeration via Taylor-expansion

Member Typedef Documentation

◆ Point2D

template<typename ExecSpace , int ORDER = 2>
using axom::quest::PolylineGWNQuery< ExecSpace, ORDER >::Point2D = axom::primal::Point<double, 2>

◆ BoxType

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

◆ CurveArrayType

template<typename ExecSpace , int ORDER = 2>
using axom::quest::PolylineGWNQuery< ExecSpace, ORDER >::CurveArrayType = axom::Array<axom::primal::NURBSCurve<double, 2> >

◆ SegmentType

template<typename ExecSpace , int ORDER = 2>
using axom::quest::PolylineGWNQuery< ExecSpace, ORDER >::SegmentType = axom::primal::Segment<double, 2>

◆ GWNMoments

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

Constructor & Destructor Documentation

◆ PolylineGWNQuery()

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

Member Function Documentation

◆ preprocess()

template<typename ExecSpace , int ORDER = 2>
void axom::quest::PolylineGWNQuery< ExecSpace, ORDER >::preprocess ( axom::mint::UnstructuredMesh< axom::mint::SINGLE_SHAPE > *  poly_mesh,
bool  use_direct_eval 
)
inline

Process mint::mesh into axom::Segments, optionally building a BVH.

Parameters
[in]poly_meshThe input mesh
[in]use_direct_evalIf false, use accelerated agglomeration algorithm via BVH

References AXOM_ANNOTATE_SCOPE, AXOM_LAMBDA, AXOM_UNUSED_PARAM, axom::mint::UnstructuredMesh< TOPO >::getNumberOfCells(), axom::spin::BVH< NDIMS, ExecSpace, FloatType, BVHImpl >::getTraverser(), axom::spin::BVH< NDIMS, ExecSpace, FloatType, BVHImpl >::initialize(), SLIC_WARNING, and axom::Array< T, DIM, SPACE, StoragePolicy >::view().

◆ query()

template<typename ExecSpace , int ORDER = 2>
void axom::quest::PolylineGWNQuery< ExecSpace, ORDER >::query ( mfem::DataCollection &  dc,
const primal::WindingTolerances tol 
)
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

References AXOM_ANNOTATE_SCOPE, axom::primal::WindingTolerances::edge_tol, 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: