Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • dumux-repositories/dumux-course
1 result
Show changes
Showing
with 47 additions and 39 deletions
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
/* begin dumux-course
put the definitions for config.h specific to
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later
prefix=@prefix@
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later
################################
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later
add_subdirectory(exercise-basic)
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......@@ -27,6 +27,10 @@
#include <dumux/io/vtkoutputmodule.hh>
#include <dumux/io/grid/gridmanager_yasp.hh>
/*!
* TODO: dumux-course-task 3:
* In 2pnimain.cc include the correct properties headerfile
*/
// The properties file, where the compile time options are defined
#include "properties2p.hh"
......@@ -36,7 +40,11 @@
int main(int argc, char** argv)
{
using namespace Dumux;
/*!
* TODO: dumux-course-task 3:
* In 2pnimain.cc change the type tag for the new injection problem
*/
// define the type tag for this problem
using TypeTag = Properties::TTag::Injection2pCC;
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later
# the immiscible two-phase simulation program
dumux_add_test(NAME exercise_basic_2p
SOURCES 2pmain.cc)
# here, add the two-phase non-isothermal simulation program
# TODO: dumux-course-task 3: add the two-phase non-isothermal simulation program
# add a symlink for each input file
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......@@ -104,7 +104,7 @@ public:
bcTypes.setAllNeumann();
/*!
* TODO:dumux-course-task 4:
* TODO: dumux-course-task 4:
* Set Dirichlet conditions for the energy equation on the left boundary
* and Neumann everywhere else.
* Think about: is there anything necessary to do here?
......@@ -124,7 +124,7 @@ public:
return initialAtPos(globalPos);
/*!
* TODO:dumux-course-task 4:
* TODO: dumux-course-task 4:
* Set Dirichlet conditions for the energy equation on the left boundary.
* Think about: is there anything necessary to do here?
*/
......@@ -150,7 +150,7 @@ public:
values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0;
/*!
* TODO:dumux-course-task 4:
* TODO: dumux-course-task 4:
* Set Neumann noflow conditions for the energy equation everywhere else except the left boundary.
* Additionally, consider the energy flux at the injection point which is equal to the product of the respective mass flux and the matching enthalpy. Use the function `gasEnthalpy(temperature,pressure)` from the N2 component to access the necessary enthalpy.
* hint: use `Indices::energyEqIdx` to access the entry belonging to the energy flux.
......@@ -191,7 +191,7 @@ public:
values[Indices::saturationIdx] = 0.0;
/*!
* TODO:dumux-course-task 4:
* TODO: dumux-course-task 4:
* Set a temperature gradient of 0.03 K per m beginning at 283 K here.
* Hint: you can use aquiferDepth_ and the globalPos similar to the pressure gradient.
* Use globalPos[0] and globalPos[1] to implement the high temperature lens with 380 K
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......
......@@ -23,7 +23,7 @@ Aquifer.BrooksCoreyLambda = 2.0
Aquifer.Swr = 0.2
Aquifer.Snr = 0.0
# these parameters are only used in the nonisothermal model. Uncomment them for that
# TODO: dumux-course-task 4: these parameters are only used in the nonisothermal model. Uncomment them for that
#[Component]
#SolidDensity = 2700 # solid density of granite
#SolidThermalConductivity = 2.8 # solid thermal conducitivity of granite
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......@@ -25,7 +25,7 @@
namespace Dumux::Properties {
/*!
* TODO:dumux-course-task 4
* TODO: dumux-course-task 4:
* Inherit from the TwoPNI model instead of TwoP here
*/
// Create new type tags
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later
# executables for exercisebiomin
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......@@ -17,7 +17,7 @@
#include <dumux/common/numeqvector.hh>
#include <dumux/porousmediumflow/problem.hh>
// TODO: dumux-course-task
// TODO: dumux-course-task 3:
// include chemistry file here
namespace Dumux {
......@@ -51,7 +51,7 @@ class BioMinProblem : public PorousMediumFlowProblem<TypeTag>
using Element = typename GridView::template Codim<0>::Entity;
using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
using SubControlVolume = typename FVElementGeometry::SubControlVolume;
// TODO: dumux-course-task
// TODO: dumux-course-task 3:
// set the chemistry TypeTag
static constexpr int numComponents = FluidSystem::numComponents;
......@@ -183,7 +183,7 @@ public:
values[conti0EqIdx + CaIdx] = - waterFlux * concCa_ / FluidSystem::molarMass(CaIdx);
values[conti0EqIdx + UreaIdx] = - waterFlux * concUrea_ / FluidSystem::molarMass(UreaIdx);
}
// TODO: dumux-course-task
// TODO: dumux-course-task 5:
// Set CO2 injection below aquitard after the injBioTime
return values;
......@@ -245,7 +245,7 @@ public:
{
NumEqVector source(0.0);
// TODO: dumux-course-task
// TODO: dumux-course-task 3:
// set Chemistry
// Chemistry chemistry;
// set VolumeVariables
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......@@ -16,7 +16,7 @@
#include <dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh>
#include <dumux/material/fluidmatrixinteractions/2p/brookscorey.hh>
#include <dumux/material/fluidmatrixinteractions/porosityprecipitation.hh>
// TODO: dumux-course-task
// TODO: dumux-course-task 6:
// include the new permeability law (power law) instead of Kozeny-Carman
#include <dumux/material/fluidmatrixinteractions/permeabilitykozenycarman.hh>
......@@ -271,7 +271,7 @@ private:
bool isFaultZone_(const GlobalPosition &globalPos) const
{ return globalPos[dimWorld-2] > 2 - eps_ && globalPos[dimWorld-2] < 3 + eps_;}
// TODO: dumux-course-task
// TODO: dumux-course-task 6:
// define the power law as the permeability law
PermeabilityKozenyCarman<PermeabilityType> permLaw_;
PoroLaw poroLaw_;
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......@@ -76,24 +76,24 @@ public:
using std::max;
const Scalar volFracBiofilm = max(volVars.solidVolumeFraction(BiofilmPhaseIdx),0.0);
// TODO: dumux-course-task
// TODO: dumux-course-task 2:
// implement mass of biofilm
const Scalar massBiofilm = 0.0;
const Scalar molalityUrea = moleFracToMolality(volVars.moleFraction(liquidPhaseIdx,UreaIdx),
xwCa,
volVars.moleFraction(liquidPhaseIdx,CO2Idx)); // [mol_urea/kg_H2O]
// TODO: dumux-course-task
// TODO: dumux-course-task 2:
// compute rate of ureolysis by implementing Zub and rurea
const Scalar Zub = 0.0;
const Scalar rurea = 0.0;
// TODO: dumux-course-task
// TODO: dumux-course-task 2:
// compute/set dissolution and precipitation rate of calcite
const Scalar rprec = 0.0;
// set source terms
// TODO: dumux-course-task
// TODO: dumux-course-task 2:
// set the source terms using the reaction rates defined above and signs based on the stoichiometry of the reactions.
// Hint: Ammonium occurs in the reaction equation, but is not accounted for in this simplified setup.
// Additionally, the consumption of water by the reaction may be neglected, as water is present in excess.
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......@@ -39,10 +39,10 @@ public:
PermeabilityType evaluatePermeability(PermeabilityType refPerm, Scalar refPoro, Scalar poro) const
{
using std::pow;
// TODO: dumux-course-task
// TODO: dumux-course-task 6:
// read the exponent for the power law from the input file
// TODO: dumux-course-task
// TODO: dumux-course-task 6:
// return the updated permeability according to K=K_0*(poro/refPoro)^exponent
return refPerm;
}
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
//
// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
// SPDX-License-Identifier: GPL-3.0-or-later
//
/*!
......