[meta] Parameters and Parametrization
Description
Today's parameter objects have several problems.
-
Maybe the most important one is that it's working with dynamic polymorphism even though we only have one parametrization, this is simply not acceptable for functions that do virtually no computation (like
Interpolation
andMualemVanGenuchten
) and is even worst for functions that only have to access data. Local operators are usually memory bounded, and having this kind of polymorphism affects directly its performance. -
Another problem is that they are strongly coupled with the input of parameters and with its use in the local operator. Since the base structure is an array, it affects directly the partitioning in parallel, plus strange artifacts on the solution in the interface of two parameter cells.
Proposal
Change parameters and parametrizations objects such that they are based on a continuous or element-wise representation. Gmsh and DFG readers in dune have ways to identify elements (in codims 0 and dim) and therefore also ways to attach parameters to the grid.
Thus, my proposal is to create parameter grids that contain the parameters in a more clean and efficient way. I already have a bit of the code and seems to be a good approach to any kind of input data that is
C^{-1}
and C^0
, however, the main problem then would be the parameter field generator pfg
. My approach for that would be just to implement my proposal such that we can attach manually data to Gmsh and DFG, and later, we can take a look how to generate the data directly to for the Gmsh and DFG files.
Procedures
-
#71 (closed): Build new parameter structures on top of current implementation -
#89 (closed): Introduce yaml-cpp
as dependency -
#86 (closed): Implement new parameter input scheme (with yaml-cpp
) -
#110 (closed): Revamp scaling implementation and add input of global scaling fields -
Add deprecation warnings to branch 1.1-stable
-
Add Mualem-Brooks-Corey parameterization