|
| auto | device_array_list_primary () |
| |
| auto | device_array_list_N2CB () |
| |
| auto | device_array_list_facial () |
| |
| auto | device_array_list_C2F () |
| |
| | UnstructuredMesh (const DNDS::MPIInfo &n_mpi, int n_dim) |
| |
| int | getDim () const |
| |
| auto | getCell2NodeIndexPbiRow (index iCell) |
| |
| auto | getBnd2NodeIndexPbiRow (index iBnd) |
| |
| template<class TPair > |
| index | IndexGlobal2Local (TPair &pair, DNDS::index iGlobal) |
| | Global-to-local conversion using father+son ghost mapping.
|
| |
| template<class TPair > |
| index | IndexLocal2Global (TPair &pair, DNDS::index iLocal) |
| | Local-to-global conversion using father+son ghost mapping.
|
| |
| template<class TPair > |
| index | IndexLocal2Global_NoSon (TPair &pair, index iLocal) |
| | Local-to-global conversion using only the father's global mapping (no son / ghost layer).
|
| |
| template<class TPair > |
| index | IndexGlobal2Local_NoSon (TPair &pair, index iGlobal) |
| | Global-to-local conversion using only the father's global mapping (no son / ghost layer).
|
| |
| index | NodeIndexGlobal2Local (DNDS::index i) |
| |
| index | NodeIndexLocal2Global (DNDS::index i) |
| |
| index | NodeIndexLocal2Global_NoSon (index i) |
| |
| index | NodeIndexGlobal2Local_NoSon (index i) |
| |
| index | CellIndexGlobal2Local (DNDS::index i) |
| |
| index | CellIndexLocal2Global (DNDS::index i) |
| |
| index | CellIndexLocal2Global_NoSon (index i) |
| |
| index | CellIndexGlobal2Local_NoSon (index i) |
| |
| index | BndIndexGlobal2Local (DNDS::index i) |
| |
| index | BndIndexLocal2Global (DNDS::index i) |
| |
| index | BndIndexLocal2Global_NoSon (index i) |
| |
| index | BndIndexGlobal2Local_NoSon (index i) |
| |
| void | SetPeriodicGeometry (const tPoint &translation1, const tPoint &rotationCenter1, const tPoint &eulerAngles1, const tPoint &translation2, const tPoint &rotationCenter2, const tPoint &eulerAngles2, const tPoint &translation3, const tPoint &rotationCenter3, const tPoint &eulerAngles3) |
| |
| void | RecoverNode2CellAndNode2Bnd () |
| | only requires father part of cell2node, bnd2node and coords generates node2cell and node2bnd (father part)
|
| |
| void | RecoverCell2CellAndBnd2Cell () |
| | needs to use RecoverNode2CellAndNode2Bnd before doing this. Requires node2cell.father and builds a version of its son.
|
| |
| void | BuildGhostPrimary () |
| | building ghost (son) from primary (currently only cell2cell)
|
| |
| void | AdjGlobal2LocalPrimary () |
| |
| void | AdjLocal2GlobalPrimary () |
| |
| void | AdjGlobal2LocalPrimaryForBnd () |
| |
| void | AdjLocal2GlobalPrimaryForBnd () |
| |
| void | AdjGlobal2LocalFacial () |
| |
| void | AdjLocal2GlobalFacial () |
| |
| void | AdjGlobal2LocalC2F () |
| |
| void | AdjLocal2GlobalC2F () |
| |
| void | BuildGhostN2CB () |
| |
| void | AdjGlobal2LocalN2CB () |
| |
| void | AdjLocal2GlobalN2CB () |
| |
| void | AssertOnN2CB () |
| |
| void | BuildCell2CellFace () |
| |
| void | AdjGlobal2LocalC2CFace () |
| |
| void | AdjLocal2GlobalC2CFace () |
| |
| void | InterpolateFace () |
| |
| void | AssertOnFaces () |
| |
| void | ConstructBndMesh (UnstructuredMesh &bMesh) |
| |
| tLocalMatStruct | GetCell2CellFaceVLocal (bool onLocalPartition=false) |
| |
| void | ObtainLocalFactFillOrdering (Direct::SerialSymLUStructure &symLU, Direct::DirectPrecControl control) |
| |
| void | ObtainSymmetricSymbolicFactorization (Direct::SerialSymLUStructure &symLU, Direct::DirectPrecControl control) const |
| |
| void | ReorderLocalCells (int nParts=1, int nPartsInner=1) |
| |
| int | NLocalParts () const |
| |
| index | LocalPartStart (int iPart) const |
| |
| index | LocalPartEnd (int iPart) const |
| |
| index | NumNode () const |
| |
| index | NumCell () const |
| |
| index | NumFace () const |
| |
| index | NumBnd () const |
| |
| index | NumNodeGhost () const |
| |
| index | NumCellGhost () const |
| |
| index | NumFaceGhost () const |
| |
| index | NumBndGhost () const |
| |
| index | NumNodeProc () const |
| |
| index | NumCellProc () const |
| |
| index | NumFaceProc () const |
| |
| index | NumBndProc () const |
| |
| index | NumCellGlobal () |
| |
| index | NumNodeGlobal () |
| |
| index | NumFaceGlobal () |
| |
| index | NumBndGlobal () |
| |
| Elem::Element | GetCellElement (index iC) |
| |
| Elem::Element | GetFaceElement (index iF) |
| |
| Elem::Element | GetBndElement (index iB) |
| |
| t_index | GetCellZone (index iC) |
| |
| t_index | GetFaceZone (index iF) |
| |
| t_index | GetBndZone (index iB) |
| |
| MPIInfo & | getMPI () |
| |
| void | BuildO2FromO1Elevation (UnstructuredMesh &meshO1) |
| |
| void | ElevatedNodesGetBoundarySmooth (const std::function< bool(t_index)> &FiFBndIdNeedSmooth) |
| |
| void | ElevatedNodesSolveInternalSmooth () |
| |
| void | ElevatedNodesSolveInternalSmoothV1Old () |
| |
| void | ElevatedNodesSolveInternalSmoothV1 () |
| |
| void | ElevatedNodesSolveInternalSmoothV2 () |
| |
| void | BuildBisectO1FormO2 (UnstructuredMesh &meshO2) |
| |
| bool | IsO1 () |
| |
| bool | IsO2 () |
| |
| template<class tC2n > |
| void | __GetCoords (const tC2n &c2n, tSmallCoords &cs) |
| | directly load coords; gets faulty if isPeriodic!
|
| |
| template<class tC2n , class tCoordExt > |
| void | __GetCoords (const tC2n &c2n, tSmallCoords &cs, tCoordExt &coo) |
| | directly load coords; gets faulty if isPeriodic!
|
| |
| template<class tC2n , class tC2nPbi > |
| void | __GetCoordsOnElem (const tC2n &c2n, const tC2nPbi &c2nPbi, tSmallCoords &cs) |
| | specially for periodicity
|
| |
| template<class tC2n , class tC2nPbi , class tCoordExt > |
| void | __GetCoordsOnElem (const tC2n &c2n, const tC2nPbi &c2nPbi, tSmallCoords &cs, tCoordExt &coo) |
| | specially for periodicity
|
| |
| void | GetCoordsOnCell (index iCell, tSmallCoords &cs) |
| |
| void | GetCoordsOnCell (index iCell, tSmallCoords &cs, tCoordPair &coo) |
| |
| void | GetCoordsOnFace (index iFace, tSmallCoords &cs) |
| |
| tPoint | GetCoordNodeOnCell (index iCell, rowsize ic2n) |
| |
| tPoint | GetCoordNodeOnFace (index iFace, rowsize if2n) |
| |
| tPoint | GetCoordWallDistOnCell (index iCell, rowsize ic2n) |
| |
| tPoint | GetCoordWallDistOnFace (index iFace, rowsize if2n) |
| |
| bool | CellIsFaceBack (index iCell, index iFace) const |
| |
| index | CellFaceOther (index iCell, index iFace) const |
| |
| template<class FA , class FB , class F0 = std::function<void(void)>> |
| auto | CellOtherCellPeriodicHandle (index iFace, rowsize if2c, FA &&fA, FB &&fB, F0 &&f0=[]() {}) |
| | fA executes when if2c points to the donor side; fB the main side
|
| |
| void | WriteSerialize (Serializer::SerializerBaseSSP serializerP, const std::string &name) |
| |
| void | ReadSerialize (Serializer::SerializerBaseSSP serializerP, const std::string &name) |
| |
| void | ReadSerializeAndDistribute (Serializer::SerializerBaseSSP serializerP, const std::string &name, const PartitionOptions &partitionOptions) |
| | Reads mesh from an H5 serializer using even-split distribution, then repartitions via ParMetis for locality.
|
| |
| template<class TFTrans > |
| void | TransformCoords (TFTrans &&FTrans) |
| |
| void | RecreatePeriodicNodes () |
| |
| void | BuildVTKConnectivity () |
| |
| void | PrintParallelVTKHDFDataArray (std::string fname, std::string seriesName, int arraySiz, int vecArraySiz, int arraySizPoint, int vecArraySizPoint, const tFGetName &names, const tFGetData &data, const tFGetName &vectorNames, const tFGetVecData &vectorData, const tFGetName &namesPoint, const tFGetData &dataPoint, const tFGetName &vectorNamesPoint, const tFGetVecData &vectorDataPoint, double t, MPI_Comm commDup) |
| |
| void | SetHDF5OutSetting (size_t chunkSiz, int deflateLevel, bool coll_on_data, bool coll_on_meta) |
| |
| void | PrintMeshCGNS (std::string fname, const t_FBCID_2_Name &fbcid2name, const std::vector< std::string > &allNames) |
| |
| void | BuildNodeWallDist (const std::function< bool(Geom::t_index)> &fBndIsWall, WallDistOptions options=WallDistOptions{}) |
| |
| template<class F > |
| void | op_on_device_arrays (F &&f) |
| |
| template<typename F > |
| void | for_each_device_member (F &&f) |
| |
| template<DeviceBackend B> |
| auto | deviceView () |
| |
| index | getArrayBytes () |
| |
| void | to_device (DeviceBackend B) |
| | Mirror every registered ArrayPair to the given device backend.
|
| |
| void | to_host () |
| | Pull every registered pair back to host memory.
|
| |
| DeviceBackend | device () |
| | Consistent device backend across all registered pairs.
|
| |
| index | getDeviceArrayBytes () |
| | Total footprint of every registered father+son pair in bytes.
|
| |
Definition at line 34 of file Mesh.hpp.
Reads mesh from an H5 serializer using even-split distribution, then repartitions via ParMetis for locality.
This method enables reading a mesh written with any number of MPI ranks into any number of MPI ranks, without requiring the original partition.
Flow:
- Even-split read of all primary arrays (coords, cell2node, cellElemInfo, bnd2node, bndElemInfo, cell2nodePbi, bnd2nodePbi, origIndex arrays).
- Build distributed node2cell and cell2cell (node-neighbor) using existing RecoverNode2CellAndNode2Bnd() + RecoverCell2CellAndBnd2Cell().
- Filter cell2cell to facial neighbors only (shared O1 vertices >= dim).
- Call ParMETIS_V3_PartKway on the distributed facial graph.
- Redistribute cells, nodes, and boundaries to the new partition via ArrayTransformer push-based transfer.
- Set adjPrimaryState = Adj_PointToGlobal.
After return, the caller should proceed with the standard rebuild sequence: RecoverNode2CellAndNode2Bnd -> RecoverCell2CellAndBnd2Cell -> BuildGhostPrimary -> AdjGlobal2LocalPrimary -> ...
- Parameters
-
| serializerP | H5 serializer (must be collective / non-per-rank) |
| name | Path name in the serializer hierarchy |
| partitionOptions | ParMetis partitioning options |
Definition at line 42 of file Mesh_ReadSerializeDistributed.cpp.
| void DNDS::Geom::UnstructuredMesh::RecoverCell2CellAndBnd2Cell |
( |
| ) |
|
needs to use RecoverNode2CellAndNode2Bnd before doing this. Requires node2cell.father and builds a version of its son.
warning, this is not actual final official trans, just needed temporarily
warning, this is not actual final official trans, just needed temporarily
warning, this is not actual final official trans, just needed temporarily
Definition at line 542 of file Mesh.cpp.