Loading...
Searching...
No Matches
EffToAbsLaw.hpp File Reference

This material law takes a material law defined for effective saturations and converts it to a material law defined on absolute saturations. More...

`#include "EffToAbsLawParams.hpp"`
`#include <opm/material/fluidstates/SaturationOverlayFluidState.hpp>`

Go to the source code of this file.

## Classes

class | Opm::EffToAbsLaw< EffLawT, ParamsT >
| This material law takes a material law defined for effective saturations and converts it to a material law defined on absolute saturations. More...

## Namespaces

namespace | Opm
| This class implements a small container which holds the transmissibility mulitpliers for all the faces in the grid.

## Detailed Description

This material law takes a material law defined for effective saturations and converts it to a material law defined on absolute saturations.

The idea: "material laws" (like VanGenuchten or BrooksCorey) are defined for effective saturations. The numeric calculations however are performed with absolute saturations. The EffToAbsLaw class gets the "material laws" actually used as well as the corresponding parameter container as template arguments.

Subsequently, the desired function (pc, Sw... ) of the actually used "material laws" are called but with the saturations already converted from absolute to effective.

This approach makes sure that in the "material laws" only effective saturations are considered, which makes sense, as these laws only deal with effective saturations. This also allows for changing the calculation of the effective saturations easily, as this is subject of discussion / may be problem specific.

Additionally, handing over effective saturations to the "material laws" in stead of them calculating effective saturations prevents accidently "converting twice".

This boils down to:

- the actual material laws (linear, VanGenuchten...) do not need to deal with any kind of conversion
- the definition of the material law in the spatial parameters is not really intuitive, but using it is: Hand in values, get back values, do not deal with conversion.