AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/develop/src/axom/quest/Shaper.hpp>
Public Types | |
using | RefinementType = enum { RefinementUniformSegments, RefinementDynamic } |
Refinement type. More... | |
Public Member Functions | |
Shaper (const klee::ShapeSet &shapeSet, sidre::MFEMSidreDataCollection *dc) | |
virtual | ~Shaper ()=default |
Functions to get and set shaping parameters | |
void | setSamplesPerKnotSpan (int nSamples) |
void | setVertexWeldThreshold (double threshold) |
void | setVerbosity (bool isVerbose) |
void | setPercentError (double percent) |
void | setRefinementType (RefinementType t) |
bool | isVerbose () const |
sidre::MFEMSidreDataCollection * | getDC () |
mint::Mesh * | getSurfaceMesh () const |
virtual bool | isValidFormat (const std::string &format) const |
Predicate to determine if the specified format is valid. More... | |
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 | 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 |
Static Public Attributes | |
static constexpr int | DEFAULT_SAMPLES_PER_KNOT_SPAN {25} |
static constexpr double | MINIMUM_PERCENT_ERROR {0.} |
static constexpr double | MAXIMUM_PERCENT_ERROR {100.} |
static constexpr double | DEFAULT_VERTEX_WELD_THRESHOLD {1e-9} |
Functions to generate/adjust volume fractions after all shapes have been applied | |
const klee::ShapeSet & | m_shapeSet |
sidre::MFEMSidreDataCollection * | m_dc |
mint::Mesh * | m_surfaceMesh {nullptr} |
int | m_samplesPerKnotSpan {DEFAULT_SAMPLES_PER_KNOT_SPAN} |
double | m_percentError {MINIMUM_PERCENT_ERROR} |
RefinementType | m_refinementType {RefinementUniformSegments} |
double | m_vertexWeldThreshold {DEFAULT_VERTEX_WELD_THRESHOLD} |
bool | m_verboseOutput {false} |
MPI_Comm | m_comm {MPI_COMM_SELF} |
virtual void | adjustVolumeFractions ()=0 |
double | allReduceSum (double val) const |
Helper to apply a parallel sum reduction to a quantity. More... | |
void | loadShapeInternal (const klee::Shape &shape, double percentError, double &revolvedVolume) |
Loads the shape from file into m_surfaceMesh and computes a revolvedVolume for the shape. More... | |
void | applyTransforms (const klee::Shape &shape) |
Computes transforms for the shape and applies them to the surface mesh. More... | |
void | applyTransforms (const numerics::Matrix< double > &transform) |
Computes transforms for the shape and applies them to the surface mesh. More... | |
numerics::Matrix< double > | getTransforms (const klee::Shape &shape) const |
Get a matrix that contains the shape's concatenated transforms. More... | |
int | getRank () const |
Helper function to get the rank associated with the current process. More... | |
Abstract base class for shaping material volume fractions
using axom::quest::Shaper::RefinementType = enum { RefinementUniformSegments, RefinementDynamic } |
Refinement type.
axom::quest::Shaper::Shaper | ( | const klee::ShapeSet & | shapeSet, |
sidre::MFEMSidreDataCollection * | dc | ||
) |
|
virtualdefault |
void axom::quest::Shaper::setSamplesPerKnotSpan | ( | int | nSamples | ) |
void axom::quest::Shaper::setVertexWeldThreshold | ( | double | threshold | ) |
|
inline |
References isVerbose(), and m_verboseOutput.
void axom::quest::Shaper::setPercentError | ( | double | percent | ) |
void axom::quest::Shaper::setRefinementType | ( | RefinementType | t | ) |
|
inline |
References m_verboseOutput.
|
inline |
References m_dc.
|
inline |
References m_surfaceMesh.
|
virtual |
Predicate to determine if the specified format is valid.
format | A string listing the format to check |
|
virtual |
Loads the shape from file into m_surfaceMesh.
Reimplemented in axom::quest::IntersectionShaper.
|
pure virtual |
Implemented in axom::quest::SamplingShaper, and axom::quest::IntersectionShaper.
|
pure virtual |
Implemented in axom::quest::SamplingShaper, and axom::quest::IntersectionShaper.
|
pure virtual |
Implemented in axom::quest::SamplingShaper, and axom::quest::IntersectionShaper.
|
pure virtual |
Implemented in axom::quest::SamplingShaper, and axom::quest::IntersectionShaper.
|
pure virtual |
Implemented in axom::quest::SamplingShaper, and axom::quest::IntersectionShaper.
double axom::quest::Shaper::allReduceSum | ( | double | val | ) | const |
Helper to apply a parallel sum reduction to a quantity.
|
protected |
Loads the shape from file into m_surfaceMesh and computes a revolvedVolume for the shape.
shape | The shape. | |
percentError | A percent error to use when refining the shape. If it positive then Axom will try to refine dynamically according to this error. Otherwise, it will use the segmentsPerKnotSpan value. | |
[out] | revolvedvolume | A revolved volume for the shape, if possible. |
|
protected |
Computes transforms for the shape and applies them to the surface mesh.
shape | The shape. |
|
protected |
Computes transforms for the shape and applies them to the surface mesh.
shape | The shape. |
transform | A 4x4 matrix containing the transformation to apply. |
|
protected |
Get a matrix that contains the shape's concatenated transforms.
shape | The shape whose transforms are being concatenated. |
|
protected |
Helper function to get the rank associated with the current process.
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |