Skip to content
Snippets Groups Projects
Commit f9c6f08c authored by Kilian Weishaupt's avatar Kilian Weishaupt
Browse files

[heatpipelaw] Remove deprecated code

parent 397cd813
No related branches found
No related tags found
1 merge request!2503[heatpipelaw] Use effective saturation
...@@ -25,150 +25,6 @@ ...@@ -25,150 +25,6 @@
#ifndef DUMUX_MATERIAL_FLUIDMATRIX_TWOP_HEATPIPELAW_HH #ifndef DUMUX_MATERIAL_FLUIDMATRIX_TWOP_HEATPIPELAW_HH
#define DUMUX_MATERIAL_FLUIDMATRIX_TWOP_HEATPIPELAW_HH #define DUMUX_MATERIAL_FLUIDMATRIX_TWOP_HEATPIPELAW_HH
// remove from here after release 3.3 /////////////
#include "heatpipelawparams.hh"
#include <dumux/common/spline.hh>
#include <algorithm>
#include <math.h>
#include <assert.h>
namespace Dumux {
/*!
* \ingroup Fluidmatrixinteractions
* \brief Implementation of the capillary pressure <-> saturation
* relation for the heatpipe problem.
*
* This class bundles the "raw" curves as static members and doesn't concern itself
* converting absolute to effective saturations and vince versa.
*/
template <class ScalarT, class ParamsT = HeatPipeLawParams<ScalarT> >
class [[deprecated("Use new material laws and FluidMatrix::HeatPipeLaw instead!")]] HeatPipeLaw
{
public:
using Params = ParamsT;
using Scalar = typename Params::Scalar;
/*!
* \brief The capillary pressure-saturation curve.
*
* \param params Array of parameters asd
* \param Sw Effective saturation of of the wetting phase \f$\mathrm{[\overline{S}_w]}\f$
*/
static Scalar pc(const Params &params, Scalar Sw)
{
Scalar Sn = 1 - Sw;
Scalar p0Gamma = params.p0()*params.gamma();
// regularization
if (Sn >= 1.0) {
Scalar y = p0Gamma*( (1.263*1.0 - 2.120)*1.0 + 1.417)*1.0;
Scalar m = p0Gamma*((3*1.263*1.0 - 2*2.120)*1.0 + 1.417);
return (Sn - 1)*m + y;
}
else if (Sn <= 0.0) {
Scalar y = 0.0;
Scalar m = p0Gamma*1.417;
return Sn*m + y;
}
return p0Gamma*((1.263*Sn - 2.120)*Sn + 1.417) * Sn;
}
/*!
* \brief The saturation-capillary pressure curve.
*
* \return The effective saturaion of the wetting phase \f$\mathrm{[\overline{S}_w]}\f$
* \param params Array of parameters
* \param pC Capillary pressure \f$\mathrm{[p_C]}\f$ in \f$\mathrm{[Pa]}\f$.
*/
static Scalar Sw(const Params &params, Scalar pC)
{
DUNE_THROW(Dune::NotImplemented, "HeatPipeLaw::Sw");
}
/*!
* \brief Returns the partial derivative of the capillary
* pressure to the effective saturation.
* \param params Array of parameters
* \param Sw Effective saturation of of the wetting phase \f$\mathrm{[\overline{S}_w]}\f$
*/
static Scalar dpC_dSw(const Params &params, Scalar Sw)
{
Scalar Sn = 1 - Sw;
Scalar p0Gamma = params.p0()*params.gamma();
if (Sn > 1.0)
Sn = 1.0;
else if (Sn <= 0.0) {
Scalar m = -p0Gamma*1.417;
return m;
}
Scalar m = - p0Gamma*((3*1.263*Sn - 2*2.120)*Sn + 1.417);
return m;
}
/*!
* \brief Returns the partial derivative of the effective
* saturation to the capillary pressure.
* \param params Array of parameters
* \param pC Capillary pressure \f$\mathrm{[p_C]}\f$ in \f$\mathrm{[Pa]}\f$.
*/
static Scalar dSw_dpC(const Params &params, Scalar pC)
{
DUNE_THROW(Dune::NotImplemented, "HeatPipeLaw::dSw_dpC");
}
/*!
* \brief The relative permeability for the wetting phase.
*
* \param params Array of parameters
* \param Sw The mobile saturation of the wetting phase.
*/
static Scalar krw(const Params &params, Scalar Sw)
{
return kr_(Sw);
}
/*!
* \brief The relative permeability for the nonwetting phase.
*
* \param params Array of parameters
* \param Sw The mobile saturation of the wetting phase.
*/
static Scalar krn(const Params &params, Scalar Sw)
{
Scalar Sn = 1 - Sw;
return kr_(Sn);
}
private:
static Scalar kr_(Scalar S)
{
const Scalar eps = 0.95;
if (S >= 1)
return 1;
else if (S <= 0)
return 0;
else if (S > eps) {
// regularize
using Spline = Dumux::Spline<Scalar>;
Spline sp(eps, 1.0, // x1, x2
eps*eps*eps, 1, // y1, y2
3*eps*eps, 0); // m1, m2
return sp.eval(S);
}
return S*S*S;
}
};
} // end namespace Dumux
// remove until here after release 3.3 /////////////
#include <cmath> #include <cmath>
#include <algorithm> #include <algorithm>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment