Loading...
Searching...
No Matches
patch_kernel.hpp
395 virtual void simulateCellUpdate(const long id, adaption::Marker marker, std::vector<Cell> *virtualCells, PiercedVector<Vertex, long> *virtualVertices) const;
402 std::vector<adaption::Info> adaptionAlter(bool trackAdaption = true, bool squeezeStorage = false);
447 void getVertexCoords(std::size_t nVertices, const long *ids, std::unique_ptr<std::array<double, 3>[]> *coordinates) const;
448 void getVertexCoords(std::size_t nVertices, const long *ids, std::array<double, 3> *coordinates) const;
506 CellIterator addCell(ElementType type, const std::vector<long> &connectivity, long id = Element::NULL_ID);
507 CellIterator addCell(ElementType type, std::unique_ptr<long[]> &&connectStorage, long id = Element::NULL_ID);
515 CellIterator addCell(ElementType type, const std::vector<long> &connectivity, int owner, long id = Element::NULL_ID);
516 CellIterator addCell(ElementType type, const std::vector<long> &connectivity, int owner, int haloLayer, long id = Element::NULL_ID);
517 CellIterator addCell(ElementType type, std::unique_ptr<long[]> &&connectStorage, int owner, long id = Element::NULL_ID);
518 CellIterator addCell(ElementType type, std::unique_ptr<long[]> &&connectStorage, int owner, int haloLayer, long id = Element::NULL_ID);
536 virtual void evalCellBoundingBox(long id, std::array<double,3> *minPoint, std::array<double,3> *maxPoint) const;
537 BITPIT_DEPRECATED(ConstProxyVector<std::array<double BITPIT_COMMA 3>> getCellVertexCoordinates(long id) const);
538 void getCellVertexCoordinates(long id, std::unique_ptr<std::array<double, 3>[]> *coordinates) const;
606 InterfaceIterator addInterface(ElementType type, const std::vector<long> &connectivity, long id = Element::NULL_ID);
607 InterfaceIterator addInterface(ElementType type, std::unique_ptr<long[]> &&connectStorage, long id = Element::NULL_ID);
618 virtual void evalInterfaceBoundingBox(long id, std::array<double,3> *minPoint, std::array<double,3> *maxPoint) const;
619 BITPIT_DEPRECATED(ConstProxyVector<std::array<double BITPIT_COMMA 3>> getInterfaceVertexCoordinates(long id) const);
620 void getInterfaceVertexCoordinates(long id, std::unique_ptr<std::array<double, 3>[]> *coordinates) const;
622 bool intersectInterfacePlane(long id, std::array<double, 3> P, std::array<double, 3> nP, std::array<std::array<double, 3>, 2> *intersection, std::vector<std::array<double, 3>> *polygon) const;
664 void getBoundingBox(bool global, std::array<double, 3> &minPoint, std::array<double, 3> &maxPoint) const;
670 virtual void rotate(const std::array<double, 3> &n0, const std::array<double, 3> &n1, double angle);
671 void rotate(double n0x, double n0y, double n0z, double n1x, double n1y, double n1z, double angle);
738 BITPIT_DEPRECATED(const std::unordered_map<int BITPIT_COMMA std::vector<long>> & getGhostExchangeTargets() const);
742 BITPIT_DEPRECATED(const std::unordered_map<int BITPIT_COMMA std::vector<long>> & getGhostExchangeSources() const);
753 BITPIT_DEPRECATED(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));
754 std::vector<adaption::Info> partition(const std::unordered_map<long, int> &cellRanks, bool trackPartitioning, bool squeezeStorage = false);
755 BITPIT_DEPRECATED(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));
756 std::vector<adaption::Info> partition(const std::unordered_map<long, double> &cellWeights, bool trackPartitioning, bool squeezeStorage = false);
757 BITPIT_DEPRECATED(std::vector<adaption::Info> partition(MPI_Comm communicator, bool trackPartitioning, bool squeezeStorage = false, std::size_t haloSize = 1));
759 BITPIT_DEPRECATED(std::vector<adaption::Info> partitioningPrepare(MPI_Comm communicator, const std::unordered_map<long, int> &cellRanks, bool trackPartitioning, std::size_t haloSize = 1));
760 std::vector<adaption::Info> partitioningPrepare(const std::unordered_map<long, int> &cellRanks, bool trackPartitioning);
761 BITPIT_DEPRECATED(std::vector<adaption::Info> partitioningPrepare(MPI_Comm communicator, const std::unordered_map<long, double> &cellWeights, bool trackPartitioning, std::size_t haloSize = 1));
762 std::vector<adaption::Info> partitioningPrepare(const std::unordered_map<long, double> &cellWeights, bool trackPartitioning);
763 BITPIT_DEPRECATED(std::vector<adaption::Info> partitioningPrepare(MPI_Comm communicator, bool trackPartitioning, std::size_t haloSize = 1));
765 std::vector<adaption::Info> partitioningAlter(bool trackPartitioning = true, bool squeezeStorage = false);
772 void processCellNeighbours(long seedId, int nLayers, Selector isSelected, Function function) const;
774 void processCellsNeighbours(const SeedContainer &seedIds, int nLayers, Function function) const;
776 void processCellsNeighbours(const SeedContainer &seedIds, int nLayers, Selector isSelected, Function function) const;
780 void processCellFaceNeighbours(long seedId, int nLayers, Selector isSelected, Function function) const;
782 void processCellsFaceNeighbours(const SeedContainer &seedIds, int nLayers, Function function) const;
784 void processCellsFaceNeighbours(const SeedContainer &seedIds, int nLayers, Selector isSelected, Function function) const;
787 void evalElementBoundingBox(const Element &element, std::array<double,3> *minPoint, std::array<double,3> *maxPoint) const;
788 BITPIT_DEPRECATED(ConstProxyVector<std::array<double BITPIT_COMMA 3>> getElementVertexCoordinates(const Element &element) const);
789 void getElementVertexCoordinates(const Element &element, std::unique_ptr<std::array<double, 3>[]> *coordinates) const;
790 void getElementVertexCoordinates(const Element &element, std::array<double, 3> *coordinates) const;
814 PatchKernel(MPI_Comm communicator, std::size_t haloSize, AdaptionMode adaptionMode, PartitioningMode partitioningMode);
815 PatchKernel(int dimension, MPI_Comm communicator, std::size_t haloSize, AdaptionMode adaptionMode, PartitioningMode partitioningMode);
816 PatchKernel(int id, int dimension, MPI_Comm communicator, std::size_t haloSize, AdaptionMode adaptionMode, PartitioningMode partitioningMode);
829 void setBoundingBox(const std::array<double, 3> &minPoint, const std::array<double, 3> &maxPoint);
837 CellIterator restoreCell(ElementType type, std::unique_ptr<long[]> &&connectStorage, int owner, int haloLayer, long id);
842 InterfaceIterator restoreInterface(ElementType type, std::unique_ptr<long[]> &&connectStorage, long id);
877 std::unordered_map<long, std::vector<long>> binGroupVertices(const PiercedVector<Vertex> &vertices, int nBins);
929 virtual void _findCellNeighs(long id, const std::vector<long> *blackList, std::vector<long> *neighs) const;
930 virtual void _findCellFaceNeighs(long id, int face, const std::vector<long> *blackList, std::vector<long> *neighs) const;
931 virtual void _findCellEdgeNeighs(long id, int edge, const std::vector<long> *blackList, std::vector<long> *neighs) const;
932 virtual void _findCellVertexNeighs(long id, int vertex, const std::vector<long> *blackList, std::vector<long> *neighs) const;
950 virtual std::vector<adaption::Info> _partitioningPrepare(const std::unordered_map<long, double> &cellWeights, double defaultWeight, bool trackPartitioning);
951 virtual std::vector<adaption::Info> _partitioningPrepare(const std::unordered_map<long, int> &cellRanks, bool trackPartitioning);
959 std::unordered_map<id_t, id_t> consecutiveItemRenumbering(PiercedVector<item_t, id_t> &container, long offset);
962 void mappedItemRenumbering(PiercedVector<item_t, id_t> &container, const std::unordered_map<id_t, id_t> &renumberMap);
1065 void _partitioningAlter_applyGhostCellOwnershipChanges(int sendRank, std::unordered_map<long, int> *ghostCellOwnershipChanges);
1067 std::vector<adaption::Info> _partitioningAlter_sendCells(const std::unordered_set<int> &recvRanks, bool trackPartitioning, std::unordered_map<long, int> *ghostCellOwnershipChanges);
1068 std::vector<adaption::Info> _partitioningAlter_receiveCells(const std::unordered_set<int> &sendRanks, bool trackPartitioning, std::unordered_map<long, int> *ghostCellOwnershipChanges);
1085 bool confirmCellHaloLayer(const Cell &cell, int haloLayer, const ExcludeList &excludeList = ExcludeList()) const;
1101 InterfaceIterator buildCellInterface(Cell *cell_1, int face_1, Cell *cell_2, int face_2, long interfaceId = Element::NULL_ID);
1105 bool testElementAlterationFlags(long id, AlterationFlags flags, const AlterationFlagsStorage &flagsStorage) const;
1106 AlterationFlags getElementAlterationFlags(long id, const AlterationFlagsStorage &flagsStorage) const;
1107 void resetElementAlterationFlags(long id, AlterationFlags flags, AlterationFlagsStorage *flagsStorage) const;
1108 void setElementAlterationFlags(long id, AlterationFlags flags, AlterationFlagsStorage *flagsStorage) const;
1109 void unsetElementAlterationFlags(AlterationFlags flags, AlterationFlagsStorage *flagsStorage) const;
1110 void unsetElementAlterationFlags(long id, AlterationFlags flags, AlterationFlagsStorage *flagsStorage) const;
1112 void mergeAdaptionInfo(std::vector<adaption::Info> &&source, std::vector<adaption::Info> &destination);
1139 void _restoreInternalVertex(const VertexIterator &iterator, const std::array<double, 3> &coords);
1141 void _restoreGhostVertex(const VertexIterator &iterator, const std::array<double, 3> &coords, int owner);
1149 CellIterator _addInternalCell(ElementType type, std::unique_ptr<long[]> &&connectStorage, long id);
1151 CellIterator _addGhostCell(ElementType type, std::unique_ptr<long[]> &&connectStorage, int owner, int haloLayer, long id);
1154 void _restoreInternalCell(const CellIterator &iterator, ElementType type, std::unique_ptr<long[]> &&connectStorage);
1156 void _restoreGhostCell(const CellIterator &iterator, ElementType type, std::unique_ptr<long[]> &&connectStorage, int owner, int haloLayer);
1164 InterfaceIterator _addInterface(ElementType type, std::unique_ptr<long[]> &&connectStorage, long id);
1166 void _restoreInterface(const InterfaceIterator &iterator, ElementType type, std::unique_ptr<long[]> &&connectStorage);
The Element class provides an interface for defining elements.
Definition element.hpp:46
The PatchKernel class provides an interface for defining patches.
Definition patch_kernel.hpp:54
void initializeAdjacencies(AdjacenciesBuildStrategy strategy=ADJACENCIES_AUTOMATIC)
Definition patch_kernel.cpp:5959
void unsetCellAlterationFlags(AlterationFlags flags)
Definition patch_kernel.cpp:6945
CellConstIterator cellConstBegin() const
Definition patch_kernel.cpp:2705
void processCellNeighbours(long seedId, int nLayers, Function function) const
Definition patch_kernel.tpp:332
Vertex & getLastInternalVertex()
Definition patch_kernel.cpp:1703
CellIterator getCellIterator(long id)
Definition patch_kernel.cpp:2621
void mappedItemRenumbering(PiercedVector< item_t, id_t > &container, const std::unordered_map< id_t, id_t > &renumberMap)
Definition patch_kernel.tpp:225
void dumpInterfaces(std::ostream &stream) const
Definition patch_kernel.cpp:5093
CellIterator internalCellBegin()
Definition patch_kernel.cpp:2651
InterfacesBuildStrategy getInterfacesBuildStrategy() const
Definition patch_kernel.cpp:6376
CellConstIterator internalConstBegin() const
Definition patch_kernel.cpp:2735
virtual bool _enableCellBalancing(long id, bool enabled)
Definition patch_kernel.cpp:5297
CellConstIterator internalCellConstEnd() const
Definition patch_kernel.cpp:2746
AdjacenciesBuildStrategy getAdjacenciesBuildStrategy() const
Definition patch_kernel.cpp:5891
virtual bool _markCellForRefinement(long id)
Definition patch_kernel.cpp:5236
std::vector< long > getInternalCellsByPID(int pid)
Definition patch_kernel.cpp:4092
void displayVertices(std::ostream &out, unsigned int padding=0) const
Definition patch_kernel.cpp:7843
int getVertexOwner(long id) const
Definition patch_kernel_parallel.cpp:3847
InterfaceIterator restoreInterface(ElementType type, std::unique_ptr< long[]> &&connectStorage, long id)
Definition patch_kernel.cpp:4595
const std::unordered_map< int, std::vector< long > > & getGhostCellExchangeSources() const
Definition patch_kernel_parallel.cpp:4070
std::unordered_map< id_t, id_t > consecutiveItemRenumbering(PiercedVector< item_t, id_t > &container, long offset)
Definition patch_kernel.tpp:199
virtual void _findCellEdgeNeighs(long id, int edge, const std::vector< long > *blackList, std::vector< long > *neighs) const
Definition patch_kernel.cpp:3720
void markCellForRefinement(long id)
Definition patch_kernel.cpp:890
VertexIterator ghostVertexEnd()
Definition patch_kernel_parallel.cpp:565
std::vector< long > findVertexOneRing(long vertexId) const
Definition patch_kernel.cpp:4113
virtual std::array< double, 3 > evalInterfaceCentroid(long id) const
Definition patch_kernel.cpp:5568
void setCellAutoIndexing(bool enabled)
Definition patch_kernel.cpp:2435
virtual std::vector< long > _findGhostCellExchangeSources(int rank)
Definition patch_kernel_parallel.cpp:4793
virtual long getInterfaceCount() const
Definition patch_kernel.cpp:4263
std::vector< adaption::Info > update(bool trackAdaption=true, bool squeezeStorage=false)
Definition patch_kernel.cpp:625
long getGhostVertexCount() const
Definition patch_kernel_parallel.cpp:434
bool intersectInterfacePlane(long id, std::array< double, 3 > P, std::array< double, 3 > nP, std::array< std::array< double, 3 >, 2 > *intersection, std::vector< std::array< double, 3 > > *polygon) const
Definition patch_kernel.cpp:5657
InterfaceIterator interfaceBegin()
Definition patch_kernel.cpp:4336
std::vector< long > findOrphanInterfaces() const
Definition patch_kernel.cpp:4761
bool testAlterationFlags(AlterationFlags availableFlags, AlterationFlags requestedFlags) const
Definition patch_kernel.cpp:7065
VertexConstIterator vertexConstEnd() const
Definition patch_kernel.cpp:1797
void dumpVertices(std::ostream &stream) const
Definition patch_kernel.cpp:4881
void pruneStaleAdjacencies()
Definition patch_kernel.cpp:6085
void updateFirstGhostCellId()
Definition patch_kernel_parallel.cpp:1290
virtual void _resetInterfaces(bool release)
Definition patch_kernel.cpp:1056
VertexIterator restoreVertex(const std::array< double, 3 > &coords, int owner, long id)
Definition patch_kernel_parallel.cpp:470
AdaptionMode getAdaptionMode() const
Definition patch_kernel.cpp:1309
CellIterator restoreCell(ElementType type, std::unique_ptr< long[]> &&connectStorage, int owner, int haloLayer, long id)
Definition patch_kernel_parallel.cpp:1109
long countBorderInterfaces() const
Definition patch_kernel.cpp:4719
InterfaceIterator addInterface(const Interface &source, long id=Element::NULL_ID)
Definition patch_kernel.cpp:4396
void dumpCells(std::ostream &stream) const
Definition patch_kernel.cpp:4972
void setBoundingBoxDirty(bool dirty)
Definition patch_kernel.cpp:7291
CellConstIterator internalCellConstBegin() const
Definition patch_kernel.cpp:2725
bool isVertexAutoIndexingEnabled() const
Definition patch_kernel.cpp:1545
InterfaceConstIterator interfaceConstEnd() const
Definition patch_kernel.cpp:4376
InterfaceConstIterator interfaceConstBegin() const
Definition patch_kernel.cpp:4366
std::vector< long > collapseCoincidentVertices()
Definition patch_kernel.cpp:2227
void consecutiveRenumberInterfaces(long offset=0)
Definition patch_kernel.cpp:8251
bool isCellAutoIndexingEnabled() const
Definition patch_kernel.cpp:2422
VertexConstIterator vertexConstBegin() const
Definition patch_kernel.cpp:1787
virtual std::vector< adaption::Info > _partitioningPrepare(const std::unordered_map< long, double > &cellWeights, double defaultWeight, bool trackPartitioning)
Definition patch_kernel_parallel.cpp:1863
WriteTarget getVTKWriteTarget() const
Definition patch_kernel.cpp:7909
virtual long getVertexCount() const
Definition patch_kernel.cpp:1641
const std::unordered_map< int, std::vector< long > > & getGhostCellExchangeTargets() const
Definition patch_kernel_parallel.cpp:3986
bool deleteCoincidentVertices()
Definition patch_kernel.cpp:2317
long countOrphanInterfaces() const
Definition patch_kernel.cpp:4739
virtual void evalCellBoundingBox(long id, std::array< double, 3 > *minPoint, std::array< double, 3 > *maxPoint) const
Definition patch_kernel.cpp:5506
bool isRankNeighbour(int rank)
Definition patch_kernel_parallel.cpp:3863
void restoreCells(std::istream &stream)
Definition patch_kernel.cpp:5018
CellIterator ghostCellEnd()
Definition patch_kernel_parallel.cpp:1228
virtual void _findCellFaceNeighs(long id, int face, const std::vector< long > *blackList, std::vector< long > *neighs) const
Definition patch_kernel.cpp:3592
void addPointToBoundingBox(const std::array< double, 3 > &point)
Definition patch_kernel.cpp:7333
std::vector< long > findDuplicateCells() const
Definition patch_kernel.cpp:3296
AdjacenciesBuildStrategy
Definition patch_kernel.hpp:319
virtual ElementType getInterfaceType(long id) const
Definition patch_kernel.cpp:4316
VertexIterator addVertex(const Vertex &source, long id=Vertex::NULL_ID)
Definition patch_kernel.cpp:1844
std::vector< long > findCellNeighs(long id) const
Definition patch_kernel.cpp:3392
void getBoundingBox(std::array< double, 3 > &minPoint, std::array< double, 3 > &maxPoint) const
Definition patch_kernel.cpp:7210
PartitioningMode getPartitioningMode() const
Definition patch_kernel_parallel.cpp:1712
std::vector< adaption::Info > adaptionPrepare(bool trackAdaption=true)
Definition patch_kernel.cpp:719
adaption::Marker getCellAdaptionMarker(long id)
Definition patch_kernel.cpp:938
void processCellsNeighbours(const SeedContainer &seedIds, int nLayers, Function function) const
Definition patch_kernel.tpp:408
std::unordered_map< long, std::vector< long > > binGroupVertices(const PiercedVector< Vertex > &vertices, int nBins)
Definition patch_kernel.cpp:7470
void setBoundingBoxFrozen(bool frozen)
Definition patch_kernel.cpp:7259
VertexIterator internalVertex2GhostVertex(long id, int owner)
Definition patch_kernel_parallel.cpp:350
virtual bool isSameFace(const Cell &cell_A, int face_A, const Cell &cell_B, int face_B) const
Definition patch_kernel.cpp:5865
virtual std::vector< adaption::Info > _partitioningAlter(bool trackPartitioning)
Definition patch_kernel_parallel.cpp:2105
const CellConstRange getVTKCellWriteRange() const
Definition patch_kernel.cpp:7929
virtual bool _resetCellAdaptionMarker(long id)
Definition patch_kernel.cpp:5266
void consecutiveRenumberCells(long offset=0)
Definition patch_kernel.cpp:8194
virtual void simulateCellUpdate(const long id, adaption::Marker marker, std::vector< Cell > *virtualCells, PiercedVector< Vertex, long > *virtualVertices) const
Definition patch_kernel.cpp:659
CellIterator ghostCellBegin()
Definition patch_kernel_parallel.cpp:1204
void setVertexAutoIndexing(bool enabled)
Definition patch_kernel.cpp:1558
VertexIterator getVertexIterator(long id)
Definition patch_kernel.cpp:1723
VertexConstIterator getVertexConstIterator(long id) const
Definition patch_kernel.cpp:1777
PiercedVector< Vertex > & getVertices()
Definition patch_kernel.cpp:1661
virtual bool _markCellForCoarsening(long id)
Definition patch_kernel.cpp:5251
std::vector< long > findCellFaceNeighs(long id) const
Definition patch_kernel.cpp:3477
bool deleteVertices(const IdStorage &ids)
Definition patch_kernel.tpp:105
long locatePoint(double x, double y, double z) const
Definition patch_kernel.cpp:5850
Cell & getLastInternalCell()
Definition patch_kernel.cpp:2601
InterfaceConstIterator getInterfaceConstIterator(long id) const
Definition patch_kernel.cpp:4356
void flushData(std::fstream &stream, const std::string &name, VTKFormat format) override
Definition patch_kernel.cpp:8005
virtual adaption::Marker _getCellAdaptionMarker(long id)
Definition patch_kernel.cpp:5281
int getVertexRank(long id) const
Definition patch_kernel_parallel.cpp:3831
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)
Definition patch_kernel_parallel.cpp:1317
CellIterator addCell(const Cell &source, long id=Element::NULL_ID)
Definition patch_kernel.cpp:2781
void evalElementBoundingBox(const Element &element, std::array< double, 3 > *minPoint, std::array< double, 3 > *maxPoint) const
Definition patch_kernel.cpp:5773
PartitioningStatus getPartitioningStatus(bool global=false) const
Definition patch_kernel_parallel.cpp:1736
int getCellRank(long id) const
Definition patch_kernel_parallel.cpp:3783
void resetCellAlterationFlags(long id, AlterationFlags flags=FLAG_NONE)
Definition patch_kernel.cpp:6911
virtual void _partitioningCleanup()
Definition patch_kernel_parallel.cpp:3773
void updateInterfaces(bool forcedUpdated=false)
Definition patch_kernel.cpp:6492
void displayTopologyStats(std::ostream &out, unsigned int padding=0) const
Definition patch_kernel.cpp:7806
virtual void rotate(const std::array< double, 3 > &n0, const std::array< double, 3 > &n1, double angle)
Definition patch_kernel.cpp:7535
ConstProxyVector< std::array< double BITPIT_COMMA 3 > > getElementVertexCoordinates(const Element &element) const
Definition patch_kernel.cpp:7412
CellConstIterator cellConstEnd() const
Definition patch_kernel.cpp:2715
AlterationFlags getCellAlterationFlags(long id) const
Definition patch_kernel.cpp:6900
void scale(const std::array< double, 3 > &scaling)
Definition patch_kernel.cpp:7595
virtual void setDimension(int dimension)
Definition patch_kernel.cpp:1502
void markCellForCoarsening(long id)
Definition patch_kernel.cpp:904
const std::unordered_map< int BITPIT_COMMA std::vector< long > > & getGhostExchangeTargets() const
Definition patch_kernel_parallel.cpp:4007
void restoreVertices(std::istream &stream)
Definition patch_kernel.cpp:4917
virtual void translate(const std::array< double, 3 > &translation)
Definition patch_kernel.cpp:7501
VertexConstIterator internalVertexConstEnd() const
Definition patch_kernel.cpp:1817
bool arePartitioningInfoDirty(bool global=true) const
Definition patch_kernel_parallel.cpp:4294
CellIterator internalCell2GhostCell(long id, int owner, int haloLayer)
Definition patch_kernel_parallel.cpp:617
void setInterfaceAutoIndexing(bool enabled)
Definition patch_kernel.cpp:4176
CellIterator ghostCell2InternalCell(long id)
Definition patch_kernel_parallel.cpp:658
void setAdaptionStatus(AdaptionStatus status)
Definition patch_kernel.cpp:1356
bool isInterfaceAutoIndexingEnabled() const
Definition patch_kernel.cpp:4160
PatchKernel & operator=(PatchKernel &&other)
Definition patch_kernel.cpp:383
void setAdjacenciesBuildStrategy(AdjacenciesBuildStrategy status)
Definition patch_kernel.cpp:5901
void updateLastInternalVertexId()
Definition patch_kernel.cpp:2393
VertexConstIterator ghostVertexConstEnd() const
Definition patch_kernel_parallel.cpp:590
VertexIterator internalVertexEnd()
Definition patch_kernel.cpp:1763
bool reserveInterfaces(size_t nInterfaces)
Definition patch_kernel.cpp:1129
int getOwner(bool allowDirty=false) const
Definition patch_kernel_parallel.cpp:211
long countDuplicateCells() const
Definition patch_kernel.cpp:3283
bool areInterfacesDirty(bool global=false) const
Definition patch_kernel.cpp:6404
void partitioningCleanup()
Definition patch_kernel_parallel.cpp:1652
bool deleteOrphanInterfaces()
Definition patch_kernel.cpp:4778
double evalPartitioningUnbalance() const
Definition patch_kernel_parallel.cpp:1774
CellConstIterator ghostCellConstEnd() const
Definition patch_kernel_parallel.cpp:1272
static const double DEFAULT_PARTITIONING_WEIGTH
Definition patch_kernel.hpp:797
void setInterfacesBuildStrategy(InterfacesBuildStrategy status)
Definition patch_kernel.cpp:6386
VertexIterator ghostVertexBegin()
Definition patch_kernel_parallel.cpp:551
const MPI_Comm & getCommunicator() const
Definition patch_kernel_parallel.cpp:128
void updateBoundingBox(bool forcedUpdated=false)
Definition patch_kernel.cpp:7302
void processCellFaceNeighbours(long seedId, int nLayers, Function function) const
Definition patch_kernel.tpp:497
std::size_t getHaloSize() const
Definition patch_kernel_parallel.cpp:315
void restore(std::istream &stream, bool reregister=false)
Definition patch_kernel.cpp:8412
virtual int findAdjoinNeighFace(const Cell &cell, int cellFace, const Cell &neigh) const
Definition patch_kernel.cpp:6839
CellConstIterator ghostConstEnd() const
Definition patch_kernel_parallel.cpp:1282
long countFreeVertices() const
Definition patch_kernel.cpp:2103
void updateFirstGhostVertexId()
Definition patch_kernel_parallel.cpp:598
void setHaloSize(std::size_t haloSize)
Definition patch_kernel_parallel.cpp:285
virtual void _updateAdjacencies()
Definition patch_kernel.cpp:6130
Vertex & getFirstGhostVertex()
Definition patch_kernel_parallel.cpp:444
void initializeInterfaces(InterfacesBuildStrategy strategy=INTERFACES_AUTOMATIC)
Definition patch_kernel.cpp:6455
void enableCellBalancing(long id, bool enabled)
Definition patch_kernel.cpp:949
virtual void _resetAdjacencies(bool release)
Definition patch_kernel.cpp:6072
void setVTKWriteTarget(WriteTarget targetCells)
Definition patch_kernel.cpp:7919
bool isPartitioned() const
Definition patch_kernel_parallel.cpp:1686
void displayCells(std::ostream &out, unsigned int padding=0) const
Definition patch_kernel.cpp:7859
bool testInterfaceAlterationFlags(long id, AlterationFlags flags) const
Definition patch_kernel.cpp:6968
virtual std::size_t _getMaxHaloSize()
Definition patch_kernel_parallel.cpp:327
std::vector< adaption::Info > partitioningPrepare(MPI_Comm communicator, const std::unordered_map< long, int > &cellRanks, bool trackPartitioning, std::size_t haloSize=1)
Definition patch_kernel_parallel.cpp:1462
std::set< int > getInternalCellPIDs()
Definition patch_kernel.cpp:4075
long countOrphanVertices() const
Definition patch_kernel.cpp:2143
void restoreInterfaces(std::istream &stream)
Definition patch_kernel.cpp:5125
VertexIterator ghostVertex2InternalVertex(long id)
Definition patch_kernel_parallel.cpp:391
void unsetInterfaceAlterationFlags(AlterationFlags flags)
Definition patch_kernel.cpp:7024
VertexConstIterator ghostVertexConstBegin() const
Definition patch_kernel_parallel.cpp:576
const std::unordered_map< int, std::vector< long > > & getGhostVertexExchangeTargets() const
Definition patch_kernel_parallel.cpp:3900
virtual void _adaptionCleanup()
Definition patch_kernel.cpp:5224
bool isBoundingBoxFrozen() const
Definition patch_kernel.cpp:7244
void removePointFromBoundingBox(const std::array< double, 3 > &point)
Definition patch_kernel.cpp:7368
void resetCellAdaptionMarker(long id)
Definition patch_kernel.cpp:918
std::vector< long > findCellVertexNeighs(long id, bool complete=true) const
Definition patch_kernel.cpp:3775
void setAdaptionMode(AdaptionMode mode)
Definition patch_kernel.cpp:1321
bool isDistributed(bool allowDirty=false) const
Definition patch_kernel_parallel.cpp:187
std::vector< adaption::Info > partitioningAlter(bool trackPartitioning=true, bool squeezeStorage=false)
Definition patch_kernel_parallel.cpp:1619
bool deleteOrphanVertices()
Definition patch_kernel.cpp:2208
int getCellHaloLayer(long id) const
Definition patch_kernel_parallel.cpp:3815
const std::unordered_map< int, std::vector< long > > & getGhostVertexExchangeSources() const
Definition patch_kernel_parallel.cpp:3943
virtual void _findCellNeighs(long id, const std::vector< long > *blackList, std::vector< long > *neighs) const
Definition patch_kernel.cpp:3499
const std::array< double, 3 > & getVertexCoords(long id) const
Definition patch_kernel.cpp:2335
virtual long _getCellNativeIndex(long id) const
Definition patch_kernel.cpp:3381
void write(VTKWriteMode mode=VTKWriteMode::DEFAULT)
Definition patch_kernel.cpp:1176
virtual void _updateInterfaces()
Definition patch_kernel.cpp:6622
virtual void evalInterfaceBoundingBox(long id, std::array< double, 3 > *minPoint, std::array< double, 3 > *maxPoint) const
Definition patch_kernel.cpp:5582
void updateAdjacencies(bool forcedUpdated=false)
Definition patch_kernel.cpp:5991
ConstProxyVector< std::array< double BITPIT_COMMA 3 > > getInterfaceVertexCoordinates(long id) const
Definition patch_kernel.cpp:5595
bool areAdjacenciesDirty(bool global=false) const
Definition patch_kernel.cpp:5913
virtual void settleAdaptionMarkers()
Definition patch_kernel.cpp:822
VertexConstIterator internalVertexConstBegin() const
Definition patch_kernel.cpp:1807
void setPartitioningMode(PartitioningMode mode)
Definition patch_kernel_parallel.cpp:1725
const std::unordered_map< int BITPIT_COMMA std::vector< long > > & getGhostExchangeSources() const
Definition patch_kernel_parallel.cpp:4091
long countBorderVertices() const
Definition patch_kernel.cpp:2115
InterfaceIterator getInterfaceIterator(long id)
Definition patch_kernel.cpp:4326
AdaptionStatus getAdaptionStatus(bool global=false) const
Definition patch_kernel.cpp:1335
std::vector< long > findCellEdgeNeighs(long id, bool complete=true) const
Definition patch_kernel.cpp:3617
VertexIterator internalVertexBegin()
Definition patch_kernel.cpp:1753
long countFreeInterfaces() const
Definition patch_kernel.cpp:4707
CellConstIterator internalConstEnd() const
Definition patch_kernel.cpp:2761
void consecutiveRenumberVertices(long offset=0)
Definition patch_kernel.cpp:8168
void extractEnvelope(PatchKernel &envelope) const
Definition patch_kernel.cpp:7751
long getInternalCellCount() const
Definition patch_kernel.cpp:2528
std::vector< long > findOrphanCells() const
Definition patch_kernel.cpp:3240
void displayInterfaces(std::ostream &out, unsigned int padding=0) const
Definition patch_kernel.cpp:7875
bool isInterfaceOrphan(long id) const
Definition patch_kernel.cpp:4798
int getProcessorCount() const
Definition patch_kernel_parallel.cpp:167
virtual std::vector< adaption::Info > _adaptionPrepare(bool trackAdaption)
Definition patch_kernel.cpp:5192
PiercedVector< Interface > & getInterfaces()
Definition patch_kernel.cpp:4273
virtual ElementType getCellType(long id) const
Definition patch_kernel.cpp:2591
void setInterfaceAlterationFlags(AlterationFlags flags)
Definition patch_kernel.cpp:7000
bool testCellAlterationFlags(long id, AlterationFlags flags) const
Definition patch_kernel.cpp:6889
void setPartitioningStatus(PartitioningStatus status)
Definition patch_kernel_parallel.cpp:1753
CellConstIterator ghostCellConstBegin() const
Definition patch_kernel_parallel.cpp:1248
long getInternalVertexCount() const
Definition patch_kernel.cpp:1651
bool findFaceNeighCell(long cellId, long neighId, int *cellFace, int *cellAdjacencyId) const
Definition patch_kernel.cpp:4044
void consecutiveRenumber(long offsetVertices, long offsetCells, long offsetInterfaces)
Definition patch_kernel.cpp:8280
CellConstIterator ghostConstBegin() const
Definition patch_kernel_parallel.cpp:1262
virtual std::vector< adaption::Info > _adaptionAlter(bool trackAdaption)
Definition patch_kernel.cpp:5210
std::array< double, 3 > evalElementCentroid(const Element &element) const
Definition patch_kernel.cpp:5756
virtual std::array< double, 3 > evalCellCentroid(long id) const
Definition patch_kernel.cpp:5492
bool deleteCells(const IdStorage &ids)
Definition patch_kernel.tpp:54
std::vector< long > findOrphanVertices()
Definition patch_kernel.cpp:2164
AlterationFlags getInterfaceAlterationFlags(long id) const
Definition patch_kernel.cpp:6979
bool isBoundingBoxDirty(bool global=false) const
Definition patch_kernel.cpp:7271
void resetInterfaceAlterationFlags(long id, AlterationFlags flags=FLAG_NONE)
Definition patch_kernel.cpp:6990
std::vector< int > getNeighbourRanks()
Definition patch_kernel_parallel.cpp:3873
void updateLastInternalCellId()
Definition patch_kernel.cpp:3354
bool isPartitioningSupported() const
Definition patch_kernel_parallel.cpp:1696
void setCellAlterationFlags(AlterationFlags flags)
Definition patch_kernel.cpp:6921
long getGhostCellCount() const
Definition patch_kernel_parallel.cpp:701
long getGhostCount() const
Definition patch_kernel_parallel.cpp:711
bool reserveVertices(size_t nVertices)
Definition patch_kernel.cpp:1081
void setBoundingBox(const std::array< double, 3 > &minPoint, const std::array< double, 3 > &maxPoint)
Definition patch_kernel.cpp:7196
void processCellsFaceNeighbours(const SeedContainer &seedIds, int nLayers, Function function) const
Definition patch_kernel.tpp:587
virtual void _setHaloSize(std::size_t haloSize)
Definition patch_kernel_parallel.cpp:339
std::vector< long > findCellVertexOneRing(long id, int vertex) const
Definition patch_kernel.cpp:4004
bool isAdaptionSupported() const
Definition patch_kernel.cpp:1287
CellConstIterator getCellConstIterator(long id) const
Definition patch_kernel.cpp:2695
ConstProxyVector< std::array< double BITPIT_COMMA 3 > > getCellVertexCoordinates(long id) const
Definition patch_kernel.cpp:5519
bool isCommunicatorSet() const
Definition patch_kernel_parallel.cpp:118
int getCellOwner(long id) const
Definition patch_kernel_parallel.cpp:3799
virtual void setCommunicator(MPI_Comm communicator)
Definition patch_kernel_parallel.cpp:96
void pruneStaleInterfaces()
Definition patch_kernel.cpp:6565
std::vector< adaption::Info > adaptionAlter(bool trackAdaption=true, bool squeezeStorage=false)
Definition patch_kernel.cpp:760
virtual void _findCellVertexNeighs(long id, int vertex, const std::vector< long > *blackList, std::vector< long > *neighs) const
Definition patch_kernel.cpp:3885
Cell & getFirstGhostCell()
Definition patch_kernel_parallel.cpp:721
bool isThreeDimensional() const
Definition patch_kernel.cpp:1532
bool deleteInterfaces(const IdStorage &ids)
Definition patch_kernel.tpp:156
PiercedVectorStorage< value_t, id_t >::const_range const_range
Definition piercedVector.hpp:135
PiercedVectorStorage< value_t, id_t >::const_iterator const_iterator
Definition piercedVector.hpp:115
PiercedVectorStorage< value_t, id_t >::range range
Definition piercedVector.hpp:130
PiercedVectorStorage< value_t, id_t >::iterator iterator
Definition piercedVector.hpp:110
The base class to be used to derive VTK streamers form.
Definition VTK.hpp:209
The namespace 'adaption' contains the routines and the data structures for handling patch adaption.
Definition adaption.cpp:38
The namespace 'patch' contains routines for interacting with the patch manager.
Definition patch_manager.cpp:185
