27#ifndef EWOMS_VTK_BLACK_OIL_MICP_MODULE_HH
28#define EWOMS_VTK_BLACK_OIL_MICP_MODULE_HH
30#include <opm/material/densead/Math.hpp>
39#include <dune/common/fvector.hh>
53template<
class TypeTag,
class MyTypeTag>
55template<
class TypeTag,
class MyTypeTag>
57template<
class TypeTag,
class MyTypeTag>
59template<
class TypeTag,
class MyTypeTag>
61template<
class TypeTag,
class MyTypeTag>
65template<
class TypeTag>
67template<
class TypeTag>
69template<
class TypeTag>
71template<
class TypeTag>
73template<
class TypeTag>
84template <
class TypeTag>
95 static const int vtkFormat = getPropValue<TypeTag, Properties::VtkOutputFormat>();
98 enum { enableMICP = getPropValue<TypeTag, Properties::EnableMICP>() };
116 Parameters::registerParam<TypeTag, Properties::VtkWriteMicrobialConcentration>
117 (
"Include the concentration of the microbial component in the water phase "
118 "in the VTK output files");
119 Parameters::registerParam<TypeTag, Properties::VtkWriteOxygenConcentration>
120 (
"Include the concentration of the oxygen component in the water phase "
121 "in the VTK output files");
122 Parameters::registerParam<TypeTag, Properties::VtkWriteUreaConcentration>
123 (
"Include the concentration of the urea component in the water phase "
124 "in the VTK output files");
125 Parameters::registerParam<TypeTag, Properties::VtkWriteBiofilmConcentration>
126 (
"Include the biofilm volume fraction in the VTK output files");
127 Parameters::registerParam<TypeTag, Properties::VtkWriteCalciteConcentration>
128 (
"Include the calcite volume fraction in the VTK output files");
137 if (!Parameters::get<TypeTag, Properties::EnableVtkOutput>())
143 if (microbialConcentrationOutput_())
145 if (oxygenConcentrationOutput_())
147 if (ureaConcentrationOutput_())
149 if (biofilmConcentrationOutput_())
151 if (calciteConcentrationOutput_())
161 if (!Parameters::get<TypeTag, Properties::EnableVtkOutput>())
167 for (
unsigned dofIdx = 0; dofIdx < elemCtx.numPrimaryDof(0); ++dofIdx) {
168 const auto& intQuants = elemCtx.intensiveQuantities(dofIdx, 0);
169 unsigned globalDofIdx = elemCtx.globalSpaceIndex(dofIdx, 0);
171 if (microbialConcentrationOutput_())
172 microbialConcentration_[globalDofIdx] =
173 scalarValue(intQuants.microbialConcentration());
175 if (oxygenConcentrationOutput_())
176 oxygenConcentration_[globalDofIdx] =
177 scalarValue(intQuants.oxygenConcentration());
179 if (ureaConcentrationOutput_())
180 ureaConcentration_[globalDofIdx] =
181 10 * scalarValue(intQuants.ureaConcentration());
183 if (biofilmConcentrationOutput_())
184 biofilmConcentration_[globalDofIdx] =
185 scalarValue(intQuants.biofilmConcentration());
187 if (calciteConcentrationOutput_())
188 calciteConcentration_[globalDofIdx] =
189 scalarValue(intQuants.calciteConcentration());
206 if (microbialConcentrationOutput_())
209 if (oxygenConcentrationOutput_())
212 if (ureaConcentrationOutput_())
215 if (biofilmConcentrationOutput_())
218 if (calciteConcentrationOutput_())
224 static bool microbialConcentrationOutput_()
226 static bool val = Parameters::get<TypeTag, Properties::VtkWriteMicrobialConcentration>();
230 static bool oxygenConcentrationOutput_()
232 static bool val = Parameters::get<TypeTag, Properties::VtkWriteOxygenConcentration>();
236 static bool ureaConcentrationOutput_()
238 static bool val = Parameters::get<TypeTag, Properties::VtkWriteUreaConcentration>();
242 static bool biofilmConcentrationOutput_()
244 static bool val = Parameters::get<TypeTag, Properties::VtkWriteBiofilmConcentration>();
248 static bool calciteConcentrationOutput_()
250 static bool val = Parameters::get<TypeTag, Properties::VtkWriteCalciteConcentration>();
254 ScalarBuffer microbialConcentration_;
255 ScalarBuffer oxygenConcentration_;
256 ScalarBuffer ureaConcentration_;
257 ScalarBuffer biofilmConcentration_;
258 ScalarBuffer calciteConcentration_;
Declares the properties required by the black oil model.
The base class for writer modules.
Definition: baseoutputmodule.hh:73
BaseOutputWriter::ScalarBuffer ScalarBuffer
Definition: baseoutputmodule.hh:91
void commitScalarBuffer_(BaseOutputWriter &baseWriter, const char *name, ScalarBuffer &buffer, BufferType bufferType=DofBuffer)
Add a buffer containing scalar quantities to the result file.
Definition: baseoutputmodule.hh:316
void resizeScalarBuffer_(ScalarBuffer &buffer, BufferType bufferType=DofBuffer)
Allocate the space for a buffer storing a scalar quantity.
Definition: baseoutputmodule.hh:162
The base class for all output writers.
Definition: baseoutputwriter.hh:44
VTK output module for the MICP model's related quantities.
Definition: vtkblackoilmicpmodule.hh:86
void processElement(const ElementContext &elemCtx)
Modify the internal buffers according to the intensive quantities relevant for an element.
Definition: vtkblackoilmicpmodule.hh:159
void commitBuffers(BaseOutputWriter &baseWriter)
Add all buffers to the VTK output writer.
Definition: vtkblackoilmicpmodule.hh:197
VtkBlackOilMICPModule(const Simulator &simulator)
Definition: vtkblackoilmicpmodule.hh:103
void allocBuffers()
Allocate memory for the scalar fields we would like to write to the VTK file.
Definition: vtkblackoilmicpmodule.hh:135
static void registerParameters()
Register all run-time parameters for the multi-phase VTK output module.
Definition: vtkblackoilmicpmodule.hh:111
Simplifies writing multi-file VTK datasets.
Definition: vtkmultiwriter.hh:66
Definition: blackoilmodel.hh:72
Definition: blackoilboundaryratevector.hh:37
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:242
This file provides the infrastructure to retrieve run-time parameters.
The Opm property system, traits with inheritance.
Definition: vtkblackoilmicpmodule.hh:48
a tag to mark properties as undefined
Definition: propertysystem.hh:40
Definition: vtkblackoilmicpmodule.hh:60
Definition: vtkblackoilmicpmodule.hh:62
Definition: vtkblackoilmicpmodule.hh:54
Definition: vtkblackoilmicpmodule.hh:56
Definition: vtkblackoilmicpmodule.hh:58