|
AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
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... | |
Preprocesses a linear 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 segment-by-segment. If false, evaluation is sped up with agglomeration via Taylor-expansion
| using axom::quest::PolylineGWNQuery< ExecSpace, ORDER >::Point2D = axom::primal::Point<double, 2> |
| using axom::quest::PolylineGWNQuery< ExecSpace, ORDER >::BoxType = axom::primal::BoundingBox<double, 2> |
| using axom::quest::PolylineGWNQuery< ExecSpace, ORDER >::CurveArrayType = axom::Array<axom::primal::NURBSCurve<double, 2> > |
| using axom::quest::PolylineGWNQuery< ExecSpace, ORDER >::SegmentType = axom::primal::Segment<double, 2> |
| using axom::quest::PolylineGWNQuery< ExecSpace, ORDER >::GWNMoments = axom::quest::GWNMomentData<double, 2, ORDER> |
|
default |
|
inline |
Process mint::mesh into axom::Segments, optionally building a BVH.
| [in] | poly_mesh | The input mesh |
| [in] | use_direct_eval | If 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().
|
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::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().