GenericOutputBlackoilModule.hpp
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3/*
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 2 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18 Consult the COPYING file in the top-level source directory of this
19 module for the precise wording of the license and the list of
20 copyright holders.
21*/
26#ifndef OPM_GENERIC_OUTPUT_BLACK_OIL_MODULE_HPP
27#define OPM_GENERIC_OUTPUT_BLACK_OIL_MODULE_HPP
28
29#include <opm/input/eclipse/EclipseState/Grid/FaceDir.hpp>
30#include <opm/input/eclipse/EclipseState/SummaryConfig/SummaryConfig.hpp>
31
32#include <opm/output/data/Wells.hpp>
33#include <opm/output/eclipse/Inplace.hpp>
34
48
50
51#include <array>
52#include <cstddef>
53#include <functional>
54#include <map>
55#include <optional>
56#include <tuple>
57#include <unordered_map>
58#include <utility>
59#include <vector>
60
61namespace Opm::Parameters {
62
63struct ForceDisableFluidInPlaceOutput { static constexpr bool value = false; };
64struct ForceDisableResvFluidInPlaceOutput { static constexpr bool value = false; };
65
66} // namespace Opm::Parameters
67
68namespace Opm {
69
70namespace data { class Solution; }
71class EclHysteresisConfig;
72class EclipseGrid;
73class EclipseState;
74class Schedule;
75class SummaryConfig;
76class SummaryConfigNode;
77class SummaryState;
78
79template<class FluidSystem>
81public:
82 using Scalar = typename FluidSystem::Scalar;
83
84 // Virtual destructor for safer inheritance.
86
90 static void registerParameters();
91
92 void outputTimeStamp(const std::string& lbl,
93 double elapsed,
94 int rstep,
95 boost::posix_time::ptime currentDate);
96
100
104
105 // write cumulative production and injection reports to output
106 void outputCumLog(std::size_t reportStepNum,
107 const bool connData);
108
109 // write production report to output
110 void outputProdLog(std::size_t reportStepNum,
111 const bool connData);
112
113 // write injection report to output
114 void outputInjLog(std::size_t reportStepNum,
115 const bool connData);
116
117 // write msw report to output
118 void outputMSWLog(std::size_t reportStepNum);
119
120 // calculate Initial Fluid In Place
122
123 // calculate Fluid In Place
124 Inplace calc_inplace(std::map<std::string, double>& miscSummaryData,
125 std::map<std::string, std::vector<double>>& regionData,
126 const Parallel::Communication& comm);
127
148 void outputWellspecReport(const std::vector<std::string>& changedWells,
149 const bool changedWellLists,
150 const std::size_t reportStepNum,
151 const double elapsed,
152 boost::posix_time::ptime currentDate) const;
153
155
156 void addRftDataToWells(data::Wells& wellDatas,
157 std::size_t reportStepNum,
158 const Parallel::Communication& comm)
159 { this->rftC_.addToWells(wellDatas, reportStepNum, comm); }
160
164 void assignToSolution(data::Solution& sol);
165
166 void setRestart(const data::Solution& sol,
167 unsigned elemIdx,
168 unsigned globalDofIndex);
169
170 Scalar getSolventSaturation(unsigned elemIdx) const
171 {
172 if (sSol_.size() > elemIdx)
173 return sSol_[elemIdx];
174
175 return 0;
176 }
177
178 Scalar getSolventRsw(unsigned elemIdx) const
179 {
180 if (rswSol_.size() > elemIdx)
181 return rswSol_[elemIdx];
182
183 return 0;
184 }
185
186 Scalar getPolymerConcentration(unsigned elemIdx) const
187 {
188 if (cPolymer_.size() > elemIdx)
189 return cPolymer_[elemIdx];
190
191 return 0;
192 }
193
194 Scalar getFoamConcentration(unsigned elemIdx) const
195 {
196 if (cFoam_.size() > elemIdx)
197 return cFoam_[elemIdx];
198
199 return 0;
200 }
201
202 Scalar getSaltConcentration(unsigned elemIdx) const
203 {
204 if (cSalt_.size() > elemIdx)
205 return cSalt_[elemIdx];
206
207 return 0;
208 }
209
210 Scalar getSaltSaturation(unsigned elemIdx) const
211 {
212 if (pSalt_.size() > elemIdx)
213 return pSalt_[elemIdx];
214
215 return 0;
216 }
217
218 Scalar getPermFactor(unsigned elemIdx) const
219 {
220 if (permFact_.size() > elemIdx)
221 return permFact_[elemIdx];
222
223 return 0;
224 }
225
226 const std::vector<Scalar>& getFluidPressure() const
227 { return fluidPressure_; }
228
230 { return this->bioeffectsC_; }
231
233 { return this->CO2H2C_; }
234
236 { return this->flowsC_; }
237
238 bool needInterfaceFluxes([[maybe_unused]] const bool isSubStep) const
239 {
241 }
242
243 const std::map<std::pair<std::string, int>, double>& getBlockData()
244 {
245 return blockData_;
246 }
247
248 std::map<std::pair<std::string, int>, double>& getExtraBlockData()
249 {
250 return extraBlockData_;
251 }
252
253 // Per-LGR-cell block-summary results. Cell identity is the
254 // (keyword, grid level, level-local linearised Cartesian cell index)
255 // tuple — the same identity data::Connection carries as
256 // (lgr_grid, index) for LC* connection vectors. Empty for runs
257 // without LB* summary requests.
258 const std::map<std::tuple<std::string, int, int>, double>& getLgrBlockData() const
259 {
260 return lgrBlockData_;
261 }
262
263 const Inplace* initialInplace() const
264 {
265 return this->initialInplace_.has_value()
266 ? &*this->initialInplace_
267 : nullptr;
268 }
269
270 bool localDataValid() const{
271 return local_data_valid_;
272 }
273
275 local_data_valid_ = false;
276 }
277
279 local_data_valid_ = true;
280 }
281
282 template<class Serializer>
283 void serializeOp(Serializer& serializer)
284 {
285 serializer(initialInplace_);
286 }
287
289 { return this->rst_conv_; }
290
291 const RSTConv& getConv() const
292 { return this->rst_conv_; }
293
298 void assignGlobalFieldsToSolution(data::Solution& sol);
299
300protected:
301 using ScalarBuffer = std::vector<Scalar>;
302 using StringBuffer = std::vector<std::string>;
303 enum { numPhases = FluidSystem::numPhases };
304 enum { numComponents = FluidSystem::numComponents };
305 static constexpr int gasPhaseIdx = FluidSystem::gasPhaseIdx;
306 static constexpr int oilPhaseIdx = FluidSystem::oilPhaseIdx;
307 static constexpr int waterPhaseIdx = FluidSystem::waterPhaseIdx;
308 enum { gasCompIdx = FluidSystem::gasCompIdx };
309 enum { oilCompIdx = FluidSystem::oilCompIdx };
310 enum { waterCompIdx = FluidSystem::waterCompIdx };
311 using Dir = FaceDir::DirEnum;
312
313 GenericOutputBlackoilModule(const EclipseState& eclState,
314 const Schedule& schedule,
315 const SummaryConfig& summaryConfig,
316 const SummaryState& summaryState,
317 const std::string& moduleVersionName,
319 std::function<bool(const unsigned)> isInterior,
320 const Parallel::Communication& comm,
321 bool enableEnergy,
322 bool constantTemperature,
323 bool enableMech,
324 bool enableSolvent,
325 bool enablePolymer,
326 bool enableFoam,
327 bool enableBrine,
328 bool enableSaltPrecipitation,
329 bool enableExtbo,
330 bool enableBioeffects,
331 bool enableGeochemistry);
332
333 void doAllocBuffers(unsigned bufferSize,
334 unsigned reportStepNum,
335 const bool substep,
336 const bool log,
337 const bool isRestart,
338 const EclHysteresisConfig* hysteresisConfig,
339 unsigned numOutputNnc = 0,
340 std::map<std::string, int> rstKeywords = {});
341
342 void makeRegionSum(Inplace& inplace,
343 const std::string& region_name,
344 const Parallel::Communication& comm) const;
345
347
348 void updateSummaryRegionValues(const Inplace& inplace,
349 std::map<std::string, double>& miscSummaryData,
350 std::map<std::string, std::vector<double>>& regionData) const;
351
352 static bool isOutputCreationDirective_(const std::string& keyword);
353
354 // Sum Fip values over regions.
355 static ScalarBuffer regionSum(const ScalarBuffer& property,
356 const std::vector<int>& regionId,
357 const std::size_t maxNumberOfRegions,
358 const Parallel::Communication& comm);
359
360 static int regionMax(const std::vector<int>& region,
361 const Parallel::Communication& comm);
362
363 static void update(Inplace& inplace,
364 const std::string& region_name,
365 const Inplace::Phase phase,
366 const std::size_t ntFip,
367 const ScalarBuffer& values);
368
369 static Scalar sum(const ScalarBuffer& v);
370
371 void setupBlockData(std::function<bool(int)> isCartIdxOnThisRank);
372 void setupExtraBlockData(const std::size_t reportStepNum,
373 std::function<bool(int)> isCartIdxOnThisRank);
374
375 // Allocate lgrBlockData_ slots for every Block-category summary node
376 // that names an LGR cell. The level component of the key is resolved
377 // through EclipseGrid::get_lgr_cell_index (the same call data::Connection
378 // uses for lgr_grid on LC* connection vectors); the level-local
379 // linearised Cartesian index is recovered from node.number - 1.
380 //
381 // No rank check here — ownership for LGR leaf cells is decided in the
382 // walk via Dune::InteriorEntity on the leaf entity; the existing
383 // isCartIdxOnThisRank predicate operates in the global Cartesian space,
384 // which LGR cells do not inhabit.
385 //
386 // Caller-supplied via parameter rather than read from a member to keep
387 // this module decoupled from EclipseState ownership (matching how the
388 // existing block path receives its rank predicate as an argument).
389 void setupLgrBlockData(const std::map<std::string, int>& lgrNameToLevel,
390 const std::function<bool(int, int)>& isLgrCellOnThisRank);
391
392 virtual bool isDefunctParallelWell(const std::string& wname) const = 0;
393 virtual bool isOwnedByCurrentRank(const std::string& wname) const = 0;
394 virtual bool isOnCurrentRank(const std::string& wname) const = 0;
395
396 const EclipseState& eclState_;
397 const Schedule& schedule_;
398 const SummaryState& summaryState_;
399
400 SummaryConfig summaryConfig_;
401
404
405 bool enableEnergy_{false};
407 bool enableMech_{false};
408
409 bool enableSolvent_{false};
410 bool enablePolymer_{false};
411 bool enableFoam_{false};
412 bool enableBrine_{false};
414 bool enableExtbo_{false};
415 bool enableBioeffects_{false};
417
420 bool computeFip_{false};
421
423 std::unordered_map<std::string, std::vector<int>> regions_;
424 std::unordered_map<Inplace::Phase, std::vector<SummaryConfigNode>> regionNodes_;
425
426 std::vector<SummaryConfigNode> RPRNodes_;
427 std::vector<SummaryConfigNode> RPRPNodes_;
428
429 std::vector<int> failedCellsPb_;
430 std::vector<int> failedCellsPd_;
431
477
478 // buffers for mechanical output
480
481 std::array<ScalarBuffer, numPhases> saturation_;
482 std::array<ScalarBuffer, numPhases> invB_;
483 std::array<ScalarBuffer, numPhases> density_;
484 std::array<ScalarBuffer, numPhases> viscosity_;
485 std::array<ScalarBuffer, numPhases> relativePermeability_;
486
488
490
491 std::array<ScalarBuffer, numPhases> residual_;
492
494
497
498 std::map<std::pair<std::string, int>, double> blockData_;
499 // Extra block data required for non-summary output reasons
500 // Example is the block pressures for RPTSCHED WELLS=2
501 std::map<std::pair<std::string, int>, double> extraBlockData_;
502
503 // Per-LGR-cell block-summary results. Keyed by (keyword, grid level,
504 // level-local linearised Cartesian cell index). The map type matches
505 // Summary::DynamicSimulatorState::LgrBlockValues so the writer can hand
506 // a pointer to this member directly to the summary engine. Empty for
507 // runs that request no LB* summary vectors (zero non-LGR cost).
508 std::map<std::tuple<std::string, int, int>, double> lgrBlockData_;
509
510 std::optional<Inplace> initialInplace_;
511 bool local_data_valid_{false};
512
513 std::optional<RegionPhasePoreVolAverage> regionAvgDensity_;
514};
515
516} // namespace Opm
517
518#endif // OPM_GENERIC_OUTPUT_BLACK_OIL_MODULE_HPP
Definition: BioeffectsContainer.hpp:38
Definition: CO2H2Container.hpp:38
Definition: ExtboContainer.hpp:37
Definition: FIPContainer.hpp:47
Definition: FlowsContainer.hpp:44
Definition: GenericOutputBlackoilModule.hpp:80
std::map< std::pair< std::string, int >, double > blockData_
Definition: GenericOutputBlackoilModule.hpp:498
std::array< ScalarBuffer, numPhases > relativePermeability_
Definition: GenericOutputBlackoilModule.hpp:485
const RSTConv & getConv() const
Definition: GenericOutputBlackoilModule.hpp:291
const Inplace * initialInplace() const
Definition: GenericOutputBlackoilModule.hpp:263
ScalarBuffer fluidPressure_
Definition: GenericOutputBlackoilModule.hpp:438
std::array< ScalarBuffer, numPhases > density_
Definition: GenericOutputBlackoilModule.hpp:483
void invalidateLocalData()
Definition: GenericOutputBlackoilModule.hpp:274
void assignGlobalFieldsToSolution(data::Solution &sol)
Assign fields that are in global numbering to the solution. \detail This is used to add fields that f...
ScalarBuffer saturatedOilFormationVolumeFactor_
Definition: GenericOutputBlackoilModule.hpp:470
bool enableFoam_
Definition: GenericOutputBlackoilModule.hpp:411
ScalarBuffer overburdenPressure_
Definition: GenericOutputBlackoilModule.hpp:444
ScalarBuffer gasDissolutionFactorInWater_
Definition: GenericOutputBlackoilModule.hpp:464
Scalar getFoamConcentration(unsigned elemIdx) const
Definition: GenericOutputBlackoilModule.hpp:194
bool enableMech_
Definition: GenericOutputBlackoilModule.hpp:407
const EclipseState & eclState_
Definition: GenericOutputBlackoilModule.hpp:396
static constexpr int gasPhaseIdx
Definition: GenericOutputBlackoilModule.hpp:305
ScalarBuffer swmin_
Definition: GenericOutputBlackoilModule.hpp:460
bool enableGeochemistry_
Definition: GenericOutputBlackoilModule.hpp:416
ScalarBuffer rockCompPorvMultiplier_
Definition: GenericOutputBlackoilModule.hpp:468
Scalar getSolventRsw(unsigned elemIdx) const
Definition: GenericOutputBlackoilModule.hpp:178
static int regionMax(const std::vector< int > &region, const Parallel::Communication &comm)
void makeRegionSum(Inplace &inplace, const std::string &region_name, const Parallel::Communication &comm) const
@ oilCompIdx
Definition: GenericOutputBlackoilModule.hpp:309
@ waterCompIdx
Definition: GenericOutputBlackoilModule.hpp:310
Scalar getSaltSaturation(unsigned elemIdx) const
Definition: GenericOutputBlackoilModule.hpp:210
RFTContainer< FluidSystem > rftC_
Definition: GenericOutputBlackoilModule.hpp:495
bool computeFip_
Definition: GenericOutputBlackoilModule.hpp:420
ScalarBuffer dewPointPressure_
Definition: GenericOutputBlackoilModule.hpp:467
LogOutputHelper< Scalar > logOutput_
Definition: GenericOutputBlackoilModule.hpp:403
GeochemistryContainer< Scalar > geochemC_
Definition: GenericOutputBlackoilModule.hpp:487
std::vector< std::string > StringBuffer
Definition: GenericOutputBlackoilModule.hpp:302
bool enableBrine_
Definition: GenericOutputBlackoilModule.hpp:412
void calc_initial_inplace(const Parallel::Communication &comm)
bool forceDisableFipresvOutput_
Definition: GenericOutputBlackoilModule.hpp:419
std::vector< SummaryConfigNode > RPRNodes_
Definition: GenericOutputBlackoilModule.hpp:426
std::vector< int > failedCellsPb_
Definition: GenericOutputBlackoilModule.hpp:429
ScalarBuffer permFact_
Definition: GenericOutputBlackoilModule.hpp:453
ScalarBuffer rsw_
Definition: GenericOutputBlackoilModule.hpp:441
ScalarBuffer pcog_
Definition: GenericOutputBlackoilModule.hpp:476
void outputWellspecReport(const std::vector< std::string > &changedWells, const bool changedWellLists, const std::size_t reportStepNum, const double elapsed, boost::posix_time::ptime currentDate) const
RSTConv rst_conv_
Helper class for RPTRST CONV.
Definition: GenericOutputBlackoilModule.hpp:496
std::optional< RegionPhasePoreVolAverage > regionAvgDensity_
Definition: GenericOutputBlackoilModule.hpp:513
std::array< ScalarBuffer, numPhases > invB_
Definition: GenericOutputBlackoilModule.hpp:482
@ numPhases
Definition: GenericOutputBlackoilModule.hpp:303
ScalarBuffer pSalt_
Definition: GenericOutputBlackoilModule.hpp:452
Scalar getPermFactor(unsigned elemIdx) const
Definition: GenericOutputBlackoilModule.hpp:218
bool enableBioeffects_
Definition: GenericOutputBlackoilModule.hpp:415
static void registerParameters()
Register all run-time parameters for the Vtk output module.
ScalarBuffer cFoam_
Definition: GenericOutputBlackoilModule.hpp:450
void serializeOp(Serializer &serializer)
Definition: GenericOutputBlackoilModule.hpp:283
ScalarBuffer bubblePointPressure_
Definition: GenericOutputBlackoilModule.hpp:466
ScalarBuffer temperature_
Definition: GenericOutputBlackoilModule.hpp:439
void outputCumLog(std::size_t reportStepNum, const bool connData)
bool enableSolvent_
Definition: GenericOutputBlackoilModule.hpp:409
ScalarBuffer ppcw_
Definition: GenericOutputBlackoilModule.hpp:461
std::optional< Inplace > initialInplace_
Definition: GenericOutputBlackoilModule.hpp:510
std::vector< Scalar > ScalarBuffer
Definition: GenericOutputBlackoilModule.hpp:301
static bool isOutputCreationDirective_(const std::string &keyword)
FIPContainer< FluidSystem > fipC_
Definition: GenericOutputBlackoilModule.hpp:422
ScalarBuffer rockCompTransMultiplier_
Definition: GenericOutputBlackoilModule.hpp:471
MechContainer< Scalar > mech_
Definition: GenericOutputBlackoilModule.hpp:479
Inplace calc_inplace(std::map< std::string, double > &miscSummaryData, std::map< std::string, std::vector< double > > &regionData, const Parallel::Communication &comm)
const FlowsContainer< FluidSystem > & getFlows() const
Definition: GenericOutputBlackoilModule.hpp:235
ScalarBuffer dynamicPoreVolume_
Definition: GenericOutputBlackoilModule.hpp:436
typename FluidSystem::Scalar Scalar
Definition: GenericOutputBlackoilModule.hpp:82
FaceDir::DirEnum Dir
Definition: GenericOutputBlackoilModule.hpp:311
ScalarBuffer minimumOilPressure_
Definition: GenericOutputBlackoilModule.hpp:469
bool localDataValid() const
Definition: GenericOutputBlackoilModule.hpp:270
ScalarBuffer gasFormationVolumeFactor_
Definition: GenericOutputBlackoilModule.hpp:432
std::array< ScalarBuffer, numPhases > residual_
Definition: GenericOutputBlackoilModule.hpp:491
void doAllocBuffers(unsigned bufferSize, unsigned reportStepNum, const bool substep, const bool log, const bool isRestart, const EclHysteresisConfig *hysteresisConfig, unsigned numOutputNnc=0, std::map< std::string, int > rstKeywords={})
Scalar getSolventSaturation(unsigned elemIdx) const
Definition: GenericOutputBlackoilModule.hpp:170
Scalar getSaltConcentration(unsigned elemIdx) const
Definition: GenericOutputBlackoilModule.hpp:202
bool local_data_valid_
Definition: GenericOutputBlackoilModule.hpp:511
ScalarBuffer shmax_
Definition: GenericOutputBlackoilModule.hpp:458
BioeffectsContainer< Scalar > bioeffectsC_
Definition: GenericOutputBlackoilModule.hpp:472
const Schedule & schedule_
Definition: GenericOutputBlackoilModule.hpp:397
FlowsContainer< FluidSystem > flowsC_
Definition: GenericOutputBlackoilModule.hpp:493
ExtboContainer< Scalar > extboC_
Definition: GenericOutputBlackoilModule.hpp:454
void setupExtraBlockData(const std::size_t reportStepNum, std::function< bool(int)> isCartIdxOnThisRank)
ScalarBuffer oilSaturationPressure_
Definition: GenericOutputBlackoilModule.hpp:445
InterRegFlowMap interRegionFlows_
Definition: GenericOutputBlackoilModule.hpp:402
RSTConv & getConv()
Definition: GenericOutputBlackoilModule.hpp:288
void outputProdLog(std::size_t reportStepNum, const bool connData)
void addRftDataToWells(data::Wells &wellDatas, std::size_t reportStepNum, const Parallel::Communication &comm)
Definition: GenericOutputBlackoilModule.hpp:156
static ScalarBuffer regionSum(const ScalarBuffer &property, const std::vector< int > &regionId, const std::size_t maxNumberOfRegions, const Parallel::Communication &comm)
ScalarBuffer pcgw_
Definition: GenericOutputBlackoilModule.hpp:474
ScalarBuffer cPolymer_
Definition: GenericOutputBlackoilModule.hpp:449
void outputMSWLog(std::size_t reportStepNum)
const std::map< std::pair< std::string, int >, double > & getBlockData()
Definition: GenericOutputBlackoilModule.hpp:243
const std::vector< Scalar > & getFluidPressure() const
Definition: GenericOutputBlackoilModule.hpp:226
bool constantTemperature_
Definition: GenericOutputBlackoilModule.hpp:406
void setupBlockData(std::function< bool(int)> isCartIdxOnThisRank)
bool enablePolymer_
Definition: GenericOutputBlackoilModule.hpp:410
ScalarBuffer rvw_
Definition: GenericOutputBlackoilModule.hpp:443
std::array< ScalarBuffer, numPhases > saturation_
Definition: GenericOutputBlackoilModule.hpp:481
void outputInjLog(std::size_t reportStepNum, const bool connData)
std::unordered_map< std::string, std::vector< int > > regions_
Definition: GenericOutputBlackoilModule.hpp:423
virtual bool isOnCurrentRank(const std::string &wname) const =0
ScalarBuffer rPorV_
Definition: GenericOutputBlackoilModule.hpp:437
ScalarBuffer oilVaporizationFactor_
Definition: GenericOutputBlackoilModule.hpp:463
std::map< std::pair< std::string, int >, double > & getExtraBlockData()
Definition: GenericOutputBlackoilModule.hpp:248
std::vector< int > failedCellsPd_
Definition: GenericOutputBlackoilModule.hpp:430
Scalar getPolymerConcentration(unsigned elemIdx) const
Definition: GenericOutputBlackoilModule.hpp:186
ScalarBuffer rs_
Definition: GenericOutputBlackoilModule.hpp:440
static constexpr int oilPhaseIdx
Definition: GenericOutputBlackoilModule.hpp:306
bool enableExtbo_
Definition: GenericOutputBlackoilModule.hpp:414
ScalarBuffer drsdtcon_
Definition: GenericOutputBlackoilModule.hpp:446
static constexpr int waterPhaseIdx
Definition: GenericOutputBlackoilModule.hpp:307
GenericOutputBlackoilModule(const EclipseState &eclState, const Schedule &schedule, const SummaryConfig &summaryConfig, const SummaryState &summaryState, const std::string &moduleVersionName, RSTConv::LocalToGlobalCellFunc globalCell, std::function< bool(const unsigned)> isInterior, const Parallel::Communication &comm, bool enableEnergy, bool constantTemperature, bool enableMech, bool enableSolvent, bool enablePolymer, bool enableFoam, bool enableBrine, bool enableSaltPrecipitation, bool enableExtbo, bool enableBioeffects, bool enableGeochemistry)
ScalarBuffer sSol_
Definition: GenericOutputBlackoilModule.hpp:447
std::map< std::pair< std::string, int >, double > extraBlockData_
Definition: GenericOutputBlackoilModule.hpp:501
ScalarBuffer pressureTimesPoreVolume_
Definition: GenericOutputBlackoilModule.hpp:434
ScalarBuffer gasDissolutionFactor_
Definition: GenericOutputBlackoilModule.hpp:462
static void update(Inplace &inplace, const std::string &region_name, const Inplace::Phase phase, const std::size_t ntFip, const ScalarBuffer &values)
void validateLocalData()
Definition: GenericOutputBlackoilModule.hpp:278
@ gasCompIdx
Definition: GenericOutputBlackoilModule.hpp:308
std::unordered_map< Inplace::Phase, std::vector< SummaryConfigNode > > regionNodes_
Definition: GenericOutputBlackoilModule.hpp:424
std::array< ScalarBuffer, numPhases > viscosity_
Definition: GenericOutputBlackoilModule.hpp:484
Inplace accumulateRegionSums(const Parallel::Communication &comm)
const std::map< std::tuple< std::string, int, int >, double > & getLgrBlockData() const
Definition: GenericOutputBlackoilModule.hpp:258
const BioeffectsContainer< Scalar > & getBioeffects() const
Definition: GenericOutputBlackoilModule.hpp:229
bool forceDisableFipOutput_
Definition: GenericOutputBlackoilModule.hpp:418
@ numComponents
Definition: GenericOutputBlackoilModule.hpp:304
void assignToSolution(data::Solution &sol)
Move all buffers to data::Solution.
ScalarBuffer soMax_
Definition: GenericOutputBlackoilModule.hpp:455
ScalarBuffer sgmax_
Definition: GenericOutputBlackoilModule.hpp:457
const SummaryState & summaryState_
Definition: GenericOutputBlackoilModule.hpp:398
ScalarBuffer somin_
Definition: GenericOutputBlackoilModule.hpp:459
ScalarBuffer hydrocarbonPoreVolume_
Definition: GenericOutputBlackoilModule.hpp:433
bool enableSaltPrecipitation_
Definition: GenericOutputBlackoilModule.hpp:413
ScalarBuffer waterVaporizationFactor_
Definition: GenericOutputBlackoilModule.hpp:465
void setRestart(const data::Solution &sol, unsigned elemIdx, unsigned globalDofIndex)
static Scalar sum(const ScalarBuffer &v)
const CO2H2Container< Scalar > & getCO2H2() const
Definition: GenericOutputBlackoilModule.hpp:232
ScalarBuffer cSalt_
Definition: GenericOutputBlackoilModule.hpp:451
void outputTimeStamp(const std::string &lbl, double elapsed, int rstep, boost::posix_time::ptime currentDate)
virtual bool isOwnedByCurrentRank(const std::string &wname) const =0
TracerContainer< FluidSystem > tracerC_
Definition: GenericOutputBlackoilModule.hpp:489
ScalarBuffer rv_
Definition: GenericOutputBlackoilModule.hpp:442
void setupLgrBlockData(const std::map< std::string, int > &lgrNameToLevel, const std::function< bool(int, int)> &isLgrCellOnThisRank)
bool needInterfaceFluxes(const bool isSubStep) const
Definition: GenericOutputBlackoilModule.hpp:238
void outputErrorLog(const Parallel::Communication &comm) const
ScalarBuffer pcow_
Definition: GenericOutputBlackoilModule.hpp:475
SummaryConfig summaryConfig_
Definition: GenericOutputBlackoilModule.hpp:400
virtual bool isDefunctParallelWell(const std::string &wname) const =0
std::vector< SummaryConfigNode > RPRPNodes_
Definition: GenericOutputBlackoilModule.hpp:427
ScalarBuffer swMax_
Definition: GenericOutputBlackoilModule.hpp:456
CO2H2Container< Scalar > CO2H2C_
Definition: GenericOutputBlackoilModule.hpp:473
std::map< std::tuple< std::string, int, int >, double > lgrBlockData_
Definition: GenericOutputBlackoilModule.hpp:508
void updateSummaryRegionValues(const Inplace &inplace, std::map< std::string, double > &miscSummaryData, std::map< std::string, std::vector< double > > &regionData) const
ScalarBuffer pressureTimesHydrocarbonVolume_
Definition: GenericOutputBlackoilModule.hpp:435
ScalarBuffer rswSol_
Definition: GenericOutputBlackoilModule.hpp:448
bool enableEnergy_
Definition: GenericOutputBlackoilModule.hpp:405
Definition: GeochemistryContainer.hpp:36
Inter-region flow accumulation maps for all region definition arrays.
Definition: InterRegFlows.hpp:179
bool wantInterRegflowSummary() const
Definition: InterRegFlows.hpp:282
Definition: LogOutputHelper.hpp:45
Definition: MechContainer.hpp:45
Definition: RFTContainer.hpp:51
Class computing RPTRST CONV output.
Definition: RSTConv.hpp:36
std::function< int(const int)> LocalToGlobalCellFunc
Definition: RSTConv.hpp:38
Definition: TracerContainer.hpp:39
Dune::Communication< MPIComm > Communication
Definition: ParallelCommunication.hpp:30
Definition: blackoilnewtonmethodparams.hpp:31
Phase
Phase indices for reservoir coupling, we currently only support black-oil phases (oil,...
Definition: ReservoirCoupling.hpp:165
Definition: blackoilbioeffectsmodules.hh:45
std::string moduleVersionName()
Definition: GenericOutputBlackoilModule.hpp:63
static constexpr bool value
Definition: GenericOutputBlackoilModule.hpp:63
Definition: GenericOutputBlackoilModule.hpp:64
static constexpr bool value
Definition: GenericOutputBlackoilModule.hpp:64