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

Represents the geometry specified in a Shape. More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/develop/src/axom/klee/Geometry.hpp>

Public Types

using Point3D = axom::primal::Point< double, 3 >
 
using Vector3D = axom::primal::Vector< double, 3 >
 
using Sphere3D = axom::primal::Sphere< double, 3 >
 
using Cone3D = axom::primal::Cone< double, 3 >
 
using Tet3D = axom::primal::Tetrahedron< double, 3 >
 
using Hex3D = axom::primal::Hexahedron< double, 3 >
 
using Plane3D = axom::primal::Plane< double, 3 >
 

Public Member Functions

 Geometry (const TransformableGeometryProperties &startProperties, std::string format, std::string path, std::shared_ptr< GeometryOperator const > operator_)
 
 Geometry (const TransformableGeometryProperties &startProperties, const axom::sidre::Group *simplexMeshGroup, const std::string &topology, std::shared_ptr< GeometryOperator const > operator_)
 
 Geometry (const TransformableGeometryProperties &startProperties, const axom::primal::Tetrahedron< double, 3 > &tet, std::shared_ptr< GeometryOperator const > operator_)
 
 Geometry (const TransformableGeometryProperties &startProperties, const axom::primal::Hexahedron< double, 3 > &hex, std::shared_ptr< GeometryOperator const > operator_)
 
 Geometry (const TransformableGeometryProperties &startProperties, const axom::primal::Sphere< double, 3 > &sphere, axom::IndexType levelOfRefinement, std::shared_ptr< GeometryOperator const > operator_)
 
 Geometry (const TransformableGeometryProperties &startProperties, axom::ArrayView< const double, 2 > discreteFunction, const Point3D &sorOrigin, const Vector3D &sorDirection, axom::IndexType levelOfRefinement, std::shared_ptr< GeometryOperator const > operator_)
 
 Geometry (const TransformableGeometryProperties &startProperties, const axom::primal::Cone< double, 3 > &cone, axom::IndexType levelOfRefinement, std::shared_ptr< GeometryOperator const > operator_)
 
 Geometry (const TransformableGeometryProperties &startProperties, const axom::primal::Plane< double, 3 > &plane, std::shared_ptr< GeometryOperator const > operator_)
 
const conduit::Node & asHierarchy () const
 Geometry definition in hierarchical format. More...
 
conduit::Node & asHierarchy ()
 
const std::string & getFormat () const
 Get the format in which the geometry was specified. More...
 
const std::string & getPath () const
 
Dimensions getInputDimensions () const
 
Dimensions getOutputDimensions () const
 Returns the dimensions of the geometry after applying operators. More...
 
const axom::sidre::GroupgetBlueprintMesh () const
 Return the blueprint mesh, for formats that are specified by a blueprint mesh or have been converted to a blueprint mesh. More...
 
const std::string & getBlueprintTopology () const
 Return the blueprint mesh topology, for formats that are specified by a blueprint mesh or have been converted to a blueprint mesh. More...
 
const Vector3D getSorDirection () const
 Return the SOR axis direction. More...
 
const Point3D getSorOriginCoords () const
 Return the 3D coordinates of the point (z=0, r=0) More...
 
bool hasGeometry () const
 
std::shared_ptr< GeometryOperator const > const & getGeometryOperator () const
 
numerics::Matrix< double > getTransform () const
 
const TransformableGeometryPropertiesgetStartProperties () const
 
TransformableGeometryProperties getEndProperties () const
 
axom::IndexType getLevelOfRefinement () const
 Return the number of levels of refinement for discretization of analytical curves. More...
 
const axom::primal::Tetrahedron< double, 3 > & getTet () const
 Return the tet geometry, when the Geometry represents a tetrahedron. More...
 
const axom::primal::Hexahedron< double, 3 > & getHex () const
 Return the hex geometry, when the Geometry represents a hexahedron. More...
 
const axom::primal::Sphere< double, 3 > & getSphere () const
 Return the sphere geometry, when the Geometry represents an alalytical sphere. More...
 
const axom::primal::Cone< double, 3 > & getCone () const
 Return the cone geometry, when the Geometry represents an alalytical cone. More...
 
const axom::primal::Plane< double, 3 > & getPlane () const
 Return the plane geometry, when the Geometry represents a plane. More...
 
axom::ArrayView< const double, 2 > getDiscreteFunction () const
 Get the discrete function used in surfaces of revolution. More...
 

Detailed Description

Represents the geometry specified in a Shape.

Member Typedef Documentation

◆ Point3D

◆ Vector3D

◆ Sphere3D

◆ Cone3D

◆ Tet3D

◆ Hex3D

◆ Plane3D

Constructor & Destructor Documentation

◆ Geometry() [1/8]

axom::klee::Geometry::Geometry ( const TransformableGeometryProperties startProperties,
std::string  format,
std::string  path,
std::shared_ptr< GeometryOperator const >  operator_ 
)

Create a Geometry object based on a file representation.

Parameters
startPropertiesthe transformable properties before any operators are applied
formatthe format of the file
paththe path of the file
operator_a possibly null operator to apply to the geometry.

◆ Geometry() [2/8]

axom::klee::Geometry::Geometry ( const TransformableGeometryProperties startProperties,
const axom::sidre::Group simplexMeshGroup,
const std::string &  topology,
std::shared_ptr< GeometryOperator const >  operator_ 
)

Create a Geometry object based on a blueprint tetrahedral mesh.

Parameters
startPropertiesthe transformable properties before any operators are applied
simplexMeshGroupthe geometry in blueprint format. The elements should be segments, triangles or tetrahedra.
topologyThe blueprint topology to use.
operator_a possibly null operator to apply to the geometry.

◆ Geometry() [3/8]

axom::klee::Geometry::Geometry ( const TransformableGeometryProperties startProperties,
const axom::primal::Tetrahedron< double, 3 > &  tet,
std::shared_ptr< GeometryOperator const >  operator_ 
)

Create a tetrahedron Geometry object.

Parameters
startPropertiesthe transformable properties before any operators are applied
tetTetrahedron
operator_a possibly null operator to apply to the geometry.

◆ Geometry() [4/8]

axom::klee::Geometry::Geometry ( const TransformableGeometryProperties startProperties,
const axom::primal::Hexahedron< double, 3 > &  hex,
std::shared_ptr< GeometryOperator const >  operator_ 
)

Create a hexahedron Geometry object.

Parameters
startPropertiesthe transformable properties before any operators are applied
hexHexahedron
operator_a possibly null operator to apply to the geometry.

◆ Geometry() [5/8]

axom::klee::Geometry::Geometry ( const TransformableGeometryProperties startProperties,
const axom::primal::Sphere< double, 3 > &  sphere,
axom::IndexType  levelOfRefinement,
std::shared_ptr< GeometryOperator const >  operator_ 
)

Create a sphere Geometry object.

Parameters
startPropertiesthe transformable properties before any operators are applied
sphereAnalytical sphere specifications
levelOfRefinementNumber of refinement levels to use for discretizing the sphere.
operator_a possibly null operator to apply to the geometry.

◆ Geometry() [6/8]

axom::klee::Geometry::Geometry ( const TransformableGeometryProperties startProperties,
axom::ArrayView< const double, 2 >  discreteFunction,
const Point3D sorOrigin,
const Vector3D sorDirection,
axom::IndexType  levelOfRefinement,
std::shared_ptr< GeometryOperator const >  operator_ 
)

Create a surface-of-revolution (SOR) Geometry object.

Parameters
startPropertiesthe transformable properties before any operators are applied
discreteFunctionDiscrete function describing the surface of revolution.
sorOrigin3D coordinates of the point (z=0, r=0).
sorDirectionSOR axis, in the direction of increasing z.
levelOfRefinementNumber of refinement levels to use for discretizing the SOR.
operator_a possibly null operator to apply to the geometry.

The discreteFunction should be an Nx2 array, interpreted as (z,r) pairs, where z is the axial distance and r is the radius.

sorAxis should point in the direction of increasing z.

◆ Geometry() [7/8]

axom::klee::Geometry::Geometry ( const TransformableGeometryProperties startProperties,
const axom::primal::Cone< double, 3 > &  cone,
axom::IndexType  levelOfRefinement,
std::shared_ptr< GeometryOperator const >  operator_ 
)

Create a cone Geometry object.

Parameters
startPropertiesthe transformable properties before any operators are applied
sphereAnalytical sphere specifications
levelOfRefinementNumber of refinement levels to use for discretizing the sphere.
operator_a possibly null operator to apply to the geometry.

◆ Geometry() [8/8]

axom::klee::Geometry::Geometry ( const TransformableGeometryProperties startProperties,
const axom::primal::Plane< double, 3 > &  plane,
std::shared_ptr< GeometryOperator const >  operator_ 
)

Create a planar Geometry object.

Parameters
startPropertiesthe transformable properties before any operators are applied
tetTetrahedron
operator_a possibly null operator to apply to the geometry.

The space on the positive normal side of the plane is considered "inside the shape".

Member Function Documentation

◆ asHierarchy() [1/2]

const conduit::Node& axom::klee::Geometry::asHierarchy ( ) const
inline

Geometry definition in hierarchical format.

◆ asHierarchy() [2/2]

conduit::Node& axom::klee::Geometry::asHierarchy ( )
inline

◆ getFormat()

const std::string& axom::klee::Geometry::getFormat ( ) const
inline

Get the format in which the geometry was specified.

The format is determined by the constructor used. Values are:

  • "c2c" = C2C file
  • "proe" = ProE file
  • "mfem" = MFEM file
  • "blueprint-tets" = Blueprint tetrahedral mesh in memory
  • "tet3D" = 3D tetrahedron (4 points)
  • "sphere3D" = 3D sphere, as primal::Sphere<double,3>
  • "sor3D" = 3D surface of revolution.
  • "cone3D" = 3D cone, as primal::Cone<double,3>
  • "hex3D" = 3D hexahedron (8 points)
  • "plane3D" = 3D plane
Returns
the format of the shape

◆ getPath()

const std::string& axom::klee::Geometry::getPath ( ) const
inline

Get the path at which to find the specification of the geometry, for geometries stored in files.

Returns
the path to the geometry file

◆ getInputDimensions()

Dimensions axom::klee::Geometry::getInputDimensions ( ) const
inline

Returns the dimensions of the geometry before applying operators

For file-based inputs, this is the dimension of the input mesh

References axom::klee::TransformableGeometryProperties::dimensions, and getStartProperties().

◆ getOutputDimensions()

Dimensions axom::klee::Geometry::getOutputDimensions ( ) const
inline

Returns the dimensions of the geometry after applying operators.

References axom::klee::TransformableGeometryProperties::dimensions, and getEndProperties().

◆ getBlueprintMesh()

const axom::sidre::Group* axom::klee::Geometry::getBlueprintMesh ( ) const

Return the blueprint mesh, for formats that are specified by a blueprint mesh or have been converted to a blueprint mesh.

◆ getBlueprintTopology()

const std::string& axom::klee::Geometry::getBlueprintTopology ( ) const

Return the blueprint mesh topology, for formats that are specified by a blueprint mesh or have been converted to a blueprint mesh.

◆ getSorDirection()

const Vector3D axom::klee::Geometry::getSorDirection ( ) const
inline

Return the SOR axis direction.

◆ getSorOriginCoords()

const Point3D axom::klee::Geometry::getSorOriginCoords ( ) const
inline

Return the 3D coordinates of the point (z=0, r=0)

◆ hasGeometry()

bool axom::klee::Geometry::hasGeometry ( ) const

◆ getGeometryOperator()

std::shared_ptr<GeometryOperator const> const& axom::klee::Geometry::getGeometryOperator ( ) const
inline

Get a GeometryOperator to apply to this geometry. Can be null.

Returns
a potentially null operator to apply to the geometry

◆ getTransform()

numerics::Matrix<double> axom::klee::Geometry::getTransform ( ) const

Get any operator transforms concatenated into a 4x4 matrix. If there are no geometry operators then the identity matrix is returned.

Returns
A 4x4 matrix that represents the geometry transforms.

◆ getStartProperties()

const TransformableGeometryProperties& axom::klee::Geometry::getStartProperties ( ) const
inline

Get the initial transformable properties of this geometry

Returns
the initial transformable properties of this geometry

◆ getEndProperties()

TransformableGeometryProperties axom::klee::Geometry::getEndProperties ( ) const

Get the final transformable properties of this geometry after operators are applied

Returns
the initial transformable properties of this geometry

◆ getLevelOfRefinement()

axom::IndexType axom::klee::Geometry::getLevelOfRefinement ( ) const
inline

Return the number of levels of refinement for discretization of analytical curves.

This number is unused for geometries that are specified in discrete form.

◆ getTet()

const axom::primal::Tetrahedron<double, 3>& axom::klee::Geometry::getTet ( ) const
inline

Return the tet geometry, when the Geometry represents a tetrahedron.

◆ getHex()

const axom::primal::Hexahedron<double, 3>& axom::klee::Geometry::getHex ( ) const
inline

Return the hex geometry, when the Geometry represents a hexahedron.

◆ getSphere()

const axom::primal::Sphere<double, 3>& axom::klee::Geometry::getSphere ( ) const
inline

Return the sphere geometry, when the Geometry represents an alalytical sphere.

◆ getCone()

const axom::primal::Cone<double, 3>& axom::klee::Geometry::getCone ( ) const
inline

Return the cone geometry, when the Geometry represents an alalytical cone.

◆ getPlane()

const axom::primal::Plane<double, 3>& axom::klee::Geometry::getPlane ( ) const
inline

Return the plane geometry, when the Geometry represents a plane.

◆ getDiscreteFunction()

axom::ArrayView<const double, 2> axom::klee::Geometry::getDiscreteFunction ( ) const
inline

Get the discrete function used in surfaces of revolution.

References axom::Array< T, DIM, SPACE, StoragePolicy >::view().


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