50 void adaptionPrepare(
const std::vector<adaption::Info> &adaptionInfo,
bool reference =
true)
override;
51 void adaptionAlter(
const std::vector<adaption::Info> &adaptionInfo,
bool reference =
true,
bool inverseFilled =
false)
override;
58 std::unordered_map<int, std::vector<long>>
getSentMappedIds()
const override;
92 OctantIR(
const Octant &_octant,
long _id,
long _globalId = -1,
int _rank = -1)
109 struct PartitionMapper {
110 std::vector<OctantIR> list_rec_octantIR_before;
111 std::vector<OctantIR> list_rec_octantIR_after;
113 std::unordered_map<int, std::unordered_map<long, OctantIR *>> map_rank_rec_octantIR;
114 std::unordered_map<int, std::unordered_map<long, mapping::Info>> map_rank_inverseMapping;
115 std::unordered_map<int, std::unordered_map<long, mapping::Info>> map_rank_previousMapping;
117 std::vector<OctantIR> list_sent_octantIR;
119 std::vector<uint64_t> partitionFDReference;
120 std::vector<uint64_t> partitionLDReference;
121 std::vector<uint64_t> partitionFDMapped;
122 std::vector<uint64_t> partitionLDMapped;
133 list_rec_octantIR_before.clear();
134 list_rec_octantIR_after.clear();
135 list_sent_octantIR.clear();
136 map_rank_rec_octantIR.clear();
137 map_rank_inverseMapping.clear();
138 map_rank_previousMapping.clear();
139 partitionFDReference.clear();
140 partitionLDReference.clear();
141 partitionFDMapped.clear();
142 partitionLDMapped.clear();
149 list_rec_octantIR_before.clear();
150 list_rec_octantIR_after.clear();
151 list_sent_octantIR.clear();
157 PartitionMapper m_partitionIR;
160 void _mapMeshes(
bool fillInverse)
override;
161 void _mapMeshesSamePartition(
const std::vector<OctantIR> * octantsReference,
const std::vector<OctantIR> * octantsMapped,
162 bool fillInverse,
long *indRef);
164 void _mappingAdaptionReferenceUpdate(
const std::vector<adaption::Info> &adaptionInfo,
bool fillInverse =
false);
165 void _mappingAdaptionMappedUpdate(
const std::vector<adaption::Info> &adaptionInfo);
168 void clearPartitionMappingLists();
170 void _mapMeshPartitioned(
bool fillInverse);
172 bool _recoverPartition();
174 void _communicateInverseMapper(
const std::vector<OctantIR> *octantsIRMapped,
175 const std::unordered_map<long, mapping::Info> &inverseGlobalMapping,
176 std::unordered_map<long, mapping::Info> *inverseLocalMapping);
178 void _communicateInverseMapperBack();
180 void _communicateMappedAdaptionInfo(
const std::vector<adaption::Info> &adaptionInfoMap, std::vector<adaption::Info> *adaptionInfoRef);