mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
tutorial decoupled fixed for releas
This commit is contained in:
committed by
Andreas Lauser
parent
c7e0293de1
commit
330f89d037
@@ -22,7 +22,7 @@
|
||||
#include <dune/common/timer.hh>
|
||||
#include "dumux/fractionalflow/variableclass2p.hh"
|
||||
#include "dumux/material/fluids/water.hh"
|
||||
#include "dumux/material/fluids/oil.hh"
|
||||
#include "dumux/material/fluids/lowviscosityoil.hh"
|
||||
#include "tutorial_soilproperties_decoupled.hh"
|
||||
#include "dumux/material/twophaserelations.hh"
|
||||
#include "tutorialproblem_decoupled.hh"
|
||||
@@ -45,14 +45,14 @@ int main(int argc, char** argv)
|
||||
typedef Dune::FieldVector<Grid::ctype,dim> FieldVector;
|
||||
Dune::FieldVector<int,dim> N(10); N[0] = 30;
|
||||
FieldVector L(0);
|
||||
FieldVector H(300); H[0] = 600;
|
||||
FieldVector H(60); H[0] = 300;
|
||||
Grid grid(N,L,H);
|
||||
GridView gridView(grid.levelView(0));/*@\label{tutorial-decoupled:grid-end}@*/
|
||||
|
||||
|
||||
// define fluid and solid properties and constitutive relationships
|
||||
Dune::Water wettingfluid; /*@\label{tutorial-decoupled:water}@*/
|
||||
Dune::Oil nonwettingfluid; /*@\label{tutorial-decoupled:oil}@*/
|
||||
Dune::LowViscosityOil nonwettingfluid; /*@\label{tutorial-decoupled:oil}@*/
|
||||
Dune::TutorialSoil<Grid, Scalar> soil; /*@\label{tutorial-decoupled:soil}@*/
|
||||
Dune::TwoPhaseRelations<Grid, Scalar> materialLaw(soil, wettingfluid, nonwettingfluid);/*@\label{tutorial-decoupled:twophaserelations}@*/
|
||||
|
||||
@@ -66,15 +66,15 @@ int main(int argc, char** argv)
|
||||
|
||||
// create object including the discretisation of the pressure equation
|
||||
typedef Dune::FVTotalVelocity2P<GridView, Scalar, VariableClass, Problem> Diffusion;
|
||||
Diffusion diffusion(gridView, problem, "pw"); /*@\label{tutorial-decoupled:diffusion}@*/
|
||||
Diffusion diffusion(gridView, problem, "pw","Sw"); /*@\label{tutorial-decoupled:diffusion}@*/
|
||||
|
||||
// create object including the space discretisation of the saturation equation
|
||||
typedef Dune::FVSaturationWetting2P<GridView, Scalar, VariableClass, Problem> Transport;
|
||||
Transport transport(gridView, problem, "vt"); /*@\label{tutorial-decoupled:transport}@*/
|
||||
|
||||
// some parameters used in the IMPES-object
|
||||
int iterFlag = 2;
|
||||
int nIter = 30;
|
||||
int iterFlag = 0;
|
||||
int nIter = 2;
|
||||
double maxDefect = 1e-5;
|
||||
|
||||
// create object including the IMPES (IMplicit Pressure Explicit Saturation) algorithm
|
||||
@@ -83,10 +83,10 @@ int main(int argc, char** argv)
|
||||
|
||||
// some parameters needed for the TimeLoop-object
|
||||
double tStart = 0; // start simulation at t = tStart
|
||||
double tEnd = 1e8; // stop simulation at t = tEnd
|
||||
double tEnd = 4e7; // stop simulation at t = tEnd
|
||||
const char* fileName = "tutorial_decoupled"; // name of the output files
|
||||
int modulo = 1; // define time step interval in which output files are generated
|
||||
double cFLFactor = 0.9; // security factor for the Courant-Friedrichs-Lewy-Criterion
|
||||
double cFLFactor = 0.99; // security factor for the Courant-Friedrichs-Lewy-Criterion
|
||||
|
||||
// create TimeLoop-object
|
||||
Dune::TimeLoop<Grid, IMPES> timeloop(tStart, tEnd, fileName, modulo, cFLFactor); /*@\label{tutorial-decoupled:timeloop}@*/
|
||||
|
||||
@@ -46,7 +46,7 @@ public:
|
||||
virtual Scalar sourcePress (const GlobalPosition& globalPos, const Element& e, /*@\label{tutorial-decoupled:qpress}@*/
|
||||
const LocalPosition& localPos)
|
||||
{
|
||||
return 0;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// function returning the boundary condition type for solution
|
||||
@@ -90,10 +90,10 @@ public:
|
||||
{
|
||||
if (globalPos[0] < eps_)
|
||||
{
|
||||
return 1;
|
||||
return 1.0;
|
||||
}
|
||||
// all other boundaries
|
||||
return 0;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// function returning the Neumann boundary condition for the solution
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
return 3e-7;
|
||||
}
|
||||
// all other boundaries
|
||||
return 0;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// function returning the initial saturation
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
Scalar initSat (const GlobalPosition& globalPos, const Element& e, /*@\label{tutorial-decoupled:initsat}@*/
|
||||
const FieldVector<Scalar,dim>& xi) const
|
||||
{
|
||||
return 0;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user