97 for (
const auto&
reg : rmap_.activeRegions()) {
98 auto&
ra = attr_.attributes(
reg);
100 ra.temperature = 0.0;
104 ra.saltConcentration = 0.0;
115 for (
const auto&
reg : rmap_.activeRegions()) {
120 ElementContext elemCtx( simulator );
121 const auto& gridView = simulator.
gridView();
122 const auto& comm = gridView.comm();
124 OPM_BEGIN_PARALLEL_TRY_CATCH();
125 for (
const auto&
elem :
elements(gridView, Dune::Partitions::interior)) {
126 elemCtx.updatePrimaryStencil(
elem);
127 elemCtx.updatePrimaryIntensiveQuantities(0);
128 const unsigned cellIdx = elemCtx.globalSpaceIndex(0, 0);
129 const auto& intQuants = elemCtx.intensiveQuantities(0, 0);
130 const auto& fs = intQuants.fluidState();
134 * intQuants.porosity().value();
138 if (FluidSystem::phaseIsActive(FluidSystem::waterPhaseIdx)) {
139 hydrocarbon -= fs.saturation(FluidSystem::waterPhaseIdx).value();
150 if (FluidSystem::phaseIsActive(FluidSystem::oilPhaseIdx) && FluidSystem::phaseIsActive(FluidSystem::gasPhaseIdx)) {
154 if (FluidSystem::phaseIsActive(FluidSystem::oilPhaseIdx)) {
156 attr.temperature += fs.temperature(FluidSystem::oilPhaseIdx).value() *
hydrocarbonPV;
158 assert(FluidSystem::phaseIsActive(FluidSystem::gasPhaseIdx));
160 attr.temperature += fs.temperature(FluidSystem::gasPhaseIdx).value() *
hydrocarbonPV;
163 if (FluidSystem::enableDissolvedGasInWater()) {
166 if (FluidSystem::enableVaporizedWater()) {
174 if (FluidSystem::phaseIsActive(FluidSystem::oilPhaseIdx) && FluidSystem::phaseIsActive(FluidSystem::gasPhaseIdx)) {
178 if (FluidSystem::phaseIsActive(FluidSystem::oilPhaseIdx)) {
179 attr.pressure += fs.pressure(FluidSystem::oilPhaseIdx).value() *
pv_cell;
180 attr.temperature += fs.temperature(FluidSystem::oilPhaseIdx).value() *
pv_cell;
181 }
else if (FluidSystem::phaseIsActive(FluidSystem::gasPhaseIdx)) {
182 attr.pressure += fs.pressure(FluidSystem::gasPhaseIdx).value() *
pv_cell;
183 attr.temperature += fs.temperature(FluidSystem::gasPhaseIdx).value() *
pv_cell;
185 assert(FluidSystem::phaseIsActive(FluidSystem::waterPhaseIdx));
186 attr.pressure += fs.pressure(FluidSystem::waterPhaseIdx).value() *
pv_cell;
187 attr.temperature += fs.temperature(FluidSystem::waterPhaseIdx).value() *
pv_cell;
189 attr.saltConcentration += fs.saltConcentration().value() *
pv_cell;
190 if (FluidSystem::enableDissolvedGasInWater()) {
193 if (FluidSystem::enableVaporizedWater()) {
199 OPM_END_PARALLEL_TRY_CATCH(
"SurfaceToReservoirVoidage::defineState() failed: ", simulator.
vanguard().grid().comm());