51 using Element =
typename GridView::template Codim<0>::Entity;
52 using ElementIterator =
typename GridView::template Codim<0>::Iterator;
64 void invalidateAndUpdateIntensiveQuantities(
unsigned timeIdx)
const
67 this->invalidateIntensiveQuantitiesCache(
timeIdx);
68 OPM_BEGIN_PARALLEL_TRY_CATCH()
75 ElementContext
elemCtx(this->simulator_);
83 OPM_END_PARALLEL_TRY_CATCH(
"InvalideAndUpdateIntensiveQuantities: state error", this->simulator_.vanguard().grid().comm());
86 void invalidateAndUpdateIntensiveQuantitiesOverlap(
unsigned timeIdx)
const
90 OPM_BEGIN_PARALLEL_TRY_CATCH()
95 ElementContext
elemCtx(this->simulator_);
98 if (
elemIt->partitionType() != Dune::OverlapEntity) {
110 elemCtx.updatePrimaryIntensiveQuantities(0);
113 OPM_END_PARALLEL_TRY_CATCH(
"InvalideAndUpdateIntensiveQuantitiesOverlap: state error", this->simulator_.vanguard().grid().comm());
116 template <
class Gr
idSubDomain>
126 ElementContext
elemCtx(this->simulator_);
129 if (
elemIt->partitionType() != Dune::InteriorEntity) {
141 elemCtx.updatePrimaryIntensiveQuantities(0);
157 ParentType::updateFailed();
158 invalidateAndUpdateIntensiveQuantities(0);
162 const IntensiveQuantities& intensiveQuantities(
unsigned globalIdx,
unsigned timeIdx)
const
164 if (!this->enableIntensiveQuantityCache_) {
166 "Run without intensive quantites not enabled: Use --enable-intensive-quantity=true");
168 const auto*
intquant = this->cachedIntensiveQuantities(globalIdx,
timeIdx);
170 OPM_THROW(std::logic_error,
"Intensive quantites need to be updated in code");
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:242
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition propertysystem.hh:235