1#ifndef included_AMP_LogicalGeometry
2#define included_AMP_LogicalGeometry
4#include "AMP/geometry/Geometry.h"
5#include "AMP/utils/ArraySize.h"
102 const
std::array<
int, 6> &ids = { 1, 2, 3, 4, 5, 6 } );
Simple class to store the array dimensions.
A class used to abstract away geometry information from an application or mesh.
A class used to abstract away logical geometry based operations.
virtual ArraySize getLogicalGridSize(const std::vector< double > &res) const =0
Return the logical grid size.
const auto & getLogicalSurfaceIds() const
Return the surface ids for the logical boundaries.
uint8_t getLogicalDim() const
Return the number of logical dimensions.
virtual ~LogicalGeometry()=default
Destructor.
const std::array< int, 6 > d_ids
const uint8_t d_logicalDim
LogicalGeometry & operator=(LogicalGeometry &&)=delete
virtual ArraySize getLogicalGridSize(const ArraySize &x) const =0
Return the logical grid size.
virtual Point logical(const Point &x) const =0
Return the logical position.
AMP::Mesh::GeomType getGeomType() const override final
Get the geometric type for the geometry.
LogicalGeometry(LogicalGeometry &&)=delete
LogicalGeometry & operator=(const LogicalGeometry &)=delete
std::array< bool, 3 > getPeriodicDim() const
Return the logical grid periodic dimensions.
virtual Point physical(const Point &x) const =0
Return the physical position.
void writeRestart(int64_t fid) const override
Write restart data to file.
LogicalGeometry(const LogicalGeometry &)=default
GeomType
Enumeration for basic mesh-based quantities.