49 using Scalar =
typename FluidSystem::Scalar;
50 using FIPMap = std::unordered_map<Inplace::Phase, std::vector<Scalar>>;
52 static constexpr auto numPhases = FluidSystem::numPhases;
53 static constexpr auto gasPhaseIdx = FluidSystem::gasPhaseIdx;
54 static constexpr auto oilPhaseIdx = FluidSystem::oilPhaseIdx;
55 static constexpr auto waterPhaseIdx = FluidSystem::waterPhaseIdx;
57 bool allocate(
const std::size_t bufferSize,
58 const SummaryConfig& summaryConfig,
59 const bool forceAlloc,
60 std::map<std::string, int>& rstKeywords);
62 void add(
const Inplace::Phase phase);
76 const std::vector<Scalar>& get(
const Inplace::Phase phase)
const;
78 bool has(
const Inplace::Phase phase)
const;
80 bool hasCo2InGas()
const;
81 void assignCo2InGas(
const unsigned globalDofIdx,
84 bool hasCo2InWater()
const;
85 void assignCo2InWater(
const unsigned globalDofIdx,
86 const Scalar co2InWater,
89 bool hasMicrobialMass()
const;
90 void assignMicrobialMass(
const unsigned globalDofIdx,
91 const Scalar microbialMass);
93 bool hasOxygenMass()
const;
94 void assignOxygenMass(
const unsigned globalDofIdx,
95 const Scalar oxygenMass);
97 bool hasUreaMass()
const;
98 void assignUreaMass(
const unsigned globalDofIdx,
99 const Scalar ureaMass);
101 bool hasBiofilmMass()
const;
102 void assignBiofilmMass(
const unsigned globalDofIdx,
103 const Scalar biofilmMass);
105 bool hasCalciteMass()
const;
106 void assignCalciteMass(
const unsigned globalDofIdx,
107 const Scalar calciteMass);
109 bool hasWaterMass()
const;
110 void assignWaterMass(
const unsigned globalDofIdx,
111 const std::array<Scalar, numPhases>& fip,
114 void assignGasWater(
const unsigned globalDofIdx,
115 const std::array<Scalar, numPhases>& fip,
116 const Scalar gasInPlaceWater,
117 const Scalar waterInPlaceGas);
119 void assignOilGasDistribution(
const unsigned globalDofIdx,
120 const Scalar gasInPlaceLiquid,
121 const Scalar oilInPlaceGas);
123 void assignPoreVolume(
const unsigned globalDofIdx,
126 void assignVolumesSurface(
const unsigned globalDofIdx,
127 const std::array<Scalar, numPhases>& fip);
129 void assignVolumesReservoir(
const unsigned globalDofIdx,
130 const Scalar saltConcentration,
131 const std::array<Scalar, numPhases>& fipr);
133 void outputRestart(data::Solution& sol);
137 std::size_t bufferSize_ = 0;
143 bool noPrefix {
false};
147 bool surface {
false};
151 bool reservoir {
false};
155 this->noPrefix = this->surface = this->reservoir =
false;
158 explicit operator bool()
const
160 return this->noPrefix || this->surface || this->reservoir;