123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547 |
- #pragma once
- #include "ThirdPartyHeadersBegin.h"
- #include <algorithm>
- #include <string>
- #include <vector>
- #include "ThirdPartyHeadersEnd.h"
- #include "basicTypes.h"
- #include "IJK.h"
- #include "IJKPartitionTree.h"
- #include "IJKZoneInfo.h"
- #include "FEZoneInfo.h"
- #include "MinMaxTree.h"
- #include "zoneUtil.h"
- #include "ClassicZoneFileLocations.h"
- #include "PartitionMetadata.h"
- #include "writeValueArray.h"
- namespace tecplot
- {
- namespace ___3933
- {
- template <typename T>
- ___2090::SubzoneOffset_t getNumSzFromNumItems(T ___2812)
- {
- REQUIRE(___2812 > 0);
- ___2090::SubzoneOffset_t ___3358 = static_cast<___2090::SubzoneOffset_t>((___2812 + 0xFF) >> 8);
- ENSURE(___3358 > 0);
- return ___3358;
- }
- class ZoneMetadata
- {
- private:
- UNCOPYABLE_CLASS(ZoneMetadata);
- private:
- ___4636 ___2677;
- ZoneType_e ___2684;
- bool m_isSZL;
- ___1844 m_zoneIJK;
- std::string ___2495;
- FaceNeighborMode_e ___2458;
- double ___2621;
- ___1172 ___2622;
- ___4636 ___2614;
- ___2090::___2980 m_numPartitions;
- ___1863 m_partitionTree;
- public:
- ___2240<___1881> m_ijkZoneInfos;
- ___2240<___465> m_ptnNumCells;
- ___2240<___2718> m_ptnNumNodes;
- ___2240<___465> m_ptnFirstCell;
- ___2240<___2718> m_ptnFirstNode;
- ___2240<___1844> m_ptnNodeMinIJKs;
- ___2240<___1844> m_ptnNodeMaxIJKs;
- ___2240<___2090::SubzoneOffset_t> m_ptnNumCszs;
- ___2240<___2090::SubzoneOffset_t> m_ptnNumNszs;
- ___2240<___2090::___2980> m_ptnFileNums;
- ___2240<___1393> m_ptnHeaderFileLocs;
- ___2240<___1393> m_varPtnMinMaxFileLocs;
- ___2240<MinMaxTree> m_varPtnMinMaxTrees;
- ___2240<PartitionMetadata> m_ptnMetadata;
- ClassicZoneFileLocations m_classicZoneFileLocations;
- public:
- ZoneMetadata() : ___2677(-1), ___2684(___4703), m_isSZL(false), m_zoneIJK(), ___2495(), ___2458(___1290), ___2621(0.0), ___2622(___3788), ___2614(-1), m_numPartitions(0) {}
- inline void swap(ZoneMetadata &___2888)
- {
- using std::swap;
- swap(___2677, ___2888.___2677);
- swap(___2684, ___2888.___2684);
- swap(m_isSZL, ___2888.m_isSZL);
- swap(m_zoneIJK, ___2888.m_zoneIJK);
- swap(___2495, ___2888.___2495);
- swap(___2458, ___2888.___2458);
- swap(___2621, ___2888.___2621);
- swap(___2622, ___2888.___2622);
- swap(___2614, ___2888.___2614);
- swap(m_numPartitions, ___2888.m_numPartitions);
- }
- inline ___4636 zone() const
- {
- ENSURE(___2677 >= 0 && ___2677 < MAX_NUM_ZONES);
- return ___2677;
- }
- inline ZoneType_e getZoneType() const
- {
- ENSURE(VALID_ENUM(___2684, ZoneType_e));
- return ___2684;
- }
- inline bool isSZL() const { return m_isSZL; }
- inline ___1844 const &getZoneIJK() const
- {
- ENSURE(m_zoneIJK.___2067());
- return m_zoneIJK;
- }
- inline ___465 ___1766() const
- {
- REQUIRE(___2684 != ___4698 && ___2684 != ___4699);
- if (___2684 == ___4704)
- return m_zoneIJK.getNumContiguousCells();
- else
- return m_zoneIJK.___1668();
- }
- inline ___2718 ___1768() const
- {
- REQUIRE(___2684 != ___4698 && ___2684 != ___4699);
- if (___2684 == ___4704)
- return m_zoneIJK.___1768();
- else
- return m_zoneIJK.___1670();
- }
- inline ___682 ___1669() const
- {
- REQUIRE(___2684 != ___4704 && ___2684 != ___4698 && ___2684 != ___4699);
- return m_zoneIJK.___1669();
- }
- inline ___682 ___1767() const
- {
- REQUIRE(___2684 != ___4698 && ___2684 != ___4699);
- if (___2684 == ___4704)
- return 8;
- else
- return ___1669();
- }
- inline std::string getName() const { return ___2495; }
- inline FaceNeighborMode_e getFaceNeighborMode() const
- {
- ENSURE(VALID_ENUM(___2458, FaceNeighborMode_e) || ___2458 == ___1288);
- return ___2458;
- }
- inline double getSolutionTime() const { return ___2621; }
- inline ___1172 getStrandID() const
- {
- REQUIRE(___2622 == ___3788 || ___4312(___2622));
- return ___2622;
- }
- inline ___4636 getParentZone() const
- {
- REQUIRE(___2614 == -1 || (___2614 >= 0 && ___2614 < MAX_NUM_ZONES));
- return ___2614;
- }
- void setZone(___4636 zone)
- {
- REQUIRE(zone >= 0 && zone < MAX_NUM_ZONES);
- ___2677 = zone;
- }
- void setZoneType(ZoneType_e ___4692)
- {
- REQUIRE(VALID_ENUM(___4692, ZoneType_e));
- ___2684 = ___4692;
- }
- inline void setIsSZL(bool isSZL) { m_isSZL = isSZL; }
- inline void setIJKMax(___1844 const &ijkDim)
- {
- REQUIRE(___2684 == ___4704);
- m_zoneIJK = ijkDim;
- }
- inline void setFEDescription(___465 ___2781, ___682 ___2789, ___2718 ___2821)
- {
- REQUIRE(___2684 != ___4704 && ___2684 != ___4698 && ___2684 != ___4699);
- REQUIRE(___2781 > 0 && ___2781 <= MAX_NUM_CELLS);
- REQUIRE(___2821 > 0 && ___2821 <= MAX_NUM_NODES);
- REQUIRE(___2789 > 0 && ___2789 <= MAX_NUM_CELL_CORNERS);
- m_zoneIJK = ___1844(___2821, ___2781, ___2789);
- }
- inline void setName(std::string const &___2685) { ___2495 = ___2685; }
- inline void setFaceNeighborMode(FaceNeighborMode_e ___1284)
- {
- REQUIRE(VALID_ENUM(___1284, FaceNeighborMode_e) || ___1284 == ___1288);
- ___2458 = ___1284;
- }
- inline void setSolutionTime(double ___3640) { ___2621 = ___3640; }
- inline void setStrandID(___1172 ___3785) { ___2622 = ___3785; }
- inline void setParentZone(___4636 ___2974)
- {
- REQUIRE(___2974 == -1 || (___2974 >= 0 && ___2974 < MAX_NUM_ZONES));
- ___2614 = ___2974;
- }
- inline ___2090::___2980 getNumPartitions() const
- {
- REQUIRE(m_isSZL);
- ENSURE(VALID_ITEM_ADDRESS_PARTITION(m_numPartitions - 1));
- return m_numPartitions;
- }
- inline ___2090::SubzoneOffset_t getNumCszsInPartition(___2090::___2980 ___2977) const
- {
- REQUIRE(m_isSZL);
- REQUIRE(___2977 < m_numPartitions);
- ___2090::SubzoneOffset_t const numCszs = m_ptnNumCszs[___2977];
- ENSURE(IMPLICATION(___2684 == ___4704, VALID_ITEM_ADDRESS_SUBZONE_OFFSET(numCszs - 1)));
- ENSURE(IMPLICATION(___2684 != ___4704, numCszs == getNumSzFromNumItems(m_ptnNumCells[___2977])));
- ENSURE(numCszs > 0);
- return numCszs;
- }
- inline ___2090::SubzoneOffset_t getNumNszsInPartition(___2090::___2980 ___2977) const
- {
- REQUIRE(m_isSZL);
- REQUIRE(___2977 < m_numPartitions);
- ___2090::SubzoneOffset_t const numNszs = m_ptnNumNszs[___2977];
- ENSURE(IMPLICATION(___2684 == ___4704, VALID_ITEM_ADDRESS_SUBZONE_OFFSET(numNszs - 1)));
- ENSURE(IMPLICATION(___2684 != ___4704, numNszs == getNumSzFromNumItems(m_ptnNumNodes[___2977])));
- ENSURE(numNszs > 0);
- return numNszs;
- }
- inline void setNumPartitions(___2090::___2980 numPartitions)
- {
- REQUIRE(numPartitions >= 1 && (m_isSZL ? VALID_ITEM_ADDRESS_PARTITION(numPartitions - 1) : numPartitions == 1));
- m_numPartitions = numPartitions;
- ENSURE(VALID_ITEM_ADDRESS_PARTITION(m_numPartitions - 1));
- }
- inline void addPartitionTreeItem(___2090::___2980 ___2977, ___1844 const &___2474, ___1844 const &___2364) { m_partitionTree.___13(___2977, ___2474, ___2364); }
- inline ___2090::___2980 getPartitionForIJK(___1844 const &___1843) const
- {
- if (m_numPartitions == 1)
- {
- return 0;
- }
- else
- {
- ___1853 ___2478(___1843.i(), ___1843.___2105(), ___1843.___2134());
- ___1853 ___2372(___1843.i(), ___1843.___2105(), ___1843.___2134());
- std::vector<___1864> ___2099;
- m_partitionTree.query(boost::geometry::index::intersects(___1855(___2478, ___2372)), std::back_inserter(___2099));
- return (___2099.empty() ? ___2090::INVALID_PARTITION : ___2099[0].second);
- }
- }
- inline std::vector<___2090::___2980> getPartitionsForIJKRange(___1844 const &ijkMin, ___1844 const &___1861) const
- {
- if (m_numPartitions == 1)
- {
- return std::vector<___2090::___2980>(1, 0);
- }
- else
- {
- ___1853 ___2478(ijkMin.i(), ijkMin.___2105(), ijkMin.___2134());
- ___1853 ___2372(___1861.i(), ___1861.___2105(), ___1861.___2134());
- std::vector<___1864> ___2099;
- m_partitionTree.query(boost::geometry::index::intersects(___1855(___2478, ___2372)), std::back_inserter(___2099));
- std::vector<___2090::___2980> ___3358;
- ___3358.reserve(___2099.size());
- for (std::vector<___1864>::const_iterator it = ___2099.begin(); it != ___2099.end(); ++it)
- ___3358.push_back(it->second);
- std::sort(___3358.begin(), ___3358.end());
- return ___3358;
- }
- }
- inline std::vector<___2090::___2980> getPartitionsForIndexPlane(IJKPlanes_e whichPlane, ___2718 planeIndex) const
- {
- if (m_numPartitions == 1)
- {
- return std::vector<___2090::___2980>(1, 0);
- }
- else
- {
- ___1844 planeMin(0, 0, 0);
- ___1844 planeMax(getZoneIJK() - 1);
- switch (whichPlane)
- {
- case ___1867:
- planeMin.setI(planeIndex);
- planeMax.setI(planeIndex);
- break;
- case ___1872:
- planeMin.setJ(planeIndex);
- planeMax.setJ(planeIndex);
- break;
- case ___1874:
- planeMin.___3497(planeIndex);
- planeMax.___3497(planeIndex);
- break;
- default:
- ___478(___1305);
- break;
- }
- ___1853 ___2478(planeMin.i(), planeMin.___2105(), planeMin.___2134());
- ___1853 ___2372(planeMax.i(), planeMax.___2105(), planeMax.___2134());
- std::vector<___1864> ___2099;
- m_partitionTree.query(boost::geometry::index::intersects(___1855(___2478, ___2372)), std::back_inserter(___2099));
- std::vector<___2090::___2980> ___3358;
- ___3358.reserve(___2099.size());
- for (std::vector<___1864>::const_iterator it = ___2099.begin(); it != ___2099.end(); ++it)
- ___3358.push_back(it->second);
- std::sort(___3358.begin(), ___3358.end());
- return ___3358;
- }
- }
- inline std::vector<___2090::___2980> getPartitionsForIndexLine(IJKLines_e whichLine, ___2718 mIndex, ___2718 nIndex) const
- {
- if (m_numPartitions == 1)
- {
- return std::vector<___2090::___2980>(1, 0);
- }
- else
- {
- ___1844 lineMin(0, 0, 0);
- ___1844 lineMax(getZoneIJK() - 1);
- switch (whichLine)
- {
- case ___1857:
- lineMin.setJ(mIndex);
- lineMin.___3497(nIndex);
- lineMax.setJ(mIndex);
- lineMax.___3497(nIndex);
- break;
- case ___1859:
- lineMin.setI(mIndex);
- lineMin.___3497(nIndex);
- lineMax.setI(mIndex);
- lineMax.___3497(nIndex);
- break;
- case ___1860:
- lineMin.setI(mIndex);
- lineMin.setJ(nIndex);
- lineMax.setI(mIndex);
- lineMax.setJ(nIndex);
- break;
- default:
- ___478(___1305);
- break;
- }
- ___1853 ___2478(lineMin.i(), lineMin.___2105(), lineMin.___2134());
- ___1853 ___2372(lineMax.i(), lineMax.___2105(), lineMax.___2134());
- std::vector<___1864> ___2099;
- m_partitionTree.query(boost::geometry::index::intersects(___1855(___2478, ___2372)), std::back_inserter(___2099));
- std::vector<___2090::___2980> ___3358;
- ___3358.reserve(___2099.size());
- for (std::vector<___1864>::const_iterator it = ___2099.begin(); it != ___2099.end(); ++it)
- ___3358.push_back(it->second);
- std::sort(___3358.begin(), ___3358.end());
- return ___3358;
- }
- }
- inline bool ijkPartitionMetadataIsLoaded(___2090::___2980 ___2977) const { return ___2977 < m_ijkZoneInfos.size() && m_ijkZoneInfos[___2977].___2067(); }
- inline ___2090 cellAddressAtIJKPaddedCellIndex(___465 paddedCellIndex) const
- {
- REQUIRE(paddedCellIndex < getZoneIJK().getNumPaddedCells());
- ___2090 ___451;
- if (getNumPartitions() == 1)
- {
- ___451 = m_ijkZoneInfos[0].cellAddressAtPaddedCellIndex(paddedCellIndex);
- }
- else
- {
- ___1844 const ___4632 = getZoneIJK().ijkAtOffset(paddedCellIndex);
- ___2090::___2980 const ___2977 = getPartitionForIJK(___4632);
- ___478(ijkPartitionMetadataIsLoaded(___2977));
- ___1844 partitionIJK = ___4632 - m_ptnNodeMinIJKs[___2977];
- if (partitionIJK.i() == m_ijkZoneInfos[___2977].___2895().i() - 1)
- partitionIJK.setI(partitionIJK.i() - 1);
- if (partitionIJK.___2105() == m_ijkZoneInfos[___2977].___2895().___2105() - 1)
- partitionIJK.setJ(partitionIJK.___2105() - 1);
- ___451 = m_ijkZoneInfos[___2977].cellAddressAtCellIJK(partitionIJK);
- ENSURE(___451.___2977() == ___2977);
- }
- return ___451;
- }
- inline ___2090 nodeAddressAtIJKNodeIndex(___2718 ___2716) const
- {
- ___2090 nodeAddress;
- if (getNumPartitions() == 1)
- {
- nodeAddress = m_ijkZoneInfos[0].nodeAddressAtNodeIndex(___2716);
- }
- else
- {
- ___1844 const ___4632 = getZoneIJK().ijkAtOffset(___2716);
- ___2090::___2980 const ___2977 = getPartitionForIJK(___4632);
- ___478(ijkPartitionMetadataIsLoaded(___2977));
- ___1844 const partitionIJK = ___4632 - m_ptnNodeMinIJKs[___2977];
- nodeAddress = m_ijkZoneInfos[___2977].nodeAddressAtNodeIJK(partitionIJK);
- ENSURE(nodeAddress.___2977() == ___2977);
- }
- return nodeAddress;
- }
- inline void findPartitionContainingIndex(___81 &ptnItemIndex, ___2090::___2980 &___2977, ___2240<___81> const &ptnNumItems) const
- {
- ___2090::___2980 numPartitions = getNumPartitions();
- if (numPartitions > 1)
- {
- while (true)
- {
- ___2718 const numPtnItems = ptnNumItems[___2977];
- if (ptnItemIndex < numPtnItems)
- break;
- ptnItemIndex -= numPtnItems;
- ++___2977;
- ___478(___2977 < numPartitions);
- }
- }
- }
- inline ___2090 itemAddressAtFEIndex(___81 itemIndex, ___2240<___81> const &ptnNumItems) const
- {
- ___81 ptnItemIndex = itemIndex;
- ___2090::___2980 ___2977 = 0;
- findPartitionContainingIndex(ptnItemIndex, ___2977, ptnNumItems);
- ___2090::SubzoneOffset_t const ___2763 = ___2090::SubzoneOffset_t(ptnItemIndex >> ___2090::ItemOffsetBitSize);
- ___2090::ItemOffset_t const itemOffset = ___2090::ItemOffset_t(ptnItemIndex & ___2090::MAX_ITEM_OFFSET);
- return ___2090(___2977, ___2763, itemOffset);
- }
- inline ___81 indexAtFEItemAddress(___2090 ___2089, ___2240<___81> const &ptnNumItems) const
- {
- ___81 itemIndex = (___81(___2089.subzoneOffset()) << ___2090::ItemOffsetBitSize) | ___2089.itemOffset();
- ___2090::___2980 ___2977 = ___2089.___2977();
- while (___2977 > 0)
- {
- --___2977;
- itemIndex += ptnNumItems[___2977];
- }
- return itemIndex;
- }
- ___2090 cellAddressAtFECellIndex(___465 zoneCellIndex) const
- {
- REQUIRE(zoneCellIndex < ___1766());
- return itemAddressAtFEIndex(zoneCellIndex, m_ptnNumCells);
- }
- ___465 cellIndexAtFECellAddress(___2090 ___451) const
- {
- REQUIRE(VALID_ITEM_ADDRESS(___451));
- return indexAtFEItemAddress(___451, m_ptnNumCells);
- }
- ___2090 nodeAddressAtFENodeIndex(___2718 zoneNodeIndex) const
- {
- REQUIRE(zoneNodeIndex < ___1768());
- return itemAddressAtFEIndex(zoneNodeIndex, m_ptnNumNodes);
- }
- ___2718 nodeIndexAtFENodeAddress(___2090 nodeAddress) const
- {
- REQUIRE(m_isSZL);
- REQUIRE(VALID_ITEM_ADDRESS(nodeAddress));
- return indexAtFEItemAddress(nodeAddress, m_ptnNumNodes);
- }
- ___465 paddedCellIndexAtIJKCellAddress(___2090 ___451) const
- {
- ___465 paddedCellIndex;
- if (getNumPartitions() == 1)
- {
- paddedCellIndex = m_ijkZoneInfos[0].paddedCellIndexAtCellAddress(___451);
- }
- else
- {
- ___2090::___2980 const ___2977 = ___451.___2977();
- ___478(ijkPartitionMetadataIsLoaded(___2977));
- ___1844 const cellIJK = m_ptnNodeMinIJKs[___2977] + m_ijkZoneInfos[___2977].cellIJKAtCellAddress(___451);
- paddedCellIndex = getZoneIJK().offsetAtIJK(cellIJK);
- }
- ENSURE(paddedCellIndex < getZoneIJK().getNumPaddedCells());
- return paddedCellIndex;
- }
- ___2718 nodeIndexAtIJKNodeAddress(___2090 nodeAddress) const
- {
- REQUIRE(getZoneType() == ___4704);
- ___2718 ___2716;
- if (getNumPartitions() == 1)
- {
- ___2716 = m_ijkZoneInfos[0].nodeIndexAtNodeAddress(nodeAddress);
- }
- else
- {
- ___2090::___2980 const ___2977 = nodeAddress.___2977();
- ___478(ijkPartitionMetadataIsLoaded(___2977));
- ___1844 const nodeIJK = m_ptnNodeMinIJKs[___2977] + m_ijkZoneInfos[___2977].nodeIJKAtNodeAddress(nodeAddress);
- ___2716 = getZoneIJK().offsetAtIJK(nodeIJK);
- }
- ENSURE(___2716 < ___1768());
- return ___2716;
- }
- ___465 getNumIJKFaceNeighbors(___2090 ___451, FaceIndex_t ___457) const
- {
- REQUIRE(m_isSZL);
- REQUIRE(___457 < NUM_IJK_CELL_FACES);
- ___2090::___2980 const ___2977 = ___451.___2977();
- ___478(ijkPartitionMetadataIsLoaded(___2977));
- return m_ijkZoneInfos[___2977].getNumIJKFaceNeighbors(___451, ___457);
- }
- void getIJKFaceNeighbor(___2090 ___451, FaceIndex_t ___457, ___465 neighborOffset, ___2090 &fnCoord, ___4636 &fnZone) const
- {
- REQUIRE(___451.isSzlItem());
- REQUIRE(m_isSZL);
- REQUIRE(___457 < NUM_IJK_CELL_FACES);
- REQUIRE(neighborOffset < getNumIJKFaceNeighbors(___451, ___457));
- ___2090::___2980 const ___2977 = ___451.___2977();
- ___478(ijkPartitionMetadataIsLoaded(___2977));
- m_ijkZoneInfos[___2977].getIJKFaceNeighbor(___451, ___457, neighborOffset, fnCoord, fnZone);
- if (fnCoord == ___2090(___2749) && getNumPartitions() > 1)
- {
- ___1844 neighborCellIJK = m_ijkZoneInfos[___2977].cellIJKAtCellAddress(___451) + m_ptnNodeMinIJKs[___2977] + ___1881::ijkFaceNeighborOffset[___457];
- if (0 <= neighborCellIJK && neighborCellIJK < getZoneIJK())
- {
- ___2090::___2980 neighborPartition = getPartitionForIJK(neighborCellIJK);
- neighborCellIJK -= m_ptnNodeMinIJKs[neighborPartition];
- if (neighborCellIJK <= m_ijkZoneInfos[neighborPartition].___2198())
- fnCoord = m_ijkZoneInfos[neighborPartition].cellAddressAtCellIJK(neighborCellIJK);
- }
- }
- }
- void getIJKFaceNeighbors(___2090 ___451, FaceIndex_t ___457, ___3269<___2090> &cellNeighbors, ___3269<___4636> &zoneNeighbors, bool &isFaceCompletelyObscured) const
- {
- REQUIRE(VALID_ITEM_ADDRESS(___451));
- REQUIRE(___457 < NUM_IJK_CELL_FACES);
- REQUIRE(cellNeighbors.empty());
- REQUIRE(zoneNeighbors.empty());
- ___2090 szlCellAddr;
- bool const isCellAddressUniform = ___451.___2065();
- if (isCellAddressUniform)
- {
- ___465 const paddedCellIndex = ___465(___451.___4258());
- szlCellAddr = cellAddressAtIJKPaddedCellIndex(paddedCellIndex);
- }
- else
- {
- szlCellAddr = ___451;
- }
- ___465 const numNeighbors = getNumIJKFaceNeighbors(szlCellAddr, ___457);
- ___478(numNeighbors != 0);
- isFaceCompletelyObscured = true;
- cellNeighbors.reserve(numNeighbors);
- cellNeighbors.___3503(numNeighbors);
- zoneNeighbors.reserve(numNeighbors);
- zoneNeighbors.___3503(numNeighbors);
- for (___465 n = 0; n < numNeighbors; ++n)
- {
- ___2090 fnCoord;
- ___4636 fnZone;
- getIJKFaceNeighbor(szlCellAddr, ___457, n, fnCoord, fnZone);
- if (fnCoord.___2065() && fnCoord.___4258() == ___2749)
- {
- ___478(fnZone == ___2750);
- cellNeighbors[n] = ___2090(___2749);
- zoneNeighbors[n] = ___2750;
- }
- else if (isCellAddressUniform)
- {
- cellNeighbors[n] = ___2090(paddedCellIndexAtIJKCellAddress(fnCoord));
- zoneNeighbors[n] = fnZone;
- }
- else
- {
- cellNeighbors[n] = fnCoord;
- zoneNeighbors[n] = fnZone;
- }
- }
- ENSURE(!cellNeighbors.empty());
- ENSURE(cellNeighbors.size() == zoneNeighbors.size());
- }
- };
- }
- }
|