Commit 60dbc6c5 authored by Martin Schneider's avatar Martin Schneider
Browse files

Merge branch 'feature/limit-tests-to-one-minute' into 'master'

Feature/limit tests to one minute

Limit the tests in lecture to a maximum of 60 seconds to reduce computational effort for testing.

* [x] Fix fuelcell
* [x] Fix co2plume
* [x] Fix sagd
* [x] Fix convective mixing
* [ ] Fix naplinfiltrationexercise
* [x] Fix remediationscenariosexercise

See merge request !8
parents 0fb20382 7bbda88d
...@@ -25,12 +25,11 @@ ...@@ -25,12 +25,11 @@
#ifndef DUMUX_HETEROGENEOUS_CO2TABLES_HH #ifndef DUMUX_HETEROGENEOUS_CO2TABLES_HH
#define DUMUX_HETEROGENEOUS_CO2TABLES_HH #define DUMUX_HETEROGENEOUS_CO2TABLES_HH
#include <cassert>
#include <dumux/material/components/co2tablereader.hh> #include <dumux/material/components/co2tablereader.hh>
namespace Dumux namespace Dumux
{ {
namespace ConvMixCO2Tables namespace CO2TablesBenchmarkThree
{ {
// the real work is done by some external program which provides // the real work is done by some external program which provides
// ready-to-use tables. // ready-to-use tables.
......
...@@ -45,11 +45,7 @@ namespace Properties ...@@ -45,11 +45,7 @@ namespace Properties
NEW_TYPE_TAG(LensOnePTwoCProblem, INHERITS_FROM(BoxOnePTwoC)); NEW_TYPE_TAG(LensOnePTwoCProblem, INHERITS_FROM(BoxOnePTwoC));
// Set the grid type // Set the grid type
#if HAVE_UG
SET_TYPE_PROP(LensOnePTwoCProblem, Grid, Dune::UGGrid<2>);
#else
SET_TYPE_PROP(LensOnePTwoCProblem, Grid, Dune::YaspGrid<2>); SET_TYPE_PROP(LensOnePTwoCProblem, Grid, Dune::YaspGrid<2>);
#endif
// Set the problem property // Set the problem property
SET_TYPE_PROP(LensOnePTwoCProblem, Problem, Dumux::LensOnePTwoCProblem<TypeTag>); SET_TYPE_PROP(LensOnePTwoCProblem, Problem, Dumux::LensOnePTwoCProblem<TypeTag>);
......
...@@ -45,11 +45,7 @@ namespace Properties ...@@ -45,11 +45,7 @@ namespace Properties
NEW_TYPE_TAG(LensTwoPTwoCProblem, INHERITS_FROM(BoxTwoPTwoC, Lens2pSpatialParams)); NEW_TYPE_TAG(LensTwoPTwoCProblem, INHERITS_FROM(BoxTwoPTwoC, Lens2pSpatialParams));
// Set the grid type // Set the grid type
#if HAVE_UG
SET_TYPE_PROP(LensTwoPTwoCProblem, Grid, Dune::UGGrid<2>);
#else
SET_TYPE_PROP(LensTwoPTwoCProblem, Grid, Dune::YaspGrid<2>); SET_TYPE_PROP(LensTwoPTwoCProblem, Grid, Dune::YaspGrid<2>);
#endif
// Set the problem property // Set the problem property
SET_TYPE_PROP(LensTwoPTwoCProblem, Problem, Dumux::LensTwoPTwoCProblem<TypeTag>); SET_TYPE_PROP(LensTwoPTwoCProblem, Problem, Dumux::LensTwoPTwoCProblem<TypeTag>);
......
...@@ -49,11 +49,7 @@ namespace Properties ...@@ -49,11 +49,7 @@ namespace Properties
NEW_TYPE_TAG(LensTwoPProblem, INHERITS_FROM(BoxTwoP, Lens2pSpatialParams)); NEW_TYPE_TAG(LensTwoPProblem, INHERITS_FROM(BoxTwoP, Lens2pSpatialParams));
// Set the grid type // Set the grid type
#if HAVE_UG
SET_TYPE_PROP(LensTwoPProblem, Grid, Dune::UGGrid<2>);
#else
SET_TYPE_PROP(LensTwoPProblem, Grid, Dune::YaspGrid<2>); SET_TYPE_PROP(LensTwoPProblem, Grid, Dune::YaspGrid<2>);
#endif
// Set the problem property // Set the problem property
SET_TYPE_PROP(LensTwoPProblem, Problem, LensTwoPProblem<TypeTag>); SET_TYPE_PROP(LensTwoPProblem, Problem, LensTwoPProblem<TypeTag>);
...@@ -365,8 +361,8 @@ private: ...@@ -365,8 +361,8 @@ private:
*/ */
bool isInitial_(const GlobalPosition &globalPos) const bool isInitial_(const GlobalPosition &globalPos) const
{ {
return (globalPos[1] > 1.0 && globalPos[1] < 1.25 && globalPos[0] > 1.7 return (globalPos[1] > 1.0 + eps_ && globalPos[1] < 1.25 - eps_ && globalPos[0] > 1.7 + eps_
&& globalPos[0] < 2.3); && globalPos[0] < 2.3 - eps_);
} }
}; };
} //end namespace } //end namespace
......
...@@ -45,11 +45,7 @@ namespace Properties ...@@ -45,11 +45,7 @@ namespace Properties
NEW_TYPE_TAG(LensOnePTwoCProblem, INHERITS_FROM(BoxOnePTwoC)); NEW_TYPE_TAG(LensOnePTwoCProblem, INHERITS_FROM(BoxOnePTwoC));
// Set the grid type // Set the grid type
#if HAVE_UG
SET_TYPE_PROP(LensOnePTwoCProblem, Grid, Dune::UGGrid<2>);
#else
SET_TYPE_PROP(LensOnePTwoCProblem, Grid, Dune::YaspGrid<2>); SET_TYPE_PROP(LensOnePTwoCProblem, Grid, Dune::YaspGrid<2>);
#endif
// Set the problem property // Set the problem property
SET_TYPE_PROP(LensOnePTwoCProblem, Problem, Dumux::LensOnePTwoCProblem<TypeTag>); SET_TYPE_PROP(LensOnePTwoCProblem, Problem, Dumux::LensOnePTwoCProblem<TypeTag>);
......
...@@ -47,11 +47,7 @@ namespace Properties ...@@ -47,11 +47,7 @@ namespace Properties
NEW_TYPE_TAG(LensTwoPProblem, INHERITS_FROM(BoxTwoP, Lens2pSpatialParams)); NEW_TYPE_TAG(LensTwoPProblem, INHERITS_FROM(BoxTwoP, Lens2pSpatialParams));
// Set the grid type // Set the grid type
#if HAVE_UG
SET_TYPE_PROP(LensTwoPProblem, Grid, Dune::UGGrid<2>);
#else
SET_TYPE_PROP(LensTwoPProblem, Grid, Dune::YaspGrid<2>); SET_TYPE_PROP(LensTwoPProblem, Grid, Dune::YaspGrid<2>);
#endif
// Set the problem property // Set the problem property
SET_TYPE_PROP(LensTwoPProblem, Problem, LensTwoPProblem<TypeTag>); SET_TYPE_PROP(LensTwoPProblem, Problem, LensTwoPProblem<TypeTag>);
...@@ -367,10 +363,10 @@ private: ...@@ -367,10 +363,10 @@ private:
*/ */
bool onInlet_(const GlobalPosition &globalPos) const bool onInlet_(const GlobalPosition &globalPos) const
{ {
Scalar width = this->bBoxMax()[0] - this->bBoxMin()[0]; const Scalar width = this->bBoxMax()[0] - this->bBoxMin()[0];
Scalar lambda = (this->bBoxMax()[0] - globalPos[0])/width; const Scalar lambda = (this->bBoxMax()[0] - globalPos[0])/width;
return (onUpperBoundary_(globalPos) && (this->bBoxMax()[0]-0.45*width)/width > lambda return (onUpperBoundary_(globalPos) && (this->bBoxMax()[0]-0.45*width)/width > lambda + eps_
&& lambda > (this->bBoxMax()[0]-0.55*width)/width); && (this->bBoxMax()[0]-0.55*width)/width < lambda - eps_);
} }
Scalar eps_; Scalar eps_;
......
...@@ -5,7 +5,8 @@ add_dumux_test(lens2pexercise2 lens2pexercise2 lens2pexercise2.cc ...@@ -5,7 +5,8 @@ add_dumux_test(lens2pexercise2 lens2pexercise2 lens2pexercise2.cc
--script fuzzy --script fuzzy
--files ${CMAKE_SOURCE_DIR}/lecture/references/lens-2p-exercise2-reference.vtu --files ${CMAKE_SOURCE_DIR}/lecture/references/lens-2p-exercise2-reference.vtu
${CMAKE_CURRENT_BINARY_DIR}/lens-2p-00052.vtu ${CMAKE_CURRENT_BINARY_DIR}/lens-2p-00052.vtu
--command "${CMAKE_CURRENT_BINARY_DIR}/lens2pexercise2") --command "${CMAKE_CURRENT_BINARY_DIR}/lens2pexercise2"
--zeroThreshold {"Sn":0.001})
# headers for installation and headercheck # headers for installation and headercheck
install(FILES install(FILES
......
...@@ -48,11 +48,7 @@ namespace Properties ...@@ -48,11 +48,7 @@ namespace Properties
NEW_TYPE_TAG(LensTwoPProblem, INHERITS_FROM(BoxTwoP, Lens2pSpatialParams)); NEW_TYPE_TAG(LensTwoPProblem, INHERITS_FROM(BoxTwoP, Lens2pSpatialParams));
// Set the grid type // Set the grid type
#if HAVE_UG
SET_TYPE_PROP(LensTwoPProblem, Grid, Dune::UGGrid<2>);
#else
SET_TYPE_PROP(LensTwoPProblem, Grid, Dune::YaspGrid<2>); SET_TYPE_PROP(LensTwoPProblem, Grid, Dune::YaspGrid<2>);
#endif
// Set the problem property // Set the problem property
SET_TYPE_PROP(LensTwoPProblem, Problem, LensTwoPProblem<TypeTag>); SET_TYPE_PROP(LensTwoPProblem, Problem, LensTwoPProblem<TypeTag>);
...@@ -425,10 +421,10 @@ private: ...@@ -425,10 +421,10 @@ private:
*/ */
bool onInlet_(const GlobalPosition &globalPos) const bool onInlet_(const GlobalPosition &globalPos) const
{ {
Scalar width = this->bBoxMax()[0] - this->bBoxMin()[0]; const Scalar width = this->bBoxMax()[0] - this->bBoxMin()[0];
Scalar lambda = (this->bBoxMax()[0] - globalPos[0])/width; const Scalar lambda = (this->bBoxMax()[0] - globalPos[0])/width;
return (onUpperBoundary_(globalPos) && (this->bBoxMax()[0]-0.40*width)/width > lambda return (onUpperBoundary_(globalPos) && (this->bBoxMax()[0]-0.40*width)/width > lambda + eps_
&& lambda > (this->bBoxMax()[0]-0.60*width)/width); && (this->bBoxMax()[0]-0.60*width)/width < lambda - eps_);
} }
Scalar eps_; Scalar eps_;
......
...@@ -3,9 +3,9 @@ add_input_file_links() ...@@ -3,9 +3,9 @@ add_input_file_links()
add_dumux_test(co2plumeshapeexercise co2plumeshapeexercise co2plumeshapeexercise.cc add_dumux_test(co2plumeshapeexercise co2plumeshapeexercise co2plumeshapeexercise.cc
python ${dumux_INCLUDE_DIRS}/bin/runtest.py python ${dumux_INCLUDE_DIRS}/bin/runtest.py
--script fuzzy --script fuzzy
--files ${CMAKE_SOURCE_DIR}/lecture/references/CO2_PlumeShape-reference.vtu --files ${CMAKE_SOURCE_DIR}/lecture/references/co2plumeshape-reference.vtu
${CMAKE_CURRENT_BINARY_DIR}/CO2_PlumeShape-00018.vtu ${CMAKE_CURRENT_BINARY_DIR}/co2plumeshape-00003.vtu
--command "${CMAKE_CURRENT_BINARY_DIR}/co2plumeshapeexercise -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/co2plumeshapeexercise.input") --command "${CMAKE_CURRENT_BINARY_DIR}/co2plumeshapeexercise -TimeManager.TEnd 1e7 -TimeManager.EpisodeLength 1e7 -BoundaryConditions.InjectionRate 0.01")
# headers for installation and headercheck # headers for installation and headercheck
install(FILES install(FILES
......
[TimeManager] [TimeManager]
DtInitial = 250# [s] DtInitial = 250 # [s]
TEnd = 2# [s] TEnd = 1e100 # [s] actual end time is controlled by injection rate
EpisodeLength = 1e7 # [s] EpisodeLength = 1e7 # [s]
[Grid] [Grid]
UpperRightX = 200. # x-coordinate of the upper-right corner of the grid [m] UpperRight = 200 60 # upper right corner coordinates [m]
UpperRightY = 60. # y-coordinate of the upper-right corner of the grid [m] Cells = 100 30 # number of cells in (x,y) directions [-]
NumberOfCellsX = 100 # x-resolution of the grid
NumberOfCellsY = 30 # y-resolution of the grid
[FluidSystem] [FluidSystem]
NTemperature = 3# [-] number of tabularization entries NTemperature = 3# [-] number of tabularization entries
...@@ -19,24 +16,23 @@ TemperatureLow = 283.15 # [Pa] low end for tabularization of fluid propertie ...@@ -19,24 +16,23 @@ TemperatureLow = 283.15 # [Pa] low end for tabularization of fluid propertie
TemperatureHigh = 320.15 # [Pa] high end for tabularization of fluid properties TemperatureHigh = 320.15 # [Pa] high end for tabularization of fluid properties
[SpatialParams] [SpatialParams]
Kh = 1e-13 # [m^2] intrinsic permeability Permeability = 1e-13 # [m^2] intrinsic permeability
dipAngle = 0. # [deg] dip angle for the domain DipAngle = 0.0 # [deg] dip angle for the domain
phi = 0.3 # % porosity Porosity = 0.3 # porosity
[MaterialLaw] [MaterialLaw]
swr = 0.2 # [-] residual wetting phase sat. Swr = 0.2 # [-] residual wetting phase sat.
snr = 0.2 # [-] residual non-wetting phase sat. Snr = 0.2 # [-] residual non-wetting phase sat.
Pe = 5e3 # [Pa] capillary entry pressure Pe = 5e3 # [Pa] capillary entry pressure
Lambda = 2 # [-] Brooks Corey parameter Lambda = 2 # [-] Brooks Corey parameter
[SimulationControl] [SimulationControl]
Name = CO2_PlumeShape# [-] the name of the output files Name = co2plumeshape # the name of the output files
[InitialConditions] [InitialConditions]
Temperature = 283.15 # [K] initial temperature of injected CO2 Temperature = 283.15 # [K] initial temperature of injected CO2
Pressure = 1.5e7 # [Pa] initial pressure Pressure = 1.5e7 # [Pa] initial pressure
[BoundaryConditions] [BoundaryConditions]
massInj_ = 0.001 # [kg/s] mass injection of CO2 InjectionRate = 0.001 # [kg/s] mass injection of CO2
Temperature_inj = 313.15 # [K] temperature of injected CO2 InjectionTemperature = 313.15 # [K] temperature of injected CO2
This diff is collapsed.
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. * * along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/ *****************************************************************************/
#ifndef CO2_PLUMESHAPE_SPATIALPARAMETERS_HH_ #ifndef CO2_PLUMESHAPE_SPATIALPARAMETERS_HH
#define CO2_PLUMESHAPE_SPATIALPARAMETERS_HH_ #define CO2_PLUMESHAPE_SPATIALPARAMETERS_HH
#include <dumux/material/spatialparams/implicit.hh> #include <dumux/material/spatialparams/implicit.hh>
#include <dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh> #include <dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh>
...@@ -79,7 +79,6 @@ class PlumeShapeSpatialParams : public ImplicitSpatialParams<TypeTag> ...@@ -79,7 +79,6 @@ class PlumeShapeSpatialParams : public ImplicitSpatialParams<TypeTag>
}; };
typedef Dune::FieldVector<CoordScalar,dimWorld> GlobalPosition; typedef Dune::FieldVector<CoordScalar,dimWorld> GlobalPosition;
typedef Dune::FieldVector<CoordScalar,dimWorld> Vector;
typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables; typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables; typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
...@@ -97,26 +96,24 @@ public: ...@@ -97,26 +96,24 @@ public:
* \param gv The grid view * \param gv The grid view
*/ */
PlumeShapeSpatialParams(const GridView &gridView) PlumeShapeSpatialParams(const GridView &gridView)
: ParentType(gridView), : ParentType(gridView), k_(0)
k_(0)
{ {
// layerBottom_ = 22.0; // layerBottom_ = 22.0;
// intrinsic permeabilities // intrinsic permeabilities
kh_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.Kh); permeability_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.Permeability);
// porosity and permeability // porosity and permeability
porosity_ = 0.35; porosity_ = 0.35;
// k_ = 0.;
for (int i=0; i < dim; i++ ) for (int i=0; i < dim; i++ )
k_[i][i] = kh_; // [m^2] k_[i][i] = permeability_; // [m^2]
// porosities // porosities
porosity_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.phi); porosity_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.Porosity);
// residual saturations // residual saturations
materialParams_.setSwr(GET_RUNTIME_PARAM(TypeTag, Scalar, MaterialLaw.swr)); materialParams_.setSwr(GET_RUNTIME_PARAM(TypeTag, Scalar, MaterialLaw.Swr));
materialParams_.setSnr(GET_RUNTIME_PARAM(TypeTag, Scalar, MaterialLaw.snr)); materialParams_.setSnr(GET_RUNTIME_PARAM(TypeTag, Scalar, MaterialLaw.Snr));
// parameters for the Brooks-Corey law // parameters for the Brooks-Corey law
materialParams_.setPe(GET_RUNTIME_PARAM(TypeTag, Scalar, MaterialLaw.Pe)); materialParams_.setPe(GET_RUNTIME_PARAM(TypeTag, Scalar, MaterialLaw.Pe));
...@@ -134,13 +131,11 @@ public: ...@@ -134,13 +131,11 @@ public:
* \param fvElemGeom The current finite volume geometry of the element * \param fvElemGeom The current finite volume geometry of the element
* \param scvIdx The index of the sub-control volume * \param scvIdx The index of the sub-control volume
*/ */
const Dune::FieldMatrix<Scalar, dim, dim> intrinsicPermeability(const Element &element, const Dune::FieldMatrix<Scalar, dim, dim>&
const FVElementGeometry &fvElemGeom, intrinsicPermeability(const Element &element,
int scvIdx) const const FVElementGeometry &fvElemGeom,
int scvIdx) const
{ {
// const GlobalPosition &pos = fvElemGeom.subContVol[scvIdx].global;
// if (isFineMaterial_(pos))
// return K_;
return k_; return k_;
} }
...@@ -152,13 +147,10 @@ public: ...@@ -152,13 +147,10 @@ public:
* \param scvIdx The local index of the sub-control volume where * \param scvIdx The local index of the sub-control volume where
* the porosity needs to be defined * the porosity needs to be defined
*/ */
Scalar porosity(const Element &element, const Scalar porosity(const Element &element,
const FVElementGeometry &fvElemGeom, const FVElementGeometry &fvElemGeom,
int scvIdx) const int scvIdx) const
{ {
// const GlobalPosition &pos = fvElemGeom.subContVol[scvIdx].global;
// if (isFineMaterial_(pos))
// return finePorosity_;
return porosity_; return porosity_;
} }
...@@ -171,12 +163,9 @@ public: ...@@ -171,12 +163,9 @@ public:
* \param scvIdx The index of the sub-control volume * \param scvIdx The index of the sub-control volume
*/ */
const MaterialLawParams& materialLawParams(const Element &element, const MaterialLawParams& materialLawParams(const Element &element,
const FVElementGeometry &fvElemGeom, const FVElementGeometry &fvElemGeom,
int scvIdx) const int scvIdx) const
{ {
// const GlobalPosition &pos = fvElemGeom.subContVol[scvIdx].global;
// if (isFineMaterial_(pos))
// return fineMaterialParams_;
return materialParams_; return materialParams_;
} }
...@@ -228,16 +217,12 @@ public: ...@@ -228,16 +217,12 @@ public:
} }
private: private:
Scalar kh_; Scalar permeability_;
Dune::FieldMatrix<Scalar, dim, dim> k_; Dune::FieldMatrix<Scalar, dim, dim> k_;
Scalar porosity_; Scalar porosity_;
MaterialLawParams materialParams_; MaterialLawParams materialParams_;
}; };
} } // end namespace Dumux
#endif #endif
...@@ -16,7 +16,7 @@ rate of 0.001~kg CO$_2$/s is injected into an aquifer with an absolute permeabil ...@@ -16,7 +16,7 @@ rate of 0.001~kg CO$_2$/s is injected into an aquifer with an absolute permeabil
Questions you should try to answer: Questions you should try to answer:
\begin{itemize} \begin{itemize}
\item What does the plume shape look like for different setups of $K_h$ \item What does the plume shape look like for different permeabilities $K_h$?
\item What does the plume shape look like for different setups of injected mass rate ($MASS\_INJ$)? \item What does the plume shape look like for different setups of injected mass rate ($MASS\_INJ$)?
\item Can you find similarities in plume shape among the cases? Which setups look similar? \item Can you find similarities in plume shape among the cases? Which setups look similar?
\item According to what rule do they look similar? \item According to what rule do they look similar?
......
// -*- 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/>. *
*****************************************************************************/
/**
* \file
*
* \brief Provides the class with the tabulated values of CO2 for the
* benchmark3 problem
*/
#ifndef DUMUX_BRINEDISPLACEMENT_CO2TABLES_HH
#define DUMUX_BRINEDISPLACEMENT_CO2TABLES_HH
#include <assert.h>
#include <dumux/material/components/co2tablereader.hh>
namespace Dumux
{
namespace Injection
{
// the real work is done by some external program which provides
// ready-to-use tables.
#include "co2values.inc"
}
}
#endif
...@@ -4,8 +4,8 @@ add_dumux_test(columnxyleneexercise columnxyleneexercise columnxyleneexercise.cc ...@@ -4,8 +4,8 @@ add_dumux_test(columnxyleneexercise columnxyleneexercise columnxyleneexercise.cc
python ${dumux_INCLUDE_DIRS}/bin/runtest.py python ${dumux_INCLUDE_DIRS}/bin/runtest.py
--script fuzzy --script fuzzy
--files ${CMAKE_SOURCE_DIR}/lecture/references/columnxylol-reference.vtu --files ${CMAKE_SOURCE_DIR}/lecture/references/columnxylol-reference.vtu
${CMAKE_CURRENT_BINARY_DIR}/columnxylol-00039.vtu ${CMAKE_CURRENT_BINARY_DIR}/columnxylol-00008.vtu
--command "${CMAKE_CURRENT_BINARY_DIR}/columnxyleneexercise -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/columnxyleneexercise.input -Grid.File ${CMAKE_CURRENT_SOURCE_DIR}/grids/column.dgf -TimeManager.OutputInterval 100") --command "${CMAKE_CURRENT_BINARY_DIR}/columnxyleneexercise -Grid.File ${CMAKE_CURRENT_SOURCE_DIR}/grids/column.dgf -TimeManager.OutputInterval 100 -TimeManager.TEnd 600")
# headers for installation and headercheck # headers for installation and headercheck
install(FILES install(FILES
......
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
[TimeManager] [TimeManager]
DtInitial = 1 # [s] DtInitial = 1 # [s]
TEnd = 3600 # [s] TEnd = 1800 # [s]
OutputInterval = 1 OutputInterval = 1
MaxTimeStepSize = 1
[Grid] [Grid]
File = ./grids/column.dgf File = ./grids/column.dgf
......
...@@ -31,8 +31,6 @@ ...@@ -31,8 +31,6 @@
#include <dumux/porousmediumflow/3p3c/implicit/model.hh> #include <dumux/porousmediumflow/3p3c/implicit/model.hh>
#include <dumux/porousmediumflow/implicit/problem.hh> #include <dumux/porousmediumflow/implicit/problem.hh>
//#include <dumux/common/deprecated.hh>
#include "columnxylenespatialparams.hh" #include "columnxylenespatialparams.hh"
#define ISOTHERMAL 0 #define ISOTHERMAL 0
...@@ -60,20 +58,8 @@ SET_TYPE_PROP(ColumnProblem, ...@@ -60,20 +58,8 @@ SET_TYPE_PROP(ColumnProblem,
// Enable gravity // Enable gravity
SET_BOOL_PROP(ColumnProblem, ProblemEnableGravity, true); SET_BOOL_PROP(ColumnProblem, ProblemEnableGravity, true);
// Use forward differences instead of central differences
SET_INT_PROP(ColumnProblem, ImplicitNumericDifferenceMethod, 1);
// Maximum tolerated relative error in the Newton method // Maximum tolerated relative error in the Newton method
SET_SCALAR_PROP(ColumnProblem, NewtonMaxRelativeShift, 1e-4); SET_SCALAR_PROP(ColumnProblem, NewtonMaxRelativeShift, 1e-4);
// Write newton convergence
SET_BOOL_PROP(ColumnProblem, NewtonWriteConvergence, false);
// Use line search
SET_BOOL_PROP(ColumnProblem, NewtonUseLineSearch, true);
// Set the maximum time step
SET_SCALAR_PROP(ColumnProblem, TimeManagerMaxTimeStepSize, 1.);
} }
...@@ -296,39 +282,39 @@ private: ...@@ -296,39 +282,39 @@ private:
void initial_(PrimaryVariables &values, void initial_(PrimaryVariables &values,
const GlobalPosition &globalPos) const const GlobalPosition &globalPos) const
{ {
Scalar y = globalPos[1]; const Scalar y = globalPos[1];