solution to ex2 of miniworkshop dumux

This commit is contained in:
Benjamin Faigle
2010-04-07 08:27:39 +00:00
committed by Andreas Lauser
parent 346b75c02c
commit d06880da8c

View File

@@ -21,7 +21,6 @@
// include material laws
#include <dumux/new_material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh>
#include <dumux/new_material/fluidmatrixinteractions/2p/regularizedlinearmaterial.hh>
#include <dumux/new_material/fluidmatrixinteractions/2p/linearmaterial.hh>
#include <dumux/new_material/fluidmatrixinteractions/2p/efftoabslaw.hh>
@@ -47,15 +46,15 @@ class TutorialSpatialParameters: public BoxSpatialParameters<TypeTag> /*@\label{
typedef typename Grid::Traits::template Codim<0>::Entity Element;
// select materialLaw to be used
// typedef RegularizedBrooksCorey<Scalar> RawMaterialLaw;
typedef LinearMaterial<Scalar> RawMaterialLaw; // example for linear Materiallaw
typedef RegularizedBrooksCorey<Scalar> RawMaterialLaw;
//typedef LinearMaterial<Scalar> RawMaterialLaw; // example for linear Materiallaw
public:
// adapter for absolute law
typedef EffToAbsLaw<RawMaterialLaw> MaterialLaw;
// determine appropriate parameters depening on selected materialLaw
typedef typename MaterialLaw::Params MaterialLawParams;
typedef typename MaterialLaw::Params SecondMaterialLawParams;
// method returning the intrinsic permeability tensor K depending
// on the position within the domain
@@ -80,9 +79,10 @@ public:
const FVElementGeometry &fvElemGeom,
int scvIdx) const
{
// if (element.center()>= 783636)
// return UpperBoundaryMaterialParams_;
return materialParams_;
if (element.geometry().center()[1]< 40.)
return secondMaterialParams_;
else
return materialParams_;
}
// constructor
@@ -97,18 +97,20 @@ public:
materialParams_.setSnr(0.0);
// //brooks-corey law
// materialParams_.setPe(0.0);
// materialParams_.setAlpha(2.0);
materialParams_.setPe(0.0);
materialParams_.setAlpha(2.0);
//linear material law
materialParams_.setEntryPC(0.0);
materialParams_.setMaxPC(0.0);
// //linear material law
secondMaterialParams_.setPe(0.0);
secondMaterialParams_.setAlpha(3.0);
secondMaterialParams_.setSnr(0.3);
}
private:
Dune::FieldMatrix<Scalar, dim, dim> K_;
// Object that helds the values/parameters of the selected material law.
MaterialLawParams materialParams_;
SecondMaterialLawParams secondMaterialParams_;
};
} // end namespace
#endif