AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::quest::IntersectionShaper Class Reference

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.6.1/src/axom/quest/IntersectionShaper.hpp>

Inheritance diagram for axom::quest::IntersectionShaper:

Public Types

enum  ExecPolicy { seq = 0, omp = 1, cuda = 2 }
 Choose runtime policy for RAJA. More...
 
using BoundingBoxType = primal::BoundingBox< double, 3 >
 
using PolyhedronType = primal::Polyhedron< double, 3 >
 
using OctahedronType = primal::Octahedron< double, 3 >
 
using Point2D = primal::Point< double, 2 >
 
using Point3D = primal::Point< double, 3 >
 
using TetrahedronType = primal::Tetrahedron< double, 3 >
 

Public Member Functions

 IntersectionShaper (const klee::ShapeSet &shapeSet, sidre::MFEMSidreDataCollection *dc)
 
void prepareShapeQuery (klee::Dimensions shapeDimension, const klee::Shape &shape) override
 
void runShapeQuery (const klee::Shape &shape) override
 
void adjustVolumeFractions () override
 
bool isVerbose () const
 
sidre::MFEMSidreDataCollection * getDC ()
 
mint::MeshgetSurfaceMesh () const
 
virtual bool isValidFormat (const std::string &format) const
 Predicate to determine if the specified format is valid. More...
 
Functions to get and set shaping parameters related to intersection; supplements parameters in base class
void setLevel (int level)
 
void setExecPolicy (int policy)
 
Functions related to the stages for a given shape
void applyReplacementRules (const klee::Shape &shape) override
 Initializes the spatial index for shaping. More...
 
void finalizeShapeQuery () override
 
Functions to get and set shaping parameters
void setSamplesPerKnotSpan (int nSamples)
 
void setVertexWeldThreshold (double threshold)
 
void setVerbosity (bool isVerbose)
 
Functions related to the stages for a given shape
virtual void loadShape (const klee::Shape &shape)
 Loads the shape from file into m_surfaceMesh. More...
 
virtual void applyTransforms (const klee::Shape &shape)
 

Protected Member Functions

int getRank () const
 Helper function to get the rank associated with the current process. More...
 
double allReduceSum (double val) const
 Helper to apply a parallel sum reduction to a quantity. More...
 

Protected Attributes

const klee::ShapeSetm_shapeSet
 
sidre::MFEMSidreDataCollection * m_dc
 
mint::Meshm_surfaceMesh {nullptr}
 
int m_samplesPerKnotSpan {25}
 
bool m_verboseOutput {false}
 
MPI_Comm m_comm {MPI_COMM_SELF}
 

Member Typedef Documentation

◆ BoundingBoxType

◆ PolyhedronType

◆ OctahedronType

◆ Point2D

◆ Point3D

◆ TetrahedronType

Member Enumeration Documentation

◆ ExecPolicy

Choose runtime policy for RAJA.

Enumerator
seq 
omp 
cuda 

Constructor & Destructor Documentation

◆ IntersectionShaper()

axom::quest::IntersectionShaper::IntersectionShaper ( const klee::ShapeSet shapeSet,
sidre::MFEMSidreDataCollection *  dc 
)
inline

Member Function Documentation

◆ setLevel()

void axom::quest::IntersectionShaper::setLevel ( int  level)
inline

◆ setExecPolicy()

◆ applyReplacementRules()

void axom::quest::IntersectionShaper::applyReplacementRules ( const klee::Shape shape)
inlineoverridevirtual

Initializes the spatial index for shaping.

Implementation here – update material volume fractions based on replacement rules

Implements axom::quest::Shaper.

References axom::quest::Shaper::getDC(), axom::klee::Shape::getMaterial(), axom::klee::Shape::getName(), SLIC_ASSERT, and SLIC_INFO.

◆ finalizeShapeQuery()

void axom::quest::IntersectionShaper::finalizeShapeQuery ( )
inlineoverridevirtual

◆ prepareShapeQuery()

void axom::quest::IntersectionShaper::prepareShapeQuery ( klee::Dimensions  shapeDimension,
const klee::Shape shape 
)
inlineoverridevirtual

Implements axom::quest::Shaper.

References cuda, omp, seq, and SLIC_ERROR.

◆ runShapeQuery()

void axom::quest::IntersectionShaper::runShapeQuery ( const klee::Shape shape)
inlineoverridevirtual

Implements axom::quest::Shaper.

References cuda, omp, seq, and SLIC_ERROR.

◆ adjustVolumeFractions()

void axom::quest::IntersectionShaper::adjustVolumeFractions ( )
inlineoverridevirtual

◆ setSamplesPerKnotSpan()

void axom::quest::Shaper::setSamplesPerKnotSpan ( int  nSamples)
inherited

◆ setVertexWeldThreshold()

void axom::quest::Shaper::setVertexWeldThreshold ( double  threshold)
inherited

◆ setVerbosity()

void axom::quest::Shaper::setVerbosity ( bool  isVerbose)
inlineinherited

◆ isVerbose()

bool axom::quest::Shaper::isVerbose ( ) const
inlineinherited

◆ getDC()

sidre::MFEMSidreDataCollection* axom::quest::Shaper::getDC ( )
inlineinherited

◆ getSurfaceMesh()

◆ isValidFormat()

virtual bool axom::quest::Shaper::isValidFormat ( const std::string &  format) const
virtualinherited

Predicate to determine if the specified format is valid.

Parameters
formatA string listing the format to check

Referenced by axom::quest::Shaper::getSurfaceMesh().

◆ loadShape()

virtual void axom::quest::Shaper::loadShape ( const klee::Shape shape)
virtualinherited

Loads the shape from file into m_surfaceMesh.

Referenced by axom::quest::Shaper::getSurfaceMesh().

◆ applyTransforms()

virtual void axom::quest::Shaper::applyTransforms ( const klee::Shape shape)
virtualinherited

◆ getRank()

int axom::quest::Shaper::getRank ( ) const
protectedinherited

Helper function to get the rank associated with the current process.

Note
This function can be called even in non-mpi configurations

Referenced by axom::quest::Shaper::getSurfaceMesh().

◆ allReduceSum()

double axom::quest::Shaper::allReduceSum ( double  val) const
protectedinherited

Helper to apply a parallel sum reduction to a quantity.

Note
This is a no-op when running without MPI

Referenced by axom::quest::Shaper::getSurfaceMesh(), and setExecPolicy().

Member Data Documentation

◆ m_shapeSet

const klee::ShapeSet& axom::quest::Shaper::m_shapeSet
protectedinherited

◆ m_dc

sidre::MFEMSidreDataCollection* axom::quest::Shaper::m_dc
protectedinherited

◆ m_surfaceMesh

mint::Mesh* axom::quest::Shaper::m_surfaceMesh {nullptr}
protectedinherited

◆ m_samplesPerKnotSpan

int axom::quest::Shaper::m_samplesPerKnotSpan {25}
protectedinherited

◆ m_verboseOutput

bool axom::quest::Shaper::m_verboseOutput {false}
protectedinherited

◆ m_comm

MPI_Comm axom::quest::Shaper::m_comm {MPI_COMM_SELF}
protectedinherited

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