Feature/new materiallaw 2p
Current status
- The material law classes are built in a bit complicated way as a series of wrappers
- In order to evaluate a law you need the type of the law and the parameters
- Regularization is somewhat inflexible
- It's not possible to cache anything in the laws
What this MR does / why does DuMux need it:
- New class that gets policy template arguments instead of wrappers
- New fluidmatrixinteraction object that knows it's parameterization
- A single object that knows how to evaluate a law and can also cache things
- Flexible regularization that also allows e.g. for approximation / spline-interpolation in any part of the function
Fixes #319 (closed).
Special notes for your reviewer / TODO:
-
!2249 (merged) Should be merged first. -
Add update function to update the parameters of a function(not implemented for now. Can be added later) -
deprecation in volume variables and other call sites (-> !2260 (merged)) -
do the same for the interfacial area laws (non-equilibrium) (-> !2260 (merged)) -
deprecate old laws -
adjust material law unit test to new laws -
implement brooks-corey -
implement twop default regularization for brooks-corey & vangenuchten -
reimplement weird "regularized" linear law (should be a separate law in my opinion since the entire curve is changed) -
reimplement heatpipelaw as example of a law that simply satisfies the interface (doesn't need to make use of TwoPMaterialLaw
) -
Change all spatialParams to get rid of deprecation warnings (could be done in team) -
Use getters and setters for parameters (like before) -
Adapt 2p sequential headers -
Adapt plot material law to be able to use new style material laws -
adapt box interface solver -
adapt 2p incompressible local residual -
adapt flash headers and tests
Edited by Timo Koch