mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
fixed: avoid vector<bool> in fvbasediscretization
writes to vector<bool> is not thread safe
This commit is contained in:
parent
23b9e36331
commit
77eccfd869
@ -730,7 +730,7 @@ public:
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
intensiveQuantityCache_[timeIdx][globalIdx] = intQuants;
|
intensiveQuantityCache_[timeIdx][globalIdx] = intQuants;
|
||||||
intensiveQuantityCacheUpToDate_[timeIdx][globalIdx] = true;
|
intensiveQuantityCacheUpToDate_[timeIdx][globalIdx] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -747,7 +747,7 @@ public:
|
|||||||
if (!storeIntensiveQuantities())
|
if (!storeIntensiveQuantities())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
intensiveQuantityCacheUpToDate_[timeIdx][globalIdx] = newValue;
|
intensiveQuantityCacheUpToDate_[timeIdx][globalIdx] = newValue ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -760,7 +760,7 @@ public:
|
|||||||
if (storeIntensiveQuantities()) {
|
if (storeIntensiveQuantities()) {
|
||||||
std::fill(intensiveQuantityCacheUpToDate_[timeIdx].begin(),
|
std::fill(intensiveQuantityCacheUpToDate_[timeIdx].begin(),
|
||||||
intensiveQuantityCacheUpToDate_[timeIdx].end(),
|
intensiveQuantityCacheUpToDate_[timeIdx].end(),
|
||||||
/*value=*/false);
|
/*value=*/0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1960,7 +1960,8 @@ protected:
|
|||||||
// cur is the current iterative solution, prev the converged
|
// cur is the current iterative solution, prev the converged
|
||||||
// solution of the previous time step
|
// solution of the previous time step
|
||||||
mutable IntensiveQuantitiesVector intensiveQuantityCache_[historySize];
|
mutable IntensiveQuantitiesVector intensiveQuantityCache_[historySize];
|
||||||
mutable std::vector<bool> intensiveQuantityCacheUpToDate_[historySize];
|
// while these are logically bools, concurrent writes to vector<bool> are not thread safe.
|
||||||
|
mutable std::vector<unsigned char> intensiveQuantityCacheUpToDate_[historySize];
|
||||||
|
|
||||||
DiscreteFunctionSpace space_;
|
DiscreteFunctionSpace space_;
|
||||||
mutable std::array< std::unique_ptr< DiscreteFunction >, historySize > solution_;
|
mutable std::array< std::unique_ptr< DiscreteFunction >, historySize > solution_;
|
||||||
|
Loading…
Reference in New Issue
Block a user