This material law takes a material law (interfacial area surface) defined for effective saturations and converts it to a material (interfacial area surface) law defined on absolute saturations.
More...
template<class EffLawIAT, class MaterialAbsParamsT, class InterfacialAreaAbsParamsT = typename EffLawIAT::Params>
class Dumux::EffToAbsLawIA< EffLawIAT, MaterialAbsParamsT, InterfacialAreaAbsParamsT >
This material law takes a material law (interfacial area surface) defined for effective saturations and converts it to a material (interfacial area surface) 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.