Commit e4612d97 authored by Simon Scholz's avatar Simon Scholz
Browse files

Merge branch 'fix/biomin-readme' into 'master'

[biomin] readme update

See merge request !27
parents cb6e4abd 63a40f5f
# Exercise Biomineralization
The aim of this exercise is to get a first glimpse with the _DuMuX_ way of implementing mineralization and reaction processes. In the scope of this exercise, the setting of boundary conditions is revisited and a new reaction term is implemented.
The aim of this exercise is to get a first glimpse at the _DuMuX_ way of implementing mineralization and reaction processes. In the scope of this exercise, the setting of boundary conditions is revisited and a new reaction term is implemented.
## Problem set-up
......@@ -19,7 +19,7 @@ Disclaimer: Please note, that this is not a realistic scenario. One does not wan
### 1. Getting familiar with the code
Locate all the files you will need for this exercise
* The shared __main file__ : `exercisebiomin.cc`
* The __main file__ : `exercisebiomin.cc`
* The __input file__: `exercisebiomin.input`
* The __problem file__ : `biominproblem.hh`
* The __spatial parameters file__: `biominspatialparams.hh`
......@@ -81,7 +81,7 @@ using Chemistry = typename Dumux::SimpleBiominReactions<TypeTag>;
__Task__
Now the source/sink term can be updated in the problem file. You find it in line 343. You can access the newly created chemistry file and call the reactionSource()-function from it. Make sure to call the reactionSource()-function with the correct arguments. Return the updated source terms in the end.
The volume variables can be set using the element volume variables and the sub control volume.
The volume variables can be set using the element volume variables and the sub control volume:
```c++
const auto& volVars = elemVolVars[scv];
......@@ -106,7 +106,7 @@ make exercisebiomin
__Task:__
Vary input parameters in the input file. Available for variation are the overall injection duration in days (`InjBioTime`), the initial biomass (`InitBiofilm`), the overall injection rate (`InjVolumeflux`) and the injected concentrations of urea and calcium (`concUrea` and `concCa`). When changing the concentrations, keep in mind that both urea and calcium are needed for the reaction and their mass ratio should be 2 calcium to 3 urea for a good molar ratio of 1 mol urea per 1 mol of calcium, see also the molar masses in the component files.
Vary input parameters in the input file to seal the leakage pathway. The overall injection duration in days (`InjBioTime`), the initial biomass (`InitBiofilm`), the overall injection rate (`InjVolumeflux`) and the injected concentrations of urea and calcium (`ConcUrea` and `ConcCa`) are available for variation. When changing the concentrations, keep in mind that both urea and calcium are needed for the reaction and their mass ratio should be 2 calcium to 3 urea for a good molar ratio of 1 mol urea per 1 mol of calcium, see also the molar masses in the component files.
The result for the porosity should like like this:
......@@ -130,7 +130,7 @@ The result for the biomineralization process after the CO2 injection should look
### Bonus: Paraview Magic: Compare different results using Programmable Filter
In the last step, the manual comparison of the results can be quite difficult. Paraview offers the option to use programmable python filters. To use them, make sure two result files with different names are loaded. Mark both of them and click on `Filters --> Alphabetical --> Programmable Filter`. Now a new field opens on the left side. Copy the following python lines there:
In the last step, the manual comparison of the results can be quite difficult. Paraview offers the option to use programmable python filters. To use them, make sure two result files with __different names__ are loaded. Mark both of them and click on `Filters --> Alphabetical --> Programmable Filter`. Now a new field opens on the left side. Copy the following lines there:
```python
CO2_0 = inputs[0].CellData['x_n^CO2'];
......
......@@ -326,10 +326,10 @@ private:
{ return 2*phiInit - phiEvaluated;}
bool isInAquitard_(const GlobalPosition &globalPos) const
{ return globalPos[dimWorld-1] > 8 + eps_ && globalPos[dimWorld-1] < 10 + eps_;}
{ return globalPos[dimWorld-1] > 8 - eps_ && globalPos[dimWorld-1] < 10 + eps_;}
bool isFaultZone_(const GlobalPosition &globalPos) const
{ return globalPos[dimWorld-2] > 1.5 + eps_ && globalPos[dimWorld-2] < 3 + eps_;}
{ return globalPos[dimWorld-2] > 2 - eps_ && globalPos[dimWorld-2] < 3 + eps_;}
using ModelTraits = typename GET_PROP_TYPE(TypeTag, ModelTraits);
PorosityPrecipitation<Scalar, ModelTraits::numComponents(), ModelTraits::numSolidComps()> poroLaw_;
......
......@@ -19,8 +19,7 @@
/*!
* \file
* \ingroup Chemistry
* \brief The source and sink terms due to reactions are calculated in this class. The chemical functions and derivations are implemented in the private part of
* class.
* \brief The source and sink terms due to reactions are calculated in this class.
*/
#ifndef DUMUX_BIOMIN_REACTIONS_HH
#define DUMUX_BIOMIN_REACTIONS_HH
......@@ -29,8 +28,7 @@ namespace Dumux {
/*!
* \ingroup Chemistry
* \brief The source and sink terms due to reactions are calculated in this class. The chemical functions and derivations are implemented in the private part of
* class.
* \brief The source and sink terms due to reactions are calculated in this class.
*/
template <class TypeTag>
class SimpleBiominReactions
......
......@@ -19,7 +19,7 @@
/*!
* \file
* \ingroup Components
* \brief A class for the biofilm solid phase properties.
* \brief A class for the biofilm solid component properties.
*/
#ifndef DUMUX_BIOFILM_HH
#define DUMUX_BIOFILM_HH
......@@ -32,7 +32,7 @@ namespace Components {
/*!
* \ingroup Components
* \brief A class for the biofilm solid phase properties.
* \brief A class for the biofilm solid component properties.
*/
template <class Scalar>
class Biofilm
......@@ -74,4 +74,4 @@ public:
} // end namespace Components
} // end namespace Dumux
#endif
\ No newline at end of file
#endif
......@@ -41,13 +41,12 @@
namespace Dumux {
namespace FluidSystems {
/*!
* \ingroup Fluidsystems
* \brief A compositional fluid with brine and carbon dioxide as
* components in both, the liquid and the gas (supercritical) phase,
* additional biomineralisation components and the solid phases
* biofilm and calcite.
* additional biomineralisation components (Ca and Urea) in the liquid phase
*
* This class provides acess to the Bio fluid system when no property system is used.
* For Dumux users, using BioMinFluid<TypeTag> and the documentation therein is
......
......@@ -36,7 +36,7 @@ namespace SolidSystems {
/*!
* \ingroup SolidSystems
* \brief A solid phase consisting of a single inert solid component
* \brief A solid phase consisting of a single inert solid component and two reactive solid components
* \note a solid is considered inert if it can't dissolve in a liquid and
* and can't increase its mass by precipitation from a fluid phase.
* \note inert components have to come after all non-inert components
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment