|
AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Preprocesses NURBSCurve geometry 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 | BoxType = axom::primal::BoundingBox< double, 2 > |
| using | GWNMoments = axom::quest::GWNMomentData< double, 2, ORDER > |
| using | CurveType = axom::primal::NURBSCurve< double, 2 > |
| using | CurveArrayType = axom::Array< CurveType > |
| using | NURBSCacheManager = typename axom::primal::nurbs_cache_2d_traits< ExecSpace >::type |
Public Member Functions | |
| NURBSCurveGWNQuery ()=default | |
| void | preprocess (const CurveArrayType &input_curves, bool use_direct_eval=false, bool use_memoization=true) |
| Process input curves, 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... | |
Setters for misc algorithm parameters | |
| void | setSubdivisionBboxThreshold (double subdivision_bbox_threshold) |
| void | setSubdivisionMaxPasses (int subdivision_max_passes) |
| void | setSubdivisionMaxNumCurves (int subdivision_max_curves) |
Preprocesses NURBSCurve geometry 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 curve-by-curve. If false, evaluation is sped up with agglomeration via Taylor-expansion use_memoization : Caches and re-uses subdivision data for curve evaluations
| using axom::quest::NURBSCurveGWNQuery< ExecSpace, ORDER >::BoxType = axom::primal::BoundingBox<double, 2> |
| using axom::quest::NURBSCurveGWNQuery< ExecSpace, ORDER >::GWNMoments = axom::quest::GWNMomentData<double, 2, ORDER> |
| using axom::quest::NURBSCurveGWNQuery< ExecSpace, ORDER >::CurveType = axom::primal::NURBSCurve<double, 2> |
| using axom::quest::NURBSCurveGWNQuery< ExecSpace, ORDER >::CurveArrayType = axom::Array<CurveType> |
| using axom::quest::NURBSCurveGWNQuery< ExecSpace, ORDER >::NURBSCacheManager = typename axom::primal::nurbs_cache_2d_traits<ExecSpace>::type |
|
default |
|
inline |
|
inline |
|
inline |
|
inline |
Process input curves, optionally building a BVH.
| [in] | input_curves | A view to the input curves |
| [in] | use_direct_eval | If false, use accelerated agglomeration algorithm via BVH |
| [in] | use_memoization | If true, allocate a per-thread cache for each curve |
References AXOM_ANNOTATE_SCOPE, AXOM_LAMBDA, axom::spin::BVH< NDIMS, ExecSpace, FloatType, BVHImpl >::getTraverser(), axom::spin::BVH< NDIMS, ExecSpace, FloatType, BVHImpl >::initialize(), SLIC_WARNING, axom::quest::subdivide_curves(), 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 |
References AXOM_ANNOTATE_SCOPE, axom::primal::Point< T, NDIMS >::data(), 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().