56 dccrg::Dccrg<spatial_cell::SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
57 const vector<CellID>& cellsToAdjust,
61 const size_t n_cells = cellsToAdjust.size();
70 #pragma omp for schedule(dynamic)
71 for (
size_t i=0;
i < n_cells; ++
i) {
72 Real density_pre_adjust=0.0;
73 Real density_post_adjust=0.0;
74 CellID cell_id=cellsToAdjust[
i];
76 vector<SpatialCell*> neighbor_ptrs;
83 std::unordered_set<CellID> uniqueNeighbors;
84 uniqueNeighbors.reserve(neighbors->size());
86 for (
const auto& [neighbor_id, dir] : *neighbors) {
87 if ((neighbor_id != 0) && (neighbor_id != cell_id)) {
88 uniqueNeighbors.insert(neighbor_id);
91 neighbor_ptrs.reserve(uniqueNeighbors.size());
92 for (
const CellID neighbor_id : uniqueNeighbors) {
93 neighbor_ptrs.push_back(mpiGrid[neighbor_id]);
98 density_pre_adjust += cell->
get_data(popID)[
i];
106 density_post_adjust += cell->
get_data(popID)[
i];
108 if (density_post_adjust != 0.0) {
110 cell->
get_data(popID)[
i] *= density_pre_adjust/density_post_adjust;
ObjectWrapper & getObjectWrapper()