143 ConstBlockDataID flagFieldID, FlagUID boundaryFlagUID,
144 FlagUID domainFlagUID) {
145 for (
auto blockIt = blocks->begin(); blockIt != blocks->end(); ++blockIt)
146 fillFromFlagField<FlagField_T>(&*blockIt, flagFieldID, boundaryFlagUID,
152 FlagUID boundaryFlagUID, FlagUID domainFlagUID) {
158 auto *flagField =
block->getData<FlagField_T>(flagFieldID);
160 assert(flagField->flagExists(boundaryFlagUID) and
161 flagField->flagExists(domainFlagUID));
163 auto boundaryFlag = flagField->getFlag(boundaryFlagUID);
164 auto domainFlag = flagField->getFlag(domainFlagUID);
166 auto inner = flagField->xyzSize();
167 inner.expand(cell_idx_t(-1));
169 indexVectorAll.clear();
170 indexVectorInner.clear();
171 indexVectorOuter.clear();
173 auto flagWithGLayers = flagField->xyzSizeWithGhostLayer();
174 for (
auto it = flagField->beginWithGhostLayerXYZ(); it != flagField->end();
177 if (!isFlagSet(it, boundaryFlag))
179 if (flagWithGLayers.contains(it.x() + cell_idx_c(0),
180 it.y() + cell_idx_c(0),
181 it.z() + cell_idx_c(0)) &&
182 isFlagSet(it.neighbor(0, 0, 0, 0), domainFlag)) {
184 auto element =
IndexInfo(it.x(), it.y(), it.z(), 0);
186 indexVectorAll.push_back(element);
187 if (
inner.contains(it.x(), it.y(), it.z()))
188 indexVectorInner.push_back(element);
190 indexVectorOuter.push_back(element);