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

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

Inheritance diagram for axom::quest::Shaper:

Public Member Functions

 Shaper (const klee::ShapeSet &shapeSet, sidre::MFEMSidreDataCollection *dc)
 
virtual ~Shaper ()=default
 
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
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)
 
virtual void prepareShapeQuery (klee::Dimensions shapeDimension, const klee::Shape &shape)=0
 
virtual void runShapeQuery (const klee::Shape &shape)=0
 
virtual void applyReplacementRules (const klee::Shape &shape)=0
 
virtual void finalizeShapeQuery ()=0
 
Functions to generate/adjust volume fractions after all shapes have been applied
virtual void adjustVolumeFractions ()=0
 

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}
 
double m_vertexWeldThreshold {1e-9}
 
bool m_verboseOutput {false}
 
MPI_Comm m_comm {MPI_COMM_SELF}
 

Detailed Description

Abstract base class for shaping material volume fractions

Constructor & Destructor Documentation

◆ Shaper()

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

◆ ~Shaper()

virtual axom::quest::Shaper::~Shaper ( )
virtualdefault

Member Function Documentation

◆ setSamplesPerKnotSpan()

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

◆ setVertexWeldThreshold()

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

◆ setVerbosity()

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

References isVerbose(), and m_verboseOutput.

◆ isVerbose()

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

◆ getDC()

◆ getSurfaceMesh()

◆ isValidFormat()

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

Predicate to determine if the specified format is valid.

Parameters
formatA string listing the format to check

Referenced by getSurfaceMesh().

◆ loadShape()

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

Loads the shape from file into m_surfaceMesh.

Referenced by getSurfaceMesh().

◆ applyTransforms()

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

Referenced by getSurfaceMesh().

◆ prepareShapeQuery()

virtual void axom::quest::Shaper::prepareShapeQuery ( klee::Dimensions  shapeDimension,
const klee::Shape shape 
)
pure virtual

◆ runShapeQuery()

virtual void axom::quest::Shaper::runShapeQuery ( const klee::Shape shape)
pure virtual

◆ applyReplacementRules()

virtual void axom::quest::Shaper::applyReplacementRules ( const klee::Shape shape)
pure virtual

◆ finalizeShapeQuery()

virtual void axom::quest::Shaper::finalizeShapeQuery ( )
pure virtual

◆ adjustVolumeFractions()

virtual void axom::quest::Shaper::adjustVolumeFractions ( )
pure virtual

◆ getRank()

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

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

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

Referenced by getSurfaceMesh().

◆ allReduceSum()

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

Helper to apply a parallel sum reduction to a quantity.

Note
This is a no-op when running without MPI

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

Member Data Documentation

◆ m_shapeSet

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

◆ m_dc

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

Referenced by getDC().

◆ m_surfaceMesh

◆ m_samplesPerKnotSpan

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

◆ m_vertexWeldThreshold

double axom::quest::Shaper::m_vertexWeldThreshold {1e-9}
protected

◆ m_verboseOutput

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

Referenced by isVerbose(), and setVerbosity().

◆ m_comm

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

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