Commit ec4ff571 authored by Simon Scholz's avatar Simon Scholz

Initial version of master's thesis

parents
cmake_minimum_required(VERSION 2.8.12)
project(Scholz2017a CXX)
if(NOT (dune-common_DIR OR dune-common_ROOT OR
"${CMAKE_PREFIX_PATH}" MATCHES ".*dune-common.*"))
string(REPLACE ${CMAKE_PROJECT_NAME} dune-common dune-common_DIR
${PROJECT_BINARY_DIR})
endif()
#find dune-common and set the module path
find_package(dune-common REQUIRED)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules"
${dune-common_MODULE_PATH})
#include the dune macros
include(DuneMacros)
# start a dune project with information from dune.module
dune_project()
dune_enable_all_packages()
add_subdirectory("doc")
add_subdirectory(dumux)
add_subdirectory(appl)
add_subdirectory("cmake/modules")
# finalize the dune project, e.g. generating config.h etc.
finalize_dune_project(GENERATE_CONFIG_H_CMAKE)
# we need the module file to be able to build via dunecontrol
EXTRA_DIST = dune.module \
CMakeLists.txt \
config.h.cmake
SUBDIRS = src m4 dune doc cmake
if BUILD_DOCS
# TODO: set up documentation tree automatically
#SUBDIRS += doc
endif
# don't follow the full GNU-standard
# we need automake 1.9 or newer
AUTOMAKE_OPTIONS = foreign 1.9
# pass most important options when "make distcheck" is used
DISTCHECK_CONFIGURE_FLAGS = --with-dune-common=$(DUNE_COMMON_ROOT) --with-dune-geometry=$(DUNE_GEOMETRY_ROOT) --with-dune-grid=$(DUNE_GRID_ROOT) --with-dune-localfunctions=$(DUNE_LOCALFUNCTIONS_ROOT) --with-dune-istl=$(DUNE_ISTL_ROOT) --with-dune-typetree=$(DUNE_TYPETREE_ROOT) --with-dune-pdelab=$(DUNE_PDELAB_ROOT) --with-dumux=$(DUMUX_ROOT) --with-dumux-devel=$(DUMUX_DEVEL_ROOT) CXX="$(CXX)" CC="$(CC)"
include $(top_srcdir)/am/top-rules
include $(top_srcdir)/am/global-rules
# Generate package configuration files for finding
# installed modules with CMake
include $(top_srcdir)/am/cmake-pkg-config
Summary
=======
This is the DuMuX module containing the code for producing the results
published in:
S. Scholz<br>
Modeling microbially enhanced coal-bed methane production<br>
Master's thesis, Institut für Wasser- und Umweltsystemmodellierung, Universität Stuttgart, 3/2017.
Installation
============
You can build the module just like any other DUNE module. For building and running the executables, please go to the folders
containing the sources listed below. For the basic dependencies see dune-project.org. Note that you have to have the
BOOST library installed for this module.
The easiest way to install this module is to create a new folder and to execute the file
[installScholz2017a.sh](https://git.iws.uni-stuttgart.de/dumux-pub/Scholz2017a/raw/master/installScholz2017a.sh)
in this folder.
```bash
mkdir -p Scholz2017a && cd Scholz2017a
wget -q https://git.iws.uni-stuttgart.de/dumux-pub/Scholz2017a/raw/master/installScholz2017a.sh
sh ./installScholz2017a.sh
```
For a detailed information on installation have a look at the DuMuX installation guide or use the DuMuX handbook, chapter 2.
Applications
============
The results in the master's thesis are obtained by compiling and running the programs from the sources listed below,
which can be found in appl/mecbmsimon/:<br>
test_boxmecbmsimon.cc<br>
test_boxmecbmcolumn.cc<br>
test_boxmecbmadsorption.cc<br>
Output
======
Run the program with the respective source file modifications:
* __test_boxmecbmsimon - MECBM Batch Problem__:
__Figure 6.1a - Methane produdction__:
- use test_2pmecbmCombined1.input and adapt according to Thesis or use test_2pmecbmCombined14.input
- watch out for Amendment concentration! test_2pmecbmCombined1.input has the 0.5 g/l amendment, while all others have 0.1 g/l amendment (line 40)
__Figure 6.2 - Methane production with Coal and Amendment consumption__:
- use test_2pmecbmCombined1.input, test_2pmecbmCoal1.input and test_2pmecbmCarAm1.input
or any other of the same available numbers for differnt fits to the experimental data.
__Figure 6.3 and 6.4 - Methane production and substrate consumption for 0.1 g/l Amendment__:
- adapt inputs as described in Figures 6.1, 6.2 with less amendment (line 40)
__Figure 6.5 - Bacteria volume fraction__:
- use inputs from instructions for Figures 6.1 and 6.3 and compare with each other
__Figure 6.6 - Adsorption__:
- add Ad- and Desorption parameters from Table 5.4 to input files ("SorptionCoefficients", lines 83-87)
* __test_boxmecbmcolumn - MECBM Column Problem__:
__Figure 6.7 - Amendment transport__:
- use test_2pmecbmColumn13.input
__Figure 6.8 Amendment concentration comparison__:
- use test_2pmecbmColumn14.input and test_2pmecbmColumn15.input and compare amendment distribution results
__Figure 6.9 - Bacteria volume fractions__:
- use test_2pmecbmColumn14.input and compare bacteria volume fractions along column
* __test_boxmecbmadsorption - Adsorption flush scenario__:
__Figure 6.10, 6.11 - Methane Storage term with/without Adsorption__:
- use test_2padsorptionColumn12.input and evaluate storage results
- set "SorptionCoefficients" (lines 83-87) to zero for reference scenario without ad- and desorption
Used Versions and Software
==========================
For an overview of the used versions of the DUNE and DuMuX modules, please have a look at
[installScholz2017a.sh](https://git.iws.uni-stuttgart.de/dumux-pub/Scholz2017a/raw/master/installScholz2017a.sh).
\ No newline at end of file
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
CXX=@CXX@
CC=@CC@
DEPENDENCIES=@REQUIRES@
Name: @PACKAGE_NAME@
Version: @VERSION@
Description: Scholz2017a module
URL: http://dune-project.org/
Requires: dune-common dune-geometry dune-grid dune-localfunctions dune-istl dune-typetree dune-pdelab dumux dumux-devel
Libs: -L${libdir}
Cflags: -I${includedir}
add_subdirectory("mecbmsimon")
# isothermal tests
add_dumux_test(test_boxmecbmsimon test_boxmecbmsimon test_boxmecbmsimon.cc
python ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
--script fuzzy
--files ${CMAKE_SOURCE_DIR}/test/references/saltflushboxmecbmsimon-reference.vtu
${CMAKE_CURRENT_BINARY_DIR}/saltflushbox-00044.vtu
--command "${CMAKE_CURRENT_BINARY_DIR}/test_boxmecbmsimon -ParameterFile test_2pmecbmCombined14.input -Problem.Name MECBM")
add_dumux_test(test_boxmecbmadsorption test_boxmecbmadsorption test_boxmecbmadsorption.cc
python ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
--script fuzzy
--files ${CMAKE_SOURCE_DIR}/test/references/saltflushccmecbmsimon-reference.vtu
${CMAKE_CURRENT_BINARY_DIR}/saltflushcc-00043.vtu
--command "${CMAKE_CURRENT_BINARY_DIR}/test_boxmecbmsimon -ParameterFile test_2pmecbmCombinedAds14.input -Problem.Name AdsorptionColumn")
add_dumux_test(test_boxmecbmcolumn test_boxmecbmcolumn test_boxmecbmcolumn.cc
python ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
--script fuzzy
--files ${CMAKE_SOURCE_DIR}/test/references/saltflushboxmecbmsimon-reference.vtu
${CMAKE_CURRENT_BINARY_DIR}/saltflushbox-00044.vtu
--command "${CMAKE_CURRENT_BINARY_DIR}/test_boxmecbmcolumn -ParameterFile test_2pmecbmColumn14.input -Problem.Name MECBMColumn")
add_input_file_links()
#dune_symlink_to_source_files(FILES grids)
#install sources
install(FILES
mecbmsimonproblem.hh
mecbmsimonspatialparams.hh
test_boxmecbmsimon.cc
test_boxmecbmcolumn
test_boxmecbmadsorption
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/appl/mecbmsimon)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*****************************************************************************
* Copyright (C) 2009-2010 by Melanie Darcis *
* Copyright (C) 2010 by Andreas Lauser *
* Institute for Modelling Hydraulic and Environmental Systems *
* University of Stuttgart, Germany *
* email: <givenname>.<name>@iws.uni-stuttgart.de *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
/**
* \file
*
* \brief Provides the class with the tabulated values of CO2 for the
* benchmark3 problem
*/
#ifndef DUMUX_MECBM_CO2TABLES_HH
#define DUMUX_MECBM_CO2TABLES_HH
//#include <dumux/old_material/tabulatedmaterial2.hh>
//#include <dumux/old_material/tabulatedmaterial2hires.hh>
#include <assert.h>
namespace Dumux
{
namespace MECBM
{
// the real work is done by some external program which provides
// ready-to-use tables.
//#include "dumux/material/components/co2tables.inc"
#include "co2values.inc"
}
}
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
/*****************************************************************************
* See the file COPYING for full copying permissions. *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
#ifndef DUMUX_INJECTION_SPATIAL_PARAMETERS_HH
#define DUMUX_INJECTION_SPATIAL_PARAMETERS_HH
#include <dumux/implicit/2pmecbmsimon/indices.hh>
#include <dumux/material/spatialparams/implicit.hh>
#include <dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh>
#include <dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh>
#include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh>
namespace Dumux
{
//forward declaration
template<class TypeTag>
class MECBMSpatialParams;
namespace Properties
{
// The spatial parameters TypeTag
NEW_TYPE_TAG(MECBMSpatialParams);
// Set the spatial parameters
SET_TYPE_PROP(MECBMSpatialParams, SpatialParams, MECBMSpatialParams<TypeTag>);
// Set the material Law
SET_PROP(MECBMSpatialParams, MaterialLaw)
{
private:
// define the material law which is parameterized by effective saturations
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
public:
// define the material law parameterized by absolute saturations
typedef EffToAbsLaw<RegularizedBrooksCorey<Scalar> > type;
};
}
/**
* \brief Definition of the spatial parameters for the brine-co2 problem
*
*/
template<class TypeTag>
class MECBMSpatialParams : public ImplicitSpatialParams<TypeTag>
{
typedef ImplicitSpatialParams<TypeTag> ParentType;
typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
typedef typename GET_PROP_TYPE(TypeTag, MaterialLawParams) MaterialLawParams;
typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
typedef typename GridView::ctype CoordScalar;
enum {
dim=GridView::dimension,
dimWorld=GridView::dimensionworld,
};
typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
enum {
wPhaseIdx = FluidSystem::wPhaseIdx,
nPhaseIdx = FluidSystem::nPhaseIdx,
};
typedef Dune::FieldVector<CoordScalar, dimWorld> GlobalPosition;
typedef Dune::FieldMatrix<CoordScalar, dimWorld, dimWorld> Tensor;
typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
typedef typename GridView::template Codim<0>::Entity Element;
public:
MECBMSpatialParams(const GridView &gridView)
: ParentType(gridView), K_(0.0)
{
// set main diagonal entries of the permeability tensor to a value
// setting to one value means: isotropic, homogeneous
for (int i = 0; i < dim; i++)
K_[i][i] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, SpatialParams, Permeability);
// residual saturations
materialParams_.setSwr(GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, SpatialParams, IrreducibleLiqSat));
materialParams_.setSnr(GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, SpatialParams, IrreducibleGasSat));
// parameters of Brooks & Corey Law
materialParams_.setPe(GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, SpatialParams, Pentry1));
materialParams_.setLambda(GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, SpatialParams, BCLambda1));
}
/*! Intrinsic permeability tensor K \f$[m^2]\f$ depending
* on the position in the domain
*
* \param element The finite volume element
* \param fvGeometry The finite-volume geometry in the box scheme
* \param scvIdx The local vertex index
*
* Alternatively, the function intrinsicPermeabilityAtPos(const GlobalPosition& globalPos)
* could be defined, where globalPos is the vector including the global coordinates
* of the finite volume.
*/
const Tensor& intrinsicPermeability(const Element &element,
const FVElementGeometry &fvGeometry,
const int scvIdx) const
{
return K_;
}
/*!
* \brief Define the minimum porosity \f$[-]\f$ after salt precipitation
*
* \param element The finite element
* \param fvGeometry The finite volume geometry
* \param scvIdx The local index of the sub-control volume where
* the porosity needs to be defined
*/
Scalar porosityMin(const Element &element,
const FVElementGeometry &fvGeometry,
int scvIdx) const
{
return 1e-5;
}
/*!
* \brief Define the minimum porosity \f$[-]\f$ after clogging caused by mineralization
*
* \param element The finite element
* \param fvGeometry The finite volume geometry
* \param scvIdx The local index of the sub-control volume where
* the porosity needs to be defined
*/
Scalar porosity(const Element &element,
const FVElementGeometry &fvGeometry,
int scvIdx) const
{
return GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, SpatialParams, Porosity);
}
Scalar solidity(const Element &element,
const FVElementGeometry &fvGeometry,
int scvIdx) const
{
return 1.0 - porosity(element, fvGeometry, scvIdx);
}
Scalar SolubilityLimit() const
{
return GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, SpatialParams, SolubilityLimit);
}
Scalar theta(const Element &element,
const FVElementGeometry &fvGeometry,
int scvIdx) const
{
return 10.0;
}
// return the brooks-corey context depending on the position
const MaterialLawParams& materialLawParams(const Element &element,
const FVElementGeometry &fvGeometry,
int scvIdx) const
{
return materialParams_;
}
private:
Tensor K_;
MaterialLawParams materialParams_;
};
}
#endif
# Parameter file for test case 2pmecbmsimon.
# Everything behind a '#' is a comment.
# Type "./test_mecbmsimon --help" for more information.
[TimeManager]
TEnd = 2e6 # duration of the simulation [s]
DtInitial = 10 # initial time step size [s]
MaxTimeStepSize = 300 # maximum time step size
FreqOutput = 10000 # frequency of VTK output
WriteRestartFile = 0 # Boolean. Should restart files be written? (1) Yes (0) No
[Grid]
LowerLeft = 0 0
UpperRight = 0.07 0.46
Cells = 1 20
[FluidSystem]
NTemperature = 100 # [-] number of tabularization entries
NPressure = 100 # [-] number of tabularization entries
PressureLow = 1e4 # [Pa] low end for tabularization of fluid properties
PressureHigh = 3e7 # [Pa] high end for tabularization of fluid properties
TemperatureLow = 273.15 # [K] low end for tabularization of fluid properties
TemperatureHigh = 400.00 # [K] high end for tabularization of fluid properties
[Problem]
Name = adsorptionColumn12 # [-] name for output files
ReservoirPressure = 4.3E6 # [Pa] Initial reservoir pressure
reservoirSaturation = 0.5 # [-] Initial saturation
Temperature = 310 # [K] reservoir temperature
InnerPressure = 4.3E6 # [Pa] Pressure value by Robin 80 psi
InnerLiqSaturation = 0.2 # [-] liquid saturation at inner boundary
OuterPressure = 4.3E6 # [Pa] reservoir boundary pressure
OuterLiqSaturation = 0.2 # [-] liquid saturation at outer boundary
# *=fixed Literature value *?=estimated ?=questionable
[Initial]
initxwCH4 = 0.3 # [-] initial gas saturation : was initSatGas
initxwH2 = 0 # [-] initial mole fraction Hydrogen (minimum value estimate)
initxwAmendment = 0 # [-] initial mole fraction carbon amendment
initxwAcetate = 0 # [-] initial mole fraction acetate (minimum value estimate)
initxwRMethyl = 0 # [-] initial mole fraction methyl (minimum value estimate)
initxwTC = 0 # [-] initial mole fraction of total inorganic carbon
initPhiCCoal = 0.0 # [m3 biomass/m3 total] initial volume fraction of convertable coal (100g/l with density of 1250 kg/m3)
initPhiPrimBac = 0 # [m3 biomass/m3 total] *? e-10...e-4 Initial volume fraction of primary bacteria
initPhiSecBac = 0 # [m3 biomass/m3 total] *? e-10...e-4 Initial volume fraction of secondary bacteria
initPhiAcetoArch = 0 # [m3 biomass/m3 total] *? e-10...e-2 Initial volume fraction of acetoclastic archaea
initPhiHydroArch = 0 # [m3 biomass/m3 total] *? e-10...e-2 Initial volume fraction of hydrogenotroPhic archaea
initPhiMethyArch = 0 # [m3 biomass/m3 total] *? e-10...e-2 Initial volume fraction of methylotroPhic archaea
initGasSaturation = 0.3 # [-] initial liquid saturation
Salinity = 0.0 # [-] Initial salinity
initiallyTwoPhases = 1 # [-] initial phase presence 1 = both, 0= wPhase
[Injection]
injVolumeflux = 4.33e-7 # [m3/s] at the moment not 9.259e-8 [m³/s] = 8 [l/d]
injTC = 94.666 # [kg/m3] density should be 6 ml/h
injCH4 = 27.5855 # 0.654 #
[BioCoefficients]
rhoBiofilm = 10 # [kg/m3] Dry density of biofilm, value fitted by A. Ebigbo 2012 WRR
K = 0.01 # [-] Decay rate for microbes
muPrimBacC = 0.7 # [d-1] *? 0.3...0.8 Maximum specific growth rate for primary bacteria on coal]
muSecBacC = 0.7 # [d-1] *? 0.5...1.0 Maximum specific growth rate for secondary bacteria on coal
muSecBacAm = 1 # [d-1] *? 0.5...1.0 +larger than muSecBacC Maximum specific growth rate for secondary bacteria on amendment
muAcetoArch = 8 # [d-1] * Maximum specific growth rate for acetoclastic archaea
muHydroArch = 1.66 # [d-1] * Maximum specific growth rate for hydrogenotrophic archaea
muMethyArch = 2.9 # [d-1] * Maximum specific growth rate for methylotrophic archaea
Kc = 500 # [g/L] * Monod half saturation constant for coal
KH2 = 2.0e-5 # [g/L] * Monod half saturation constant for hydrogen
KAm = 2.0 # [g/L] *? 0.6...15 Monod half saturation constant for amendment (estimate ranging from 0.6 ... 15 g/L)
KAc = 0.240 # [g/L] * Monod half saturation constant for acetate
KCH3 = 2.8e-3 # [g/L] * Monod half saturation constant for methyl
YPrimBacC = 0.11 # [-] *? Yield of primary bacteria biomass on coal //TODO
YSecBacC = 0.11 # [-] * Yield of secondary bacteria on coal
YSecBacAm = 0.2 # [-] *? Yield of secondary bacteria on amendment
YHydroArchH2 = 1.217 # [-] * Yield of hydrogenotrophic archaea biomass on hydrogen
YAcetoArchAc = 0.035 # [-] * Yield of acetoclastic Archaea biomass on acetate
YMethyArchCH3 = 0.02 # [-] * Yield of methylotrophic archaea biomass on methyl
YH2C = 0.002604 # [-] *? 0.1...0.001 Yield of hydrogen from coal
YAcC = 0.103449 # [-] *? 0.1...0.001 Yield of acetate from coal
YH2Am = 0.00868 # [-] * Yield of hydrogen from amendment
YAcAm = 0.34483 # [-] * Yield of acetate from amendment
YCH3Am = 0.0 # [-] * Yield of methyl from amendment
YCH4Ac = 0.259 # [-] * Yield of methane from acetate
YCH4H2 = 1.569 # [-] * Yield of methane from hydrogen
YCH4CH3 = 1.0 # [-] * Yield of methane from methyl
[SorptionCoefficients]
VCH4 = 0.8 # [mol/l] or m3/kg? values from "Malgo's table [67]"
bCH4 = 2.3e-7 # [1/Pa] or maybe use 1/MPa !conversion 1/b=Pl with Pl =167.5 psia
VCO2 = 1.6 # [mol/l] or m3/kg?
bCO2 = 4.64e-7 # [1/Pa] !conversion 1/b=Pl with Pl =167.5 psia
[SpatialParams]
SolubilityLimit = 0.295 # [-] solubility limit of salt in brine
Porosity = 0.2 # [-] initial porosity taken from Irfans Matlab code 0.1+initial
Permeability = 1E-7 # [m2] arbitrary value at the moment for Permeability
IrreducibleLiqSat = 1e-3 # [-] irreducible liquid saturation
IrreducibleGasSat = 1e-5 # [-] irreducible gas saturation
Pentry1 = 500 # [Pa]
BCLambda1 = 2 # [-]
[Vtk]
AddVelocity = 1 # Add extra information
VtuWritingFreq = 1 # 1: write a vtu file at every timestep, 2: write a vtu file every second timestep ...
[LinearSolver]
ResidualReduction = 1e-6 # target reduction of the initial residual
[Implicit]
NumericDifferenceMethod = 1 # partial derivatives of the residual (1: forward, 0: central, -1: backward)
[Newton]
MaxRelativeShift = 1e-6 # tolerance for the shift criterion
[Output]
#Frequency of restart file, flux and VTK output
FreqRestart = 1000 # how often restart files are written out
FreqOutput = 50 # frequency of VTK output
FreqMassOutput = 2 # frequency of mass and evaporation rate output (Darcy)
FreqFluxOutput = 1000 # frequency of detailed flux output
FreqVaporFluxOutput = 2 # frequency of summarized flux output
# Parameter file for test case 2pmecbmsimon.
# Everything behind a '#' is a comment.
# Type "./test_mecbmsimon --help" for more information.
[TimeManager]
TEnd = 1e7 # duration of the simulation [s]
DtInitial = 10 # initial time step size [s]
MaxTimeStepSize = 900 # maximum time step size
FreqOutput = 900 # frequency of VTK output
WriteRestartFile = 0 # Boolean. Should restart files be written? (1) Yes (0) No
[Grid]
LowerLeft = 0 0
UpperRight = 4 4
Cells = 4 4
[FluidSystem]
NTemperature = 200 # [-] number of tabularization entries
NPressure = 200 # [-] number of tabularization entries
PressureLow = 1e4 # [Pa] low end for tabularization of fluid properties
PressureHigh = 3e6 # [Pa] high end for tabularization of fluid properties
TemperatureLow = 273.15 # [K] low end for tabularization of fluid properties
TemperatureHigh = 400.00 # [K] high end for tabularization of fluid properties
[Problem]
Name = mecbmCarAm1 # [-] name for output files
ReservoirPressure = 5E5 # [Pa] Initial reservoir pressure
reservoirSaturation = 0.7 # [-] Initial saturation
Temperature = 293.15 # [K] reservoir temperature
InnerPressure = 5.5E5 # [Pa] Pressure value by Robin 80 psi
InnerLiqSaturation = 0.2 # [-] liquid saturation at inner boundary
OuterPressure = 5E5 # [Pa] reservoir boundary pressure
OuterLiqSaturation = 0.2 # [-] liquid saturation at outer boundary
# *=fixed Literature value *?=estimated ?=questionable
[Initial]
initxwCH4 = 1.125e-8 # [-] initial gas saturation : was initSatGas
initxwH2 = 0 # [-] initial mole fraction Hydrogen (minimum value estimate)
initxwAmendment = 7.978e-5 # [-] initial mole fraction carbon amendment
initxwAcetate = 0 # [-] initial mole fraction acetate (minimum value estimate)
initxwRMethyl = 0 # [-] initial mole fraction methyl (minimum value estimate)
initxwTC = 0 # [-] initial mole fraction of total inorganic carbon
initPhiCCoal = 0.0 # [m3 biomass/m3 total] initial volume fraction of convertable coal (100g/l with density of 1250 kg/m3)
initPhiPrimBac = 1e-5 # [m3 biomass/m3 total] *? e-10...e-4 Initial volume fraction of primary bacteria
initPhiSecBac = 1e-5 # [m3 biomass/m3 total] *? e-10...e-4 Initial volume fraction of secondary bacteria
initPhiAcetoArch = 1e-5 # [m3 biomass/m3 total] *? e-10...e-2 Initial volume fraction of acetoclastic archaea
initPhiHydroArch = 1e-5 # [m3 biomass/m3 total] *? e-10...e-2 Initial volume fraction of hydrogenotroPhic archaea
initPhiMethyArch = 1e-5 # [m3 biomass/m3 total] *? e-10...e-2 Initial volume fraction of methylotroPhic archaea
initGasSaturation = 0.0 # [-] initial liquid saturation
Salinity = 0.0 # [-] Initial salinity
initiallyTwoPhases = 1 # [-] initial phase presence 1 = both, 0= wPhase
[BioCoefficients]
rhoBiofilm = 10 # [kg/m3] Dry density of biofilm, value fitted by A. Ebigbo 2012 WRR
K = 0.01 # [-] Decay rate for microbes
muPrimBacC = 0.70 # [d-1] *? 0.3...0.8 Maximum specific growth rate for primary bacteria on coal]
muSecBacC = 0.75 # [d-1] *? 0.5...1.0 Maximum specific growth rate for secondary bacteria on coal
muSecBacAm = 1.0 # [d-1] *? 0.5...1.0 +larger than muSecBacC Maximum specific growth rate for secondary bacteria on amendment
muAcetoArch = 8 # [d-1] * Maximum specific growth rate for acetoclastic archaea
muHydroArch = 1.66 # [d-1] * Maximum specific growth rate for hydrogenotrophic archaea
muMethyArch = 2.9 # [d-1] * Maximum specific growth rate for methylotrophic archaea
Kc = 1000 # [g/L] * Monod half saturation constant for coal
KH2 = 2.0e-5 # [g/L] * Monod half saturation constant for hydrogen
KAm = 2.0 # [g/L] *? 0.6...15 Monod half saturation constant for amendment (estimate ranging from 0.6 ... 15 g/L)
KAc = 0.240 # [g/L] * Monod half saturation constant for acetate
KCH3 = 2.8e-3 # [g/L] * Monod half saturation constant for methyl
YPrimBacC = 0.11 # [-] *? Yield of primary bacteria biomass on coal //TODO
YSecBacC = 0.11 # [-] * Yield of secondary bacteria on coal
YSecBacAm = 0.11 # [-] *? Yield of secondary bacteria on amendment
YHydroArchH2 = 1.217 # [-] * Yield of hydrogenotrophic archaea biomass on hydrogen
YAcetoArchAc = 0.035 # [-] * Yield of acetoclastic Archaea biomass on acetate
YMethyArchCH3 = 0.02 # [-] * Yield of methylotrophic archaea biomass on methyl
YH2C = 0.002604 # [-] *? 0.1...0.001 Yield of hydrogen from coal
YAcC = 0.103449 # [-] *? 0.1...0.001 Yield of acetate from coal
YH2Am = 0.00868 # [-] * Yield of hydrogen from amendment
YAcAm = 0.34483 # [-] * Yield of acetate from amendment
YCH3Am = 0.0 # [-] * Yield of methyl from amendment
YCH4Ac = 0.259 # [-] * Yield of methane from acetate
YCH4H2 = 1.569 # [-] * Yield of methane from hydrogen
YCH4CH3 = 1.0 # [-] * Yield of methane from methyl
[SorptionCoefficients]
VCH4 = 0 # [mol/l] or m3/kg? values from "Malgo's table [67]"
bCH4 = 0 # [1/Pa] or maybe use 1/MPa !conversion 1/b=Pl with Pl =167.5 psia
VCO2 = 0 # [mol/l] or m3/kg?
bCO2 = 0 # [1/Pa] !conversion 1/b=Pl with Pl =167.5 psia
[SpatialParams]
SolubilityLimit = 0.295 # [-] solubility limit of salt in brine
Porosity = 0.1 # [-] initial porosity taken from Irfans Matlab code 0.1+initial
Permeability = 1E-7 # [m2] arbitrary value at the moment for Permeability
IrreducibleLiqSat = 0.1 # [-] irreducible liquid saturation
IrreducibleGasSat = 1e-3 # [-] irreducible gas saturation
Pentry1 = 500 # [Pa]
BCLambda1 = 2 # [-]
[Vtk]
AddVelocity = 1 # Add extra information
VtuWritingFreq = 1 # 1: write a vtu file at every timestep, 2: write a vtu file every second timestep ...
[LinearSolver]
ResidualReduction = 1e-6 # target reduction of the initial residual
[Implicit]
NumericDifferenceMethod = 1 # partial derivatives of the residual (1: forward, 0: central, -1: backward)
[Newton]
MaxRelativeShift = 1e-9 # tolerance for the shift criterion
[Output]
#Frequency of restart file, flux and VTK output
FreqRestart = 1000 # how often restart files are written out
FreqOutput = 50 # frequency of VTK output
FreqMassOutput = 2 # frequency of mass and evaporation rate output (Darcy)
FreqFluxOutput = 1000 # frequency of detailed flux output
FreqVaporFluxOutput = 2 # frequency of summarized flux output
# Parameter file for test case 2pmecbmsimon.
# Everything behind a '#' is a comment.
# Type "./test_mecbmsimon --help" for more information.
[TimeManager]
TEnd = 1.5e7 # duration of the simulation [s]
DtInitial = 10 # initial time step size [s]
MaxTimeStepSize = 1200 # maximum time step size
FreqOutput = 3000 # frequency of VTK output
WriteRestartFile = 0 # Boolean. Should restart files be written? (1) Yes (0) No
[Grid]
LowerLeft = 0 0
UpperRight = 4 4
Cells = 4 4
[FluidSystem]
NTemperature = 200 # [-] number of tabularization entries
NPressure = 200 # [-] number of tabularization entries
PressureLow = 1e4 # [Pa] low end for tabularization of fluid properties
PressureHigh = 3e6 # [Pa] high end for tabularization of fluid properties
TemperatureLow = 273.15 # [K] low end for tabularization of fluid properties
TemperatureHigh = 400.00 # [K] high end for tabularization of fluid properties
[Problem]
Name = mecbmCarAm13 # [-] name for output files
ReservoirPressure = 5E5 # [Pa] Initial reservoir pressure