The VolCartesian defines a Cartesian patch. More...
Public Types | |
enum | MemoryMode { MEMORY_NORMAL , MEMORY_LIGHT } |
Public Types inherited from bitpit::PatchKernel | |
enum | AdaptionMode { ADAPTION_DISABLED = -1 , ADAPTION_AUTOMATIC , ADAPTION_MANUAL } |
enum | AdaptionStatus { ADAPTION_CLEAN , ADAPTION_DIRTY , ADAPTION_PREPARED , ADAPTION_ALTERED } |
enum | AdjacenciesBuildStrategy { ADJACENCIES_NONE = -1 , ADJACENCIES_AUTOMATIC } |
typedef PiercedVector< Cell >::const_iterator | CellConstIterator |
typedef PiercedVector< Cell >::const_range | CellConstRange |
typedef PiercedVector< Cell >::iterator | CellIterator |
typedef PiercedVector< Cell >::range | CellRange |
typedef PiercedVector< Interface >::const_iterator | InterfaceConstIterator |
typedef PiercedVector< Interface >::const_range | InterfaceConstRange |
typedef PiercedVector< Interface >::iterator | InterfaceIterator |
typedef PiercedVector< Interface >::range | InterfaceRange |
enum | InterfacesBuildStrategy { INTERFACES_NONE = -1 , INTERFACES_AUTOMATIC } |
enum | PartitioningMode { PARTITIONING_DISABLED = -1 , PARTITIONING_ENABLED } |
enum | PartitioningStatus { PARTITIONING_CLEAN , PARTITIONING_PREPARED , PARTITIONING_ALTERED } |
typedef PiercedVector< Vertex >::const_iterator | VertexConstIterator |
typedef PiercedVector< Vertex >::const_range | VertexConstRange |
typedef PiercedVector< Vertex >::iterator | VertexIterator |
typedef PiercedVector< Vertex >::range | VertexRange |
enum | WriteTarget { WRITE_TARGET_CELLS_ALL , WRITE_TARGET_CELLS_INTERNAL } |
Public Member Functions | |
VolCartesian () | |
VolCartesian (int dimension, const std::array< double, 3 > &origin, const std::array< double, 3 > &lengths, const std::array< int, 3 > &nCells) | |
VolCartesian (int dimension, const std::array< double, 3 > &origin, double length, double dh) | |
VolCartesian (int dimension, const std::array< double, 3 > &origin, double length, int nCells1D) | |
VolCartesian (int id, int dimension, const std::array< double, 3 > &origin, const std::array< double, 3 > &lengths, const std::array< int, 3 > &nCells) | |
VolCartesian (int id, int dimension, const std::array< double, 3 > &origin, double length, double dh) | |
VolCartesian (int id, int dimension, const std::array< double, 3 > &origin, double length, int nCells1D) | |
VolCartesian (std::istream &stream) | |
std::unique_ptr< PatchKernel > | clone () const override |
std::vector< double > | convertToCellData (const std::vector< double > &vertexData) const |
std::vector< double > | convertToVertexData (const std::vector< double > &cellData) const |
void | evalCellBoundingBox (long id, std::array< double, 3 > *minPoint, std::array< double, 3 > *maxPoint) const override |
std::array< double, 3 > | evalCellCentroid (const std::array< int, 3 > &ijk) const |
std::array< double, 3 > | evalCellCentroid (long id) const override |
double | evalCellSize (const std::array< int, 3 > &ijk) const |
double | evalCellSize (long id) const override |
double | evalCellVolume (const std::array< int, 3 > &ijk) const |
double | evalCellVolume (long id) const override |
double | evalInterfaceArea (long id) const override |
std::array< double, 3 > | evalInterfaceNormal (long id) const override |
std::array< double, 3 > | evalVertexCoords (const std::array< int, 3 > &ijk) const |
std::array< double, 3 > | evalVertexCoords (long id) const |
std::vector< long > | extractCellSubSet (int idMin, int idMax) const |
std::vector< long > | extractCellSubSet (std::array< double, 3 > const &pointMin, std::array< double, 3 > const &pointMax) const |
std::vector< long > | extractCellSubSet (std::array< int, 3 > const &ijkMin, std::array< int, 3 > const &ijkMax) const |
std::vector< long > | extractVertexSubSet (int idMin, int idMax) const |
std::vector< long > | extractVertexSubSet (std::array< double, 3 > const &pointMin, std::array< double, 3 > const &pointMax) const |
std::vector< long > | extractVertexSubSet (std::array< int, 3 > const &ijkMin, std::array< int, 3 > const &ijkMax) const |
std::array< int, 3 > | getCellCartesianId (long id) const |
const std::vector< double > & | getCellCentroids (int direction) const |
long | getCellCount () const override |
int | getCellCount (int direction) const |
std::array< int, 3 > | getCellFaceNeighsCartesianId (long id, int face) const |
long | getCellFaceNeighsLinearId (long id, int face) const |
long | getCellLinearId (const std::array< int, 3 > &ijk) const |
long | getCellLinearId (int i, int j, int k) const |
ElementType | getCellType () const |
virtual ElementType | getCellType (long id) const |
ElementType | getCellType (long id) const override |
long | getInterfaceCount () const override |
ElementType | getInterfaceType () const |
virtual ElementType | getInterfaceType (long id) const |
ElementType | getInterfaceType (long id) const override |
std::array< double, 3 > | getLengths () const |
MemoryMode | getMemoryMode () const |
std::array< double, 3 > | getOrigin () const |
std::array< double, 3 > | getSpacing () const |
double | getSpacing (int direction) const |
std::array< int, 3 > | getVertexCartesianId (const std::array< int, 3 > &cellIjk, int vertex) const |
std::array< int, 3 > | getVertexCartesianId (long cellId, int vertex) const |
std::array< int, 3 > | getVertexCartesianId (long id) const |
const std::vector< double > & | getVertexCoords (int direction) const |
long | getVertexCount () const override |
int | getVertexCount (int direction) const |
long | getVertexLinearId (const std::array< int, 3 > &ijk) const |
long | getVertexLinearId (int i, int j, int k) const |
bool | isCellCartesianIdValid (const std::array< int, 3 > &ijk) const |
bool | isPointInside (const std::array< double, 3 > &point) const override |
virtual bool | isPointInside (const std::array< double, 3 > &point) const=0 |
bool | isPointInside (double x, double y, double z) const |
bool | isPointInside (long id, const std::array< double, 3 > &point) const override |
virtual bool | isPointInside (long id, const std::array< double, 3 > &point) const=0 |
bool | isPointInside (long id, double x, double y, double z) const |
bool | isVertexCartesianIdValid (const std::array< int, 3 > &ijk) const |
int | linearCellInterpolation (const std::array< double, 3 > &point, std::vector< int > *stencil, std::vector< double > *weights) const |
int | linearVertexInterpolation (const std::array< double, 3 > &point, std::vector< int > *stencil, std::vector< double > *weights) const |
long | locateClosestCell (std::array< double, 3 > const &point) const |
std::array< int, 3 > | locateClosestCellCartesian (std::array< double, 3 > const &point) const |
long | locateClosestVertex (std::array< double, 3 > const &point) const |
std::array< int, 3 > | locateClosestVertexCartesian (std::array< double, 3 > const &point) const |
long | locatePoint (const std::array< double, 3 > &point) const override |
virtual long | locatePoint (const std::array< double, 3 > &point) const=0 |
long | locatePoint (double x, double y, double z) const |
std::array< int, 3 > | locatePointCartesian (const std::array< double, 3 > &point) const |
void | reset () override |
void | resetInterfaces () override |
void | rotate (const std::array< double, 3 > &n0, const std::array< double, 3 > &n1, double angle) override |
void | scale (const std::array< double, 3 > &scaling, const std::array< double, 3 > ¢er) override |
void | setLengths (const std::array< double, 3 > &lengths) |
void | setOrigin (const std::array< double, 3 > &origin) |
void | switchMemoryMode (MemoryMode mode) |
void | translate (const std::array< double, 3 > &translation) override |
Public Member Functions inherited from bitpit::VolumeKernel | |
bool | areFaceVerticesOrdered (const Cell &cell, int face) const |
void | extractEnvelope (SurfaceKernel &envelope) const |
int | getFaceOrderedLocalVertex (const Cell &cell, int face, std::size_t n) const |
ConstProxyVector< long > | getFaceOrderedVertexIds (const Cell &cell, int face) const |
int | getLineCodimension () const override |
int | getPointCodimension () const override |
int | getSurfaceCodimension () const override |
int | getVolumeCodimension () const override |
bool | isPointInside (double x, double y, double z) const |
bool | isPointInside (long id, double x, double y, double z) const |
Public Member Functions inherited from bitpit::PatchKernel | |
PatchKernel (PatchKernel &&other) | |
virtual | ~PatchKernel () |
std::vector< adaption::Info > | adaption (bool trackAdaption=true, bool squeezeStorage=false) |
std::vector< adaption::Info > | adaptionAlter (bool trackAdaption=true, bool squeezeStorage=false) |
void | adaptionCleanup () |
std::vector< adaption::Info > | adaptionPrepare (bool trackAdaption=true) |
CellIterator | addCell (Cell &&source, int owner, int haloLayer, long id=Element::NULL_ID) |
CellIterator | addCell (Cell &&source, int owner, long id=Element::NULL_ID) |
CellIterator | addCell (Cell &&source, long id=Element::NULL_ID) |
CellIterator | addCell (const Cell &source, int owner, int haloLayer, long id=Element::NULL_ID) |
CellIterator | addCell (const Cell &source, int owner, long id=Element::NULL_ID) |
CellIterator | addCell (const Cell &source, long id=Element::NULL_ID) |
CellIterator | addCell (ElementType type, const std::vector< long > &connectivity, int owner, int haloLayer, long id=Element::NULL_ID) |
CellIterator | addCell (ElementType type, const std::vector< long > &connectivity, int owner, long id=Element::NULL_ID) |
CellIterator | addCell (ElementType type, const std::vector< long > &connectivity, long id=Element::NULL_ID) |
CellIterator | addCell (ElementType type, int owner, int haloLayer, long id=Element::NULL_ID) |
CellIterator | addCell (ElementType type, int owner, long id=Element::NULL_ID) |
CellIterator | addCell (ElementType type, long id=Element::NULL_ID) |
CellIterator | addCell (ElementType type, std::unique_ptr< long[]> &&connectStorage, int owner, int haloLayer, long id=Element::NULL_ID) |
CellIterator | addCell (ElementType type, std::unique_ptr< long[]> &&connectStorage, int owner, long id=Element::NULL_ID) |
CellIterator | addCell (ElementType type, std::unique_ptr< long[]> &&connectStorage, long id=Element::NULL_ID) |
InterfaceIterator | addInterface (const Interface &source, long id=Element::NULL_ID) |
InterfaceIterator | addInterface (ElementType type, const std::vector< long > &connectivity, long id=Element::NULL_ID) |
InterfaceIterator | addInterface (ElementType type, long id=Element::NULL_ID) |
InterfaceIterator | addInterface (ElementType type, std::unique_ptr< long[]> &&connectStorage, long id=Element::NULL_ID) |
InterfaceIterator | addInterface (Interface &&source, long id=Element::NULL_ID) |
VertexIterator | addVertex (const std::array< double, 3 > &coords, long id=Vertex::NULL_ID) |
VertexIterator | addVertex (const Vertex &source, long id=Vertex::NULL_ID) |
VertexIterator | addVertex (Vertex &&source, long id=Vertex::NULL_ID) |
bool | areAdjacenciesDirty (bool global=false) const |
bool | areInterfacesDirty (bool global=false) const |
bool | arePartitioningInfoDirty (bool global=true) const |
void | buildAdjacencies () |
void | buildInterfaces () |
CellIterator | cellBegin () |
CellConstIterator | cellConstBegin () const |
CellConstIterator | cellConstEnd () const |
CellIterator | cellEnd () |
std::vector< long > | collapseCoincidentVertices () |
void | consecutiveRenumber (long offsetVertices, long offsetCells, long offsetInterfaces) |
void | consecutiveRenumberCells (long offset=0) |
void | consecutiveRenumberInterfaces (long offset=0) |
void | consecutiveRenumberVertices (long offset=0) |
long | countBorderCells () const |
long | countBorderFaces () const |
long | countBorderInterfaces () const |
long | countBorderVertices () const |
long | countDuplicateCells () const |
long | countFaces () const |
long | countFreeCells () const |
long | countFreeFaces () const |
long | countFreeInterfaces () const |
long | countFreeVertices () const |
long | countOrphanCells () const |
long | countOrphanInterfaces () const |
long | countOrphanVertices () const |
bool | deleteCell (long id) |
template<typename IdStorage > | |
bool | deleteCells (const IdStorage &ids) |
bool | deleteCoincidentVertices () |
bool | deleteInterface (long id) |
template<typename IdStorage > | |
bool | deleteInterfaces (const IdStorage &ids) |
bool | deleteOrphanInterfaces () |
bool | deleteOrphanVertices () |
void | destroyAdjacencies () |
void | destroyInterfaces () |
void | displayCells (std::ostream &out, unsigned int padding=0) const |
void | displayInterfaces (std::ostream &out, unsigned int padding=0) const |
void | displayTopologyStats (std::ostream &out, unsigned int padding=0) const |
void | displayVertices (std::ostream &out, unsigned int padding=0) const |
bool | dump (std::ostream &stream) |
bool | dump (std::ostream &stream) const |
bool | empty (bool global=true) const |
void | enableCellBalancing (long id, bool enabled) |
void | evalElementBoundingBox (const Element &element, std::array< double, 3 > *minPoint, std::array< double, 3 > *maxPoint) const |
std::array< double, 3 > | evalElementCentroid (const Element &element) const |
virtual void | evalInterfaceBoundingBox (long id, std::array< double, 3 > *minPoint, std::array< double, 3 > *maxPoint) const |
virtual std::array< double, 3 > | evalInterfaceCentroid (long id) const |
double | evalPartitioningUnbalance () const |
double | evalPartitioningUnbalance (const std::unordered_map< long, double > &cellWeights) const |
void | findCellEdgeNeighs (long id, bool complete, std::vector< long > *neighs) const |
std::vector< long > | findCellEdgeNeighs (long id, bool complete=true) const |
std::vector< long > | findCellEdgeNeighs (long id, int edge) const |
void | findCellEdgeNeighs (long id, int edge, std::vector< long > *neighs) const |
std::vector< long > | findCellFaceNeighs (long id) const |
std::vector< long > | findCellFaceNeighs (long id, int face) const |
void | findCellFaceNeighs (long id, int face, std::vector< long > *neighs) const |
void | findCellFaceNeighs (long id, std::vector< long > *neighs) const |
std::vector< long > | findCellNeighs (long id) const |
void | findCellNeighs (long id, int codimension, bool complete, std::vector< long > *neighs) const |
std::vector< long > | findCellNeighs (long id, int codimension, bool complete=true) const |
void | findCellNeighs (long id, std::vector< long > *neighs) const |
void | findCellVertexNeighs (long id, bool complete, std::vector< long > *neighs) const |
std::vector< long > | findCellVertexNeighs (long id, bool complete=true) const |
std::vector< long > | findCellVertexNeighs (long id, int vertex) const |
void | findCellVertexNeighs (long id, int vertex, std::vector< long > *neighs) const |
std::vector< long > | findCellVertexOneRing (long id, int vertex) const |
void | findCellVertexOneRing (long id, int vertex, std::vector< long > *neighs) const |
std::vector< long > | findDuplicateCells () const |
bool | findFaceNeighCell (long cellId, long neighId, int *cellFace, int *cellAdjacencyId) const |
std::vector< long > | findOrphanCells () const |
std::vector< long > | findOrphanInterfaces () const |
std::vector< long > | findOrphanVertices () |
std::vector< long > | findVertexOneRing (long vertexId) const |
void | findVertexOneRing (long vertexId, std::vector< long > *ring) const |
void | flushData (std::fstream &stream, const std::string &name, VTKFormat format) override |
AdaptionMode | getAdaptionMode () const |
AdaptionStatus | getAdaptionStatus (bool global=false) const |
AdjacenciesBuildStrategy | getAdjacenciesBuildStrategy () const |
void | getBoundingBox (bool global, std::array< double, 3 > &minPoint, std::array< double, 3 > &maxPoint) const |
void | getBoundingBox (std::array< double, 3 > &minPoint, std::array< double, 3 > &maxPoint) const |
Cell & | getCell (long id) |
const Cell & | getCell (long id) const |
adaption::Marker | getCellAdaptionMarker (long id) |
CellConstIterator | getCellConstIterator (long id) const |
int | getCellHaloLayer (long id) const |
CellIterator | getCellIterator (long id) |
int | getCellOwner (long id) const |
int | getCellRank (long id) const |
PiercedVector< Cell > & | getCells () |
const PiercedVector< Cell > & | getCells () const |
ConstProxyVector< std::array< double BITPIT_COMMA 3 > > | getCellVertexCoordinates (long id) const |
void | getCellVertexCoordinates (long id, std::array< double, 3 > *coordinates) const |
void | getCellVertexCoordinates (long id, std::unique_ptr< std::array< double, 3 >[]> *coordinates) const |
const MPI_Comm & | getCommunicator () const |
int | getDimension () const |
int | getDumpVersion () const |
ConstProxyVector< std::array< double BITPIT_COMMA 3 > > | getElementVertexCoordinates (const Element &element) const |
void | getElementVertexCoordinates (const Element &element, std::array< double, 3 > *coordinates) const |
void | getElementVertexCoordinates (const Element &element, std::unique_ptr< std::array< double, 3 >[]> *coordinates) const |
Cell & | getFirstGhost () |
const Cell & | getFirstGhost () const |
Cell & | getFirstGhostCell () |
const Cell & | getFirstGhostCell () const |
Vertex & | getFirstGhostVertex () |
const Vertex & | getFirstGhostVertex () const |
long | getGhostCellCount () const |
const std::unordered_map< int, std::vector< long > > & | getGhostCellExchangeSources () const |
const std::vector< long > & | getGhostCellExchangeSources (int rank) const |
const std::unordered_map< int, std::vector< long > > & | getGhostCellExchangeTargets () const |
const std::vector< long > & | getGhostCellExchangeTargets (int rank) const |
long | getGhostCount () const |
const std::unordered_map< int BITPIT_COMMA std::vector< long > > & | getGhostExchangeSources () const |
const std::vector< long > & | getGhostExchangeSources (int rank) const |
const std::unordered_map< int BITPIT_COMMA std::vector< long > > & | getGhostExchangeTargets () const |
const std::vector< long > & | getGhostExchangeTargets (int rank) const |
long | getGhostVertexCount () const |
const std::unordered_map< int, std::vector< long > > & | getGhostVertexExchangeSources () const |
const std::vector< long > & | getGhostVertexExchangeSources (int rank) const |
const std::unordered_map< int, std::vector< long > > & | getGhostVertexExchangeTargets () const |
const std::vector< long > & | getGhostVertexExchangeTargets (int rank) const |
std::size_t | getHaloSize () const |
int | getId () const |
Interface & | getInterface (long id) |
const Interface & | getInterface (long id) const |
InterfaceConstIterator | getInterfaceConstIterator (long id) const |
InterfaceIterator | getInterfaceIterator (long id) |
PiercedVector< Interface > & | getInterfaces () |
const PiercedVector< Interface > & | getInterfaces () const |
InterfacesBuildStrategy | getInterfacesBuildStrategy () const |
ConstProxyVector< std::array< double BITPIT_COMMA 3 > > | getInterfaceVertexCoordinates (long id) const |
void | getInterfaceVertexCoordinates (long id, std::array< double, 3 > *coordinates) const |
void | getInterfaceVertexCoordinates (long id, std::unique_ptr< std::array< double, 3 >[]> *coordinates) const |
long | getInternalCellCount () const |
std::set< int > | getInternalCellPIDs () |
std::vector< long > | getInternalCellsByPID (int pid) |
long | getInternalCount () const |
long | getInternalVertexCount () const |
Cell & | getLastInternalCell () |
const Cell & | getLastInternalCell () const |
Vertex & | getLastInternalVertex () |
const Vertex & | getLastInternalVertex () const |
std::vector< int > | getNeighbourRanks () |
int | getOwner (bool allowDirty=false) const |
PartitioningMode | getPartitioningMode () const |
PartitioningStatus | getPartitioningStatus (bool global=false) const |
int | getProcessorCount () const |
int | getRank () const |
double | getTol () const |
Vertex & | getVertex (long id) |
const Vertex & | getVertex (long id) const |
VertexConstIterator | getVertexConstIterator (long id) const |
const std::array< double, 3 > & | getVertexCoords (long id) const |
void | getVertexCoords (std::size_t nVertices, const long *ids, std::array< double, 3 > *coordinates) const |
void | getVertexCoords (std::size_t nVertices, const long *ids, std::unique_ptr< std::array< double, 3 >[]> *coordinates) const |
VertexIterator | getVertexIterator (long id) |
int | getVertexOwner (long id) const |
int | getVertexRank (long id) const |
PiercedVector< Vertex > & | getVertices () |
const PiercedVector< Vertex > & | getVertices () const |
VTKUnstructuredGrid & | getVTK () |
const VTKUnstructuredGrid & | getVTK () const |
const CellConstRange | getVTKCellWriteRange () const |
WriteTarget | getVTKWriteTarget () const |
CellIterator | ghostBegin () |
CellIterator | ghostCell2InternalCell (long id) |
CellIterator | ghostCellBegin () |
CellConstIterator | ghostCellConstBegin () const |
CellConstIterator | ghostCellConstEnd () const |
CellIterator | ghostCellEnd () |
CellConstIterator | ghostConstBegin () const |
CellConstIterator | ghostConstEnd () const |
CellIterator | ghostEnd () |
VertexIterator | ghostVertexBegin () |
VertexConstIterator | ghostVertexConstBegin () const |
VertexConstIterator | ghostVertexConstEnd () const |
VertexIterator | ghostVertexEnd () |
void | initializeAdjacencies (AdjacenciesBuildStrategy strategy=ADJACENCIES_AUTOMATIC) |
void | initializeInterfaces (InterfacesBuildStrategy strategy=INTERFACES_AUTOMATIC) |
InterfaceIterator | interfaceBegin () |
InterfaceConstIterator | interfaceConstBegin () const |
InterfaceConstIterator | interfaceConstEnd () const |
InterfaceIterator | interfaceEnd () |
CellIterator | internalBegin () |
CellIterator | internalCell2GhostCell (long id, int owner, int haloLayer) |
CellIterator | internalCellBegin () |
CellConstIterator | internalCellConstBegin () const |
CellConstIterator | internalCellConstEnd () const |
CellIterator | internalCellEnd () |
CellConstIterator | internalConstBegin () const |
CellConstIterator | internalConstEnd () const |
CellIterator | internalEnd () |
VertexIterator | internalVertexBegin () |
VertexConstIterator | internalVertexConstBegin () const |
VertexConstIterator | internalVertexConstEnd () const |
VertexIterator | internalVertexEnd () |
bool | isAdaptionSupported () const |
bool | isBoundingBoxDirty (bool global=false) const |
bool | isCellAutoIndexingEnabled () const |
bool | isDirty (bool global=false) const |
bool | isDistributed (bool allowDirty=false) const |
bool | isExpert () const |
bool | isInterfaceAutoIndexingEnabled () const |
bool | isInterfaceOrphan (long id) const |
bool | isPartitioned () const |
bool | isPartitioningSupported () const |
bool | isRankNeighbour (int rank) |
bool | isThreeDimensional () const |
bool | isTolCustomized () const |
bool | isVertexAutoIndexingEnabled () const |
long | locatePoint (double x, double y, double z) const |
void | markCellForCoarsening (long id) |
void | markCellForRefinement (long id) |
PatchKernel & | operator= (PatchKernel &&other) |
std::vector< adaption::Info > | partition (bool trackPartitioning, bool squeezeStorage=false) |
std::vector< adaption::Info > | partition (const std::unordered_map< long, double > &cellWeights, bool trackPartitioning, bool squeezeStorage=false) |
std::vector< adaption::Info > | partition (const std::unordered_map< long, int > &cellRanks, bool trackPartitioning, bool squeezeStorage=false) |
std::vector< adaption::Info > | partition (MPI_Comm communicator, bool trackPartitioning, bool squeezeStorage=false, std::size_t haloSize=1) |
std::vector< adaption::Info > | partition (MPI_Comm communicator, const std::unordered_map< long, double > &cellWeights, bool trackPartitioning, bool squeezeStorage=false, std::size_t haloSize=1) |
std::vector< adaption::Info > | partition (MPI_Comm communicator, const std::unordered_map< long, int > &cellRanks, bool trackPartitioning, bool squeezeStorage=false, std::size_t haloSize=1) |
std::vector< adaption::Info > | partitioningAlter (bool trackPartitioning=true, bool squeezeStorage=false) |
void | partitioningCleanup () |
std::vector< adaption::Info > | partitioningPrepare (bool trackPartitioning) |
std::vector< adaption::Info > | partitioningPrepare (const std::unordered_map< long, double > &cellWeights, bool trackPartitioning) |
std::vector< adaption::Info > | partitioningPrepare (const std::unordered_map< long, int > &cellRanks, bool trackPartitioning) |
std::vector< adaption::Info > | partitioningPrepare (MPI_Comm communicator, bool trackPartitioning, std::size_t haloSize=1) |
std::vector< adaption::Info > | partitioningPrepare (MPI_Comm communicator, const std::unordered_map< long, double > &cellWeights, bool trackPartitioning, std::size_t haloSize=1) |
std::vector< adaption::Info > | partitioningPrepare (MPI_Comm communicator, const std::unordered_map< long, int > &cellRanks, bool trackPartitioning, std::size_t haloSize=1) |
template<typename Function > | |
void | processCellFaceNeighbours (long seedId, int nLayers, Function function) const |
template<typename Selector , typename Function > | |
void | processCellFaceNeighbours (long seedId, int nLayers, Selector isSelected, Function function) const |
template<typename Function > | |
void | processCellNeighbours (long seedId, int nLayers, Function function) const |
template<typename Selector , typename Function > | |
void | processCellNeighbours (long seedId, int nLayers, Selector isSelected, Function function) const |
template<typename Function , typename SeedContainer > | |
void | processCellsFaceNeighbours (const SeedContainer &seedIds, int nLayers, Function function) const |
template<typename Selector , typename Function , typename SeedContainer > | |
void | processCellsFaceNeighbours (const SeedContainer &seedIds, int nLayers, Selector isSelected, Function function) const |
template<typename Function , typename SeedContainer > | |
void | processCellsNeighbours (const SeedContainer &seedIds, int nLayers, Function function) const |
template<typename Selector , typename Function , typename SeedContainer > | |
void | processCellsNeighbours (const SeedContainer &seedIds, int nLayers, Selector isSelected, Function function) const |
bool | reserveCells (size_t nCells) |
bool | reserveInterfaces (size_t nInterfaces) |
bool | reserveVertices (size_t nVertices) |
void | resetCellAdaptionMarker (long id) |
virtual void | resetCells () |
void | resetTol () |
virtual void | resetVertices () |
void | restore (std::istream &stream, bool reregister=false) |
void | rotate (double n0x, double n0y, double n0z, double n1x, double n1y, double n1z, double angle) |
void | scale (const std::array< double, 3 > &scaling) |
void | scale (double scaling) |
void | scale (double scaling, const std::array< double, 3 > &origin) |
void | scale (double sx, double sy, double sz) |
void | scale (double sx, double sy, double sz, const std::array< double, 3 > &origin) |
void | setCellAutoIndexing (bool enabled) |
virtual void | setDimension (int dimension) |
void | setHaloSize (std::size_t haloSize) |
void | setId (int id) |
void | setInterfaceAutoIndexing (bool enabled) |
virtual void | settleAdaptionMarkers () |
void | setTol (double tolerance) |
void | setVertexAutoIndexing (bool enabled) |
void | setVTKWriteTarget (WriteTarget targetCells) |
virtual void | simulateCellUpdate (const long id, adaption::Marker marker, std::vector< Cell > *virtualCells, PiercedVector< Vertex, long > *virtualVertices) const |
bool | sort () |
bool | sortCells () |
bool | sortInterfaces () |
bool | sortVertices () |
bool | squeeze () |
bool | squeezeCells () |
bool | squeezeInterfaces () |
bool | squeezeVertices () |
void | translate (double sx, double sy, double sz) |
std::vector< adaption::Info > | update (bool trackAdaption=true, bool squeezeStorage=false) |
void | updateAdjacencies (bool forcedUpdated=false) |
void | updateBoundingBox (bool forcedUpdated=false) |
void | updateInterfaces (bool forcedUpdated=false) |
VertexIterator | vertexBegin () |
VertexConstIterator | vertexConstBegin () const |
VertexConstIterator | vertexConstEnd () const |
VertexIterator | vertexEnd () |
void | write (const std::string &name, VTKWriteMode mode, double time) |
void | write (const std::string &name, VTKWriteMode mode=VTKWriteMode::DEFAULT) |
void | write (VTKWriteMode mode, double time) |
void | write (VTKWriteMode mode=VTKWriteMode::DEFAULT) |
Public Member Functions inherited from bitpit::VTKBaseStreamer | |
virtual void | absorbData (std::fstream &, const std::string &, VTKFormat, uint64_t, uint8_t, VTKDataType) |
template<typename T > | |
void | flushValue (std::fstream &, VTKFormat, const T &value) const |
template<typename T > | |
void | flushValue (std::fstream &, VTKFormat, const T *values, int nValues) const |
Protected Member Functions | |
void | _dump (std::ostream &stream) const override |
void | _findCellEdgeNeighs (long id, int edge, const std::vector< long > *blackList, std::vector< long > *neighs) const override |
void | _findCellFaceNeighs (long id, int face, const std::vector< long > *blackList, std::vector< long > *neighs) const override |
void | _findCellVertexNeighs (long id, int vertex, const std::vector< long > *blackList, std::vector< long > *neighs) const override |
int | _getDumpVersion () const override |
void | _restore (std::istream &stream) override |
void | _updateAdjacencies () override |
void | _updateInterfaces () override |
Protected Member Functions inherited from bitpit::VolumeKernel | |
VolumeKernel (int dimension, MPI_Comm communicator, std::size_t haloSize, AdaptionMode adaptionMode, PartitioningMode partitioningMode) | |
VolumeKernel (int id, int dimension, MPI_Comm communicator, std::size_t haloSize, AdaptionMode adaptionMode, PartitioningMode partitioningMode) | |
VolumeKernel (MPI_Comm communicator, std::size_t haloSize, AdaptionMode adaptionMode, PartitioningMode partitioningMode) | |
Protected Member Functions inherited from bitpit::PatchKernel | |
PatchKernel (const PatchKernel &other) | |
PatchKernel (int dimension, MPI_Comm communicator, std::size_t haloSize, AdaptionMode adaptionMode, PartitioningMode partitioningMode) | |
PatchKernel (int id, int dimension, MPI_Comm communicator, std::size_t haloSize, AdaptionMode adaptionMode, PartitioningMode partitioningMode) | |
PatchKernel (MPI_Comm communicator, std::size_t haloSize, AdaptionMode adaptionMode, PartitioningMode partitioningMode) | |
virtual std::vector< adaption::Info > | _adaptionAlter (bool trackAdaption) |
virtual void | _adaptionCleanup () |
virtual std::vector< adaption::Info > | _adaptionPrepare (bool trackAdaption) |
virtual bool | _enableCellBalancing (long id, bool enabled) |
virtual void | _findCellNeighs (long id, const std::vector< long > *blackList, std::vector< long > *neighs) const |
virtual std::vector< long > | _findGhostCellExchangeSources (int rank) |
virtual adaption::Marker | _getCellAdaptionMarker (long id) |
virtual long | _getCellNativeIndex (long id) const |
virtual std::size_t | _getMaxHaloSize () |
virtual bool | _markCellForCoarsening (long id) |
virtual bool | _markCellForRefinement (long id) |
virtual std::vector< adaption::Info > | _partitioningAlter (bool trackPartitioning) |
virtual void | _partitioningCleanup () |
virtual std::vector< adaption::Info > | _partitioningPrepare (const std::unordered_map< long, double > &cellWeights, double defaultWeight, bool trackPartitioning) |
virtual std::vector< adaption::Info > | _partitioningPrepare (const std::unordered_map< long, int > &cellRanks, bool trackPartitioning) |
virtual void | _resetAdjacencies (bool release) |
virtual bool | _resetCellAdaptionMarker (long id) |
virtual void | _resetInterfaces (bool release) |
virtual void | _resetTol () |
virtual void | _setHaloSize (std::size_t haloSize) |
virtual void | _setTol (double tolerance) |
virtual void | _writeFinalize () |
virtual void | _writePrepare () |
void | addPointToBoundingBox (const std::array< double, 3 > &point) |
std::unordered_map< long, std::vector< long > > | binGroupVertices (const PiercedVector< Vertex > &vertices, int nBins) |
std::unordered_map< long, std::vector< long > > | binGroupVertices (int nBins) |
void | clearBoundingBox () |
template<typename item_t , typename id_t = long> | |
std::unordered_map< id_t, id_t > | consecutiveItemRenumbering (PiercedVector< item_t, id_t > &container, long offset) |
bool | deleteVertex (long id) |
template<typename IdStorage > | |
bool | deleteVertices (const IdStorage &ids) |
void | dumpCells (std::ostream &stream) const |
void | dumpInterfaces (std::ostream &stream) const |
void | dumpVertices (std::ostream &stream) const |
void | extractEnvelope (PatchKernel &envelope) const |
virtual int | findAdjoinNeighFace (const Cell &cell, int cellFace, const Cell &neigh) const |
AlterationFlags | getCellAlterationFlags (long id) const |
AlterationFlags | getInterfaceAlterationFlags (long id) const |
VertexIterator | ghostVertex2InternalVertex (long id) |
VertexIterator | internalVertex2GhostVertex (long id, int owner) |
bool | isBoundingBoxFrozen () const |
bool | isCommunicatorSet () const |
virtual bool | isSameFace (const Cell &cell_A, int face_A, const Cell &cell_B, int face_B) const |
template<typename item_t , typename id_t = long> | |
void | mappedItemRenumbering (PiercedVector< item_t, id_t > &container, const std::unordered_map< id_t, id_t > &renumberMap) |
PatchKernel & | operator= (const PatchKernel &other)=delete |
void | pruneStaleAdjacencies () |
void | pruneStaleInterfaces () |
void | removePointFromBoundingBox (const std::array< double, 3 > &point) |
void | resetAdjacencies () |
void | resetCellAlterationFlags (long id, AlterationFlags flags=FLAG_NONE) |
void | resetInterfaceAlterationFlags (long id, AlterationFlags flags=FLAG_NONE) |
CellIterator | restoreCell (ElementType type, std::unique_ptr< long[]> &&connectStorage, int owner, int haloLayer, long id) |
void | restoreCells (std::istream &stream) |
InterfaceIterator | restoreInterface (ElementType type, std::unique_ptr< long[]> &&connectStorage, long id) |
void | restoreInterfaces (std::istream &stream) |
VertexIterator | restoreVertex (const std::array< double, 3 > &coords, int owner, long id) |
void | restoreVertices (std::istream &stream) |
void | setAdaptionMode (AdaptionMode mode) |
void | setAdaptionStatus (AdaptionStatus status) |
void | setAdjacenciesBuildStrategy (AdjacenciesBuildStrategy status) |
void | setBoundingBox (const std::array< double, 3 > &minPoint, const std::array< double, 3 > &maxPoint) |
void | setBoundingBoxDirty (bool dirty) |
void | setBoundingBoxFrozen (bool frozen) |
void | setCellAlterationFlags (AlterationFlags flags) |
void | setCellAlterationFlags (long id, AlterationFlags flags) |
virtual void | setCommunicator (MPI_Comm communicator) |
void | setExpert (bool expert) |
void | setInterfaceAlterationFlags (AlterationFlags flags) |
void | setInterfaceAlterationFlags (long id, AlterationFlags flags) |
void | setInterfacesBuildStrategy (InterfacesBuildStrategy status) |
void | setPartitioned (bool partitioned) |
void | setPartitioningMode (PartitioningMode mode) |
void | setPartitioningStatus (PartitioningStatus status) |
bool | testAlterationFlags (AlterationFlags availableFlags, AlterationFlags requestedFlags) const |
bool | testCellAlterationFlags (long id, AlterationFlags flags) const |
bool | testInterfaceAlterationFlags (long id, AlterationFlags flags) const |
void | unsetCellAlterationFlags (AlterationFlags flags) |
void | unsetCellAlterationFlags (long id, AlterationFlags flags) |
void | unsetInterfaceAlterationFlags (AlterationFlags flags) |
void | unsetInterfaceAlterationFlags (long id, AlterationFlags flags) |
void | updateFirstGhostCellId () |
void | updateFirstGhostVertexId () |
void | updateLastInternalCellId () |
void | updateLastInternalVertexId () |
Additional Inherited Members | |
Static Public Member Functions inherited from bitpit::PatchKernel | |
template<typename patch_t > | |
static std::unique_ptr< patch_t > | clone (const patch_t *original) |
Protected Types inherited from bitpit::PatchKernel | |
typedef uint16_t | AlterationFlags |
typedef std::unordered_map< long, AlterationFlags > | AlterationFlagsStorage |
Protected Attributes inherited from bitpit::PatchKernel | |
AlterationFlagsStorage | m_alteredCells |
AlterationFlagsStorage | m_alteredInterfaces |
PiercedVector< Cell > | m_cells |
PiercedVector< Interface > | m_interfaces |
PiercedVector< Vertex > | m_vertices |
Static Protected Attributes inherited from bitpit::PatchKernel | |
static const double | DEFAULT_PARTITIONING_WEIGTH = 1. |
static const AlterationFlags | FLAG_ADJACENCIES_DIRTY = (1u << 1) |
static const AlterationFlags | FLAG_DANGLING = (1u << 3) |
static const AlterationFlags | FLAG_DELETED = (1u << 0) |
static const AlterationFlags | FLAG_INTERFACES_DIRTY = (1u << 2) |
static const AlterationFlags | FLAG_NONE = 0x0 |
The VolCartesian defines a Cartesian patch.
VolCartesian is a Cartesian patch that can operate in two modes. In normal memory mode, the patch behaves like a standard patch: all data structures needed by the patch are generated and stored within the ptch. This means that, in normal mode, the patch will create cells, vertices and, if requested, interfaces data structures. In light memory mode, the patch will create only a minimal set of data structures. Altohugh this allows to reduce its memory footprint, it will also limit the functionalites available when operating in light memory mode. Features that are available in light memory mode are:
Definition at line 37 of file volcartesian.hpp.
enum bitpit::VolCartesian::MemoryMode |
Definition at line 45 of file volcartesian.hpp.
bitpit::VolCartesian::VolCartesian | ( | ) |
Creates an uninitialized patch.
Definition at line 66 of file volcartesian.cpp.
bitpit::VolCartesian::VolCartesian | ( | int | dimension, |
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | lengths, | ||
const std::array< int, 3 > & | nCells ) |
Creates a patch.
dimension | is the dimension of the patch |
origin | is the origin of the domain |
lengths | are the lengths of the domain |
nCells | are the numbers of cells of the patch |
Definition at line 84 of file volcartesian.cpp.
bitpit::VolCartesian::VolCartesian | ( | int | id, |
int | dimension, | ||
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | lengths, | ||
const std::array< int, 3 > & | nCells ) |
Creates a patch.
id | is the id of the patch |
dimension | is the dimension of the patch |
origin | is the origin of the domain |
lengths | are the lengths of the domain |
nCells | are the number of cells along each direction |
Definition at line 101 of file volcartesian.cpp.
bitpit::VolCartesian::VolCartesian | ( | int | dimension, |
const std::array< double, 3 > & | origin, | ||
double | length, | ||
int | nCells ) |
Creates a patch.
dimension | is the dimension of the patch |
origin | is the origin of the domain |
length | is the length of the domain |
nCells | is the number of cells along each direction |
Definition at line 127 of file volcartesian.cpp.
bitpit::VolCartesian::VolCartesian | ( | int | id, |
int | dimension, | ||
const std::array< double, 3 > & | origin, | ||
double | length, | ||
int | nCells ) |
Creates a patch.
id | is the id of the patch |
dimension | is the dimension of the patch |
origin | is the origin of the domain |
length | is the length of the domain |
nCells | is the number of cells along each direction |
Definition at line 143 of file volcartesian.cpp.
bitpit::VolCartesian::VolCartesian | ( | int | dimension, |
const std::array< double, 3 > & | origin, | ||
double | length, | ||
double | dh ) |
Creates a patch.
dimension | is the dimension of the patch |
origin | is the origin of the domain |
length | is the length of the domain |
dh | is the maximum allowed mesh spacing |
Definition at line 168 of file volcartesian.cpp.
bitpit::VolCartesian::VolCartesian | ( | int | id, |
int | dimension, | ||
const std::array< double, 3 > & | origin, | ||
double | length, | ||
double | dh ) |
Creates a patch.
id | is the id of the patch |
dimension | is the dimension of the patch |
origin | is the origin of the domain |
length | is the length of the domain |
dh | is the maximum allowed mesh spacing |
Definition at line 184 of file volcartesian.cpp.
bitpit::VolCartesian::VolCartesian | ( | std::istream & | stream | ) |
Creates a serial patch restoring the patch saved in the specified stream.
stream | is the stream to read from |
Definition at line 207 of file volcartesian.cpp.
|
overrideprotectedvirtual |
Write the patch to the specified stream.
stream | is the stream to write to |
Implements bitpit::PatchKernel.
Definition at line 1086 of file volcartesian.cpp.
|
overrideprotectedvirtual |
Extracts the neighbours of the specified cell for the given edge.
This function can be only used with three-dimensional cells.
id | is the id of the cell | |
edge | is an edge of the cell | |
blackList | is a list of cells that are excluded from the search. The blacklist has to be a pointer to a unique list of ordered cell ids or a null pointer if no cells should be excluded from the search | |
[in,out] | neighs | is the vector were the neighbours of the specified cell for the given edge will be stored. The vector is not cleared before adding the neighbours, it is extended by appending all the neighbours found by this function |
Reimplemented from bitpit::PatchKernel.
Definition at line 1631 of file volcartesian.cpp.
|
overrideprotectedvirtual |
Extracts the neighbours of the specified cell for the given face.
id | is the id of the cell | |
face | is a face of the cell | |
blackList | is a list of cells that are excluded from the search. The blacklist has to be a pointer to a unique list of ordered cell ids or a null pointer if no cells should be excluded from the search | |
[in,out] | neighs | is the vector were the neighbours will be stored. The vector is not cleared before adding the neighbours, it is extended by appending all the neighbours found by this function |
Reimplemented from bitpit::PatchKernel.
Definition at line 1604 of file volcartesian.cpp.
|
overrideprotectedvirtual |
Extracts the neighbours of the specified cell for the given local vertex.
id | is the id of the cell | |
vertex | is a vertex of the cell | |
blackList | is a list of cells that are excluded from the search. The blacklist has to be a pointer to a unique list of ordered cell ids or a null pointer if no cells should be excluded from the search | |
[in,out] | neighs | is the vector were the neighbours of the specified cell for the given vertex will be stored. The vector is not cleared before adding the neighbours, it is extended by appending all the neighbours found by this function |
Reimplemented from bitpit::PatchKernel.
Definition at line 1666 of file volcartesian.cpp.
|
overrideprotectedvirtual |
Get the version associated to the binary dumps.
Implements bitpit::PatchKernel.
Definition at line 1074 of file volcartesian.cpp.
|
overrideprotectedvirtual |
Restore the patch from the specified stream.
stream | is the stream to read from |
Implements bitpit::PatchKernel.
Definition at line 1120 of file volcartesian.cpp.
|
overrideprotectedvirtual |
Internal function to update the adjacencies of the patch.
The function will always update the adjacencies of all the cells.
Reimplemented from bitpit::PatchKernel.
Definition at line 268 of file volcartesian.cpp.
|
overrideprotectedvirtual |
Internal function to update the interfaces of the patch.
It is not possible to partially update the interfaces of this patch. The function will always update all the interfaces.
Reimplemented from bitpit::PatchKernel.
Definition at line 317 of file volcartesian.cpp.
|
overridevirtual |
Creates a clone of the pach.
Implements bitpit::PatchKernel.
Definition at line 223 of file volcartesian.cpp.
std::vector< double > bitpit::VolCartesian::convertToCellData | ( | const std::vector< double > & | vertexData | ) | const |
Transform node data to cell data by calculating the mean of incident vertices of each cell
[in] | vertexData | contains the data on vertices |
Definition at line 1996 of file volcartesian.cpp.
std::vector< double > bitpit::VolCartesian::convertToVertexData | ( | const std::vector< double > & | cellData | ) | const |
Transform cell data to point data by calculating the mean of incident cells in each vertex.
[in] | cellData | contains the data on cells |
Definition at line 1941 of file volcartesian.cpp.
|
overridevirtual |
Evaluates the bounding box of the specified cell.
id | is the id of the cell | |
[out] | minPoint | is the minimum point of the bounding box |
[out] | maxPoint | is the maximum point of the bounding box |
Reimplemented from bitpit::PatchKernel.
Definition at line 875 of file volcartesian.cpp.
std::array< double, 3 > bitpit::VolCartesian::evalCellCentroid | ( | const std::array< int, 3 > & | ijk | ) | const |
Evaluates the centroid of the specified cell.
ijk | is the set of cartesian indices of the cell |
Definition at line 2233 of file volcartesian.cpp.
|
overridevirtual |
Evaluates the centroid of the specified cell.
id | is the id of the cell |
Reimplemented from bitpit::PatchKernel.
Definition at line 2220 of file volcartesian.cpp.
double bitpit::VolCartesian::evalCellSize | ( | const std::array< int, 3 > & | ijk | ) | const |
Evaluates the characteristic size of the specified cell.
ijk | is the set of cartesian indices of the cell |
Definition at line 849 of file volcartesian.cpp.
|
overridevirtual |
Evaluates the characteristic size of the specified cell.
id | is the id of the cell |
Implements bitpit::PatchKernel.
Definition at line 836 of file volcartesian.cpp.
double bitpit::VolCartesian::evalCellVolume | ( | const std::array< int, 3 > & | ijk | ) | const |
Evaluates the volume of the specified cell.
ijk | is the set of cartesian indices of the cell |
Definition at line 811 of file volcartesian.cpp.
|
overridevirtual |
Evaluates the volume of the specified cell.
id | is the id of the cell |
Implements bitpit::VolumeKernel.
Definition at line 798 of file volcartesian.cpp.
|
overridevirtual |
Evaluates the area of the specified interface.
id | is the id of the interface |
Implements bitpit::VolumeKernel.
Definition at line 890 of file volcartesian.cpp.
|
overridevirtual |
Evaluates the normal of the specified interface.
id | is the id of the interface |
Implements bitpit::VolumeKernel.
Definition at line 905 of file volcartesian.cpp.
std::array< double, 3 > bitpit::VolCartesian::evalVertexCoords | ( | const std::array< int, 3 > & | ijk | ) | const |
Evaluates the coordinate of the specified vertex.
ijk | is the set of cartesian indices of the vertex |
Definition at line 765 of file volcartesian.cpp.
std::array< double, 3 > bitpit::VolCartesian::evalVertexCoords | ( | long | id | ) | const |
Evaluates the coordinate of the specified vertex.
id | is the id of the vertex |
Definition at line 752 of file volcartesian.cpp.
std::vector< long > bitpit::VolCartesian::extractCellSubSet | ( | int | idMin, |
int | idMax ) const |
Extract a cell subset.
[in] | idMin | is the linear index of the lower bound |
[in] | idMax | is the linear index of the upper bound |
Definition at line 1725 of file volcartesian.cpp.
std::vector< long > bitpit::VolCartesian::extractCellSubSet | ( | std::array< double, 3 > const & | pointMin, |
std::array< double, 3 > const & | pointMax ) const |
Extract a cell subset.
[in] | pointMin | is the lower bound |
[in] | pointMax | is the upper bound |
Definition at line 1737 of file volcartesian.cpp.
std::vector< long > bitpit::VolCartesian::extractCellSubSet | ( | std::array< int, 3 > const & | ijkMin, |
std::array< int, 3 > const & | ijkMax ) const |
Extract a cell subset.
[in] | ijkMin | is the set of cartesian indices of the lower bound |
[in] | ijkMax | is the set of cartesian indices of the upper bound |
Definition at line 1696 of file volcartesian.cpp.
std::vector< long > bitpit::VolCartesian::extractVertexSubSet | ( | int | idMin, |
int | idMax ) const |
Extract a vertex subset.
[in] | idMin | is the linear index of the lower bound |
[in] | idMax | is the linear index of the upper bound |
Definition at line 1778 of file volcartesian.cpp.
std::vector< long > bitpit::VolCartesian::extractVertexSubSet | ( | std::array< double, 3 > const & | pointMin, |
std::array< double, 3 > const & | pointMax ) const |
Extract a vertex subset.
[in] | pointMin | is the lower bound |
[in] | pointMax | is the upper bound |
Definition at line 1790 of file volcartesian.cpp.
std::vector< long > bitpit::VolCartesian::extractVertexSubSet | ( | std::array< int, 3 > const & | ijkMin, |
std::array< int, 3 > const & | ijkMax ) const |
Extract a vertex subset.
[in] | ijkMin | is the set of cartesian indices of the lower bound |
[in] | ijkMax | is the set of cartesian indices of the upper bound |
Definition at line 1749 of file volcartesian.cpp.
std::array< int, 3 > bitpit::VolCartesian::getCellCartesianId | ( | long | id | ) | const |
Converts a cell linear index to a set of cartesian indices.
The set of cartesian indices (i, j, k) identifies the position of a cell along the dimensions x, y, and z (in this specific order). If there are no cells along a direction, the corresponding cartesian index is set to a negative number.
No check on bounds is performed.
[in] | id | is the linear index of the cell |
Definition at line 1403 of file volcartesian.cpp.
const std::vector< double > & bitpit::VolCartesian::getCellCentroids | ( | int | direction | ) | const |
Get cell centroids along the specified direction.
direction | is the direction along which cell centroids are requested |
Definition at line 2253 of file volcartesian.cpp.
|
overridevirtual |
Gets the number of cells in the patch.
Reimplemented from bitpit::PatchKernel.
Definition at line 666 of file volcartesian.cpp.
int bitpit::VolCartesian::getCellCount | ( | int | direction | ) | const |
Gets the number of cells along the specified direction.
direction | is the direction along which cell count is requested |
Definition at line 677 of file volcartesian.cpp.
std::array< int, 3 > bitpit::VolCartesian::getCellFaceNeighsCartesianId | ( | long | id, |
int | face ) const |
Evaluate the cartesian index of the neighbour for the specified face.
id | is the id of the cell |
face | is a face of the cell |
Definition at line 2265 of file volcartesian.cpp.
long bitpit::VolCartesian::getCellFaceNeighsLinearId | ( | long | id, |
int | face ) const |
Evaluate the linear index of the neighbour for the specified face.
id | is the id of the cell |
face | is a face of the cell |
Definition at line 2287 of file volcartesian.cpp.
long bitpit::VolCartesian::getCellLinearId | ( | const std::array< int, 3 > & | ijk | ) | const |
Converts the cell cartesian notation to a linear notation.
The linear index is built incrementing first the cartesian index along direction x (index i), then the cartesian index along direction y (index j) and finally the cartesian index along direction z (index k). If there are no cells along a direction, that directon will not be considered for the generation of the linear index.
ijk | is the set of cartesian indices of the cell |
Definition at line 1369 of file volcartesian.cpp.
long bitpit::VolCartesian::getCellLinearId | ( | int | i, |
int | j, | ||
int | k ) const |
Converts the cell cartesian notation to a linear notation.
The linear index is built incrementing first the cartesian index along direction x (index i), then the cartesian index along direction y (index j) and finally the cartesian index along direction z (index k). If there are no cells along a direction, that directon will not be considered for the generation of the linear index.
i | is the cartesian index along the x direction |
j | is the cartesian index along the y direction |
k | is the cartesian index along the z direction |
Definition at line 1352 of file volcartesian.cpp.
ElementType bitpit::VolCartesian::getCellType | ( | ) | const |
Gets the element type for the cells in the patch.
Definition at line 700 of file volcartesian.cpp.
|
virtual |
Gets the element type for the cell with the specified id.
id | is the id of the requested cell |
Reimplemented from bitpit::PatchKernel.
Definition at line 494 of file patch_kernel.cpp.
|
overridevirtual |
Gets the element type for the cell with the specified id.
id | is the id of the requested cell |
Reimplemented from bitpit::PatchKernel.
Definition at line 688 of file volcartesian.cpp.
|
overridevirtual |
Gets the number of interfaces in the patch.
Reimplemented from bitpit::PatchKernel.
Definition at line 714 of file volcartesian.cpp.
ElementType bitpit::VolCartesian::getInterfaceType | ( | ) | const |
Gets the element type for the interfaces in the patch.
Definition at line 737 of file volcartesian.cpp.
|
virtual |
Gets the element type for the interface with the specified id.
id | is the id of the requested interface |
Reimplemented from bitpit::PatchKernel.
Definition at line 602 of file patch_kernel.cpp.
|
overridevirtual |
Gets the element type for the interface with the specified id.
id | is the id of the requested interface |
Reimplemented from bitpit::PatchKernel.
Definition at line 725 of file volcartesian.cpp.
std::array< double, 3 > bitpit::VolCartesian::getLengths | ( | ) | const |
Gets the lengths of the sides of the box that defines the patch domain.
Definition at line 1868 of file volcartesian.cpp.
VolCartesian::MemoryMode bitpit::VolCartesian::getMemoryMode | ( | ) | const |
Get the current memory mode.
Definition at line 987 of file volcartesian.cpp.
std::array< double, 3 > bitpit::VolCartesian::getOrigin | ( | ) | const |
Gets the origin of the patch.
The origin is the lower-left-back corner of the box that defines the patch domain.
Definition at line 1803 of file volcartesian.cpp.
std::array< double, 3 > bitpit::VolCartesian::getSpacing | ( | ) | const |
Get cell spacings of the patch.
Definition at line 918 of file volcartesian.cpp.
double bitpit::VolCartesian::getSpacing | ( | int | direction | ) | const |
Get cell spacing along the specificed direction.
[in] | direction | is the direction along which the spacing is requested |
Definition at line 999 of file volcartesian.cpp.
std::array< int, 3 > bitpit::VolCartesian::getVertexCartesianId | ( | const std::array< int, 3 > & | cellIjk, |
int | vertex ) const |
Gets the cartesian indices of the specified local vertex of a cell.
The set of cartesian indices (i, j, k) identifies the position of a vertex along the dimensions x, y, and z (in this specific order). If there are no cells along a direction, the corresponding cartesian index is set to a negative number.
No check on bounds is performed.
[in] | cellIjk | is the Cartesian cell index |
[in] | vertex | is the local vertex |
Definition at line 1564 of file volcartesian.cpp.
std::array< int, 3 > bitpit::VolCartesian::getVertexCartesianId | ( | long | cellId, |
int | vertex ) const |
Gets the cartesian indices of the specified local vertex of a cell.
The set of cartesian indices (i, j, k) identifies the position of a vertex along the dimensions x, y, and z (in this specific order). If there are no cells along a direction, the corresponding cartesian index is set to a negative number.
No check on bounds is performed.
[in] | cellId | is the linear cell index |
[in] | vertex | is the local vertex |
Definition at line 1545 of file volcartesian.cpp.
std::array< int, 3 > bitpit::VolCartesian::getVertexCartesianId | ( | long | id | ) | const |
Converts a vertex linear index to a set of cartesian indices.
The set of cartesian indices (i, j, k) identifies the position of a vertex along the dimensions x, y, and z (in this specific order). If there are no cells along a direction, the corresponding cartesian index is set to a negative number.
No check on bounds is performed.
[in] | id | is the linear index of the vertex |
Definition at line 1508 of file volcartesian.cpp.
const std::vector< double > & bitpit::VolCartesian::getVertexCoords | ( | int | direction | ) | const |
Get vertex coordinates along the specified direction.
direction | is the direction along which vertex coordinates are requested |
Definition at line 787 of file volcartesian.cpp.
|
overridevirtual |
Gets the number of vertices in the patch.
Reimplemented from bitpit::PatchKernel.
Definition at line 645 of file volcartesian.cpp.
int bitpit::VolCartesian::getVertexCount | ( | int | direction | ) | const |
Gets the number of vertices along the specified direction.
direction | is the direction along which vertex count is requested |
Definition at line 656 of file volcartesian.cpp.
long bitpit::VolCartesian::getVertexLinearId | ( | const std::array< int, 3 > & | ijk | ) | const |
Converts the vertex cartesian notation to a linear notation.
The linear index is built incrementing first the cartesian index along direction x (index i), then the cartesian index along direction y (index j) and finally the cartesian index along direction z (index k). If there are no cells along a direction, that directon will not be considered for the generation of the linear index.
ijk | is the set of cartesian indices of the vertex |
Definition at line 1474 of file volcartesian.cpp.
long bitpit::VolCartesian::getVertexLinearId | ( | int | i, |
int | j, | ||
int | k ) const |
Converts the vertex cartesian notation to a linear notation.
The linear index is built incrementing first the cartesian index along direction x (index i), then the cartesian index along direction y (index j) and finally the cartesian index along direction z (index k). If there are no cells along a direction, that directon will not be considered for the generation of the linear index.
i | is the cartesian index along the x direction |
j | is the cartesian index along the y direction |
k | is the cartesian index along the z direction |
Definition at line 1457 of file volcartesian.cpp.
bool bitpit::VolCartesian::isCellCartesianIdValid | ( | const std::array< int, 3 > & | ijk | ) | const |
Checks if a cell cartesian index is valid.
ijk | is the set of cartesian indices of the cell |
Definition at line 1432 of file volcartesian.cpp.
|
overridevirtual |
Checks if the specified point is inside the patch.
[in] | point | is the point to be checked |
Implements bitpit::VolumeKernel.
Definition at line 1203 of file volcartesian.cpp.
|
virtual |
Implements bitpit::VolumeKernel.
bool bitpit::VolumeKernel::isPointInside | ( | double | x, |
double | y, | ||
double | z ) const |
Checks if the specified point is inside the patch.
[in] | x | is the x coordinate of the point |
[in] | y | is the y coordinate of the point |
[in] | z | is the z coordinate of the point |
Definition at line 43 of file volume_kernel.cpp.
|
overridevirtual |
Checks if the specified point is inside a cell.
[in] | id | is the idof the cell |
[in] | point | is the point to be checked |
Implements bitpit::VolumeKernel.
Definition at line 1177 of file volcartesian.cpp.
|
virtual |
Implements bitpit::VolumeKernel.
bool bitpit::VolumeKernel::isPointInside | ( | long | id, |
double | x, | ||
double | y, | ||
double | z ) const |
Checks if the specified point is inside a cell.
[in] | id | is the index of the cells |
[in] | x | is the x coordinate of the point |
[in] | y | is the y coordinate of the point |
[in] | z | is the z coordinate of the point |
Definition at line 45 of file volume_kernel.cpp.
bool bitpit::VolCartesian::isVertexCartesianIdValid | ( | const std::array< int, 3 > & | ijk | ) | const |
Checks if a vertex cartesian index is valid.
ijk | is the set of cartesian indices of the vertex |
Definition at line 1581 of file volcartesian.cpp.
int bitpit::VolCartesian::linearCellInterpolation | ( | const std::array< double, 3 > & | point, |
std::vector< int > * | stencil, | ||
std::vector< double > * | weights ) const |
Calculates bi-/tri- linear interpolation stencil on cells for a given point.
At boundaries stencil is reduced to assure positive weights. If the point is outside a null-stencil is returned
[in] | point | are the point coordinates |
[out] | stencil | are the linear indices of the interpolation stencil |
[out] | weights | are the weights associated to stencil |
Definition at line 2054 of file volcartesian.cpp.
int bitpit::VolCartesian::linearVertexInterpolation | ( | const std::array< double, 3 > & | point, |
std::vector< int > * | stencil, | ||
std::vector< double > * | weights ) const |
Calculates bi-/tri- linear interpolation stencil on vertex for a given point.
At boundaries stencil is reduced to assure positive weights. If the point is outside a null-stencil is returned
[in] | point | are the point coordinates |
[out] | stencil | are the linear indices of the interpolation stencil |
[out] | weights | are the weights associated to stencil |
Definition at line 2151 of file volcartesian.cpp.
long bitpit::VolCartesian::locateClosestCell | ( | std::array< double, 3 > const & | point | ) | const |
Locates the closest cell to point.
If the point is not inside the patch, the function returns the id of the cell the point projects on.
[in] | point | is the point to be checked |
Definition at line 1310 of file volcartesian.cpp.
std::array< int, 3 > bitpit::VolCartesian::locateClosestCellCartesian | ( | std::array< double, 3 > const & | point | ) | const |
Locates the cell the closest cell to the point.
If the point is not inside the patch, the function returns the id of the cell the point projects on.
[in] | point | is the point to be checked |
Definition at line 1325 of file volcartesian.cpp.
long bitpit::VolCartesian::locateClosestVertex | ( | std::array< double, 3 > const & | point | ) | const |
Locates the closest vertex of the given point.
[in] | point | is the point |
Definition at line 1275 of file volcartesian.cpp.
std::array< int, 3 > bitpit::VolCartesian::locateClosestVertexCartesian | ( | std::array< double, 3 > const & | point | ) | const |
Locates the closest vertex of the given point.
[in] | point | is the point |
Definition at line 1287 of file volcartesian.cpp.
|
overridevirtual |
Locates the cell the contains the point.
If the point is not inside the patch, the function returns the id of the null element.
[in] | point | is the point to be checked |
Implements bitpit::PatchKernel.
Definition at line 1227 of file volcartesian.cpp.
|
virtual |
Implements bitpit::PatchKernel.
long bitpit::PatchKernel::locatePoint | ( | double | x, |
double | y, | ||
double | z ) const |
Locates the cell the contains the point.
If the point is not inside the patch, the function returns the id of the null element.
[in] | x | is the x coordinate of the point |
[in] | y | is the y coordinate of the point |
[in] | z | is the z coordinate of the point |
Definition at line 645 of file patch_kernel.cpp.
std::array< int, 3 > bitpit::VolCartesian::locatePointCartesian | ( | const std::array< double, 3 > & | point | ) | const |
Locates the cell the contains the point.
If the point is not inside the patch, the function returns the id of the null element.
[in] | point | is the point to be checked |
Definition at line 1247 of file volcartesian.cpp.
|
overridevirtual |
Function to reset the patch.
Reimplemented from bitpit::PatchKernel.
Definition at line 231 of file volcartesian.cpp.
|
overridevirtual |
Resest the interfaces of the patch.
Reimplemented from bitpit::PatchKernel.
Definition at line 257 of file volcartesian.cpp.
|
overridevirtual |
Rotates the patch.
[in] | n0 | is a first point on the rotation axis |
[in] | n1 | is a second point on the rotation axis |
[in] | angle | is the rotation angle, expressed in radiants and positive for counterclockwise rotations |
Reimplemented from bitpit::PatchKernel.
Definition at line 1854 of file volcartesian.cpp.
|
overridevirtual |
Scales the patch.
[in] | scaling | is the scaling factor vector |
[in] | center | is the center of the scaling |
Reimplemented from bitpit::PatchKernel.
Definition at line 1906 of file volcartesian.cpp.
void bitpit::VolCartesian::setLengths | ( | const std::array< double, 3 > & | lengths | ) |
Sets the lengths of the sides of the box that defines the patch domain.
lengths | is an array with the lengths of the sides of the box that defines the patch domain |
Definition at line 1879 of file volcartesian.cpp.
void bitpit::VolCartesian::setOrigin | ( | const std::array< double, 3 > & | origin | ) |
Sets the origin of the patch.
The origin is the lower-left-back corner.
origin | is the new origin of the patch |
Definition at line 1815 of file volcartesian.cpp.
void bitpit::VolCartesian::switchMemoryMode | ( | MemoryMode | mode | ) |
Switch to the specified memory mode.
mode | is the memory mode that will be set |
Definition at line 928 of file volcartesian.cpp.
|
overridevirtual |
Translates the patch.
[in] | translation | is the translation vector |
Reimplemented from bitpit::PatchKernel.
Definition at line 1826 of file volcartesian.cpp.