The one place for your designs
To enable design management, you'll need to meet the requirements. If you need help, reach out to our support team for assistance.
The new parameterization (#86 (closed)) can be inserted. Now support for small scale heterogeneities has to be re-enabled.
We came up with the following proposal: FlowParameters
stores three scaling factors for every (level 0) grid cell.
scale_head
, \xi_h
: applies to matric headscale_cond
, \xi_K
: applies to conductivityscale_por
, \xi_\theta
: is added to porosity (saturated water content)These parameters can be set through special setter functions that support multiple scaling schemes:
\xi_h = \xi_K
, \xi_\theta = 0
\xi_h = \xi_K
The only input for scaling fields will be H5 datasets. Their values will be interpreted as point values and fed into an interpolator. The interpolator then yields the field values based on global coodinates and will be evaluated for storing the scaling values per cell. Choices will be nearest-neighbor interpolator and linear interpolator. Fields will have extensions and offsets the user can choose.
Several interpolators can be merged into a ScaleAdapter, which evaluates them for yielding the actual set of scaling values. Initially, there will be a MillerScaleAdapter
and a DummyScaleAdapter
(which always yields \xi = 1
).
FlowParameters
then stores several of these along with the usual grid element mapping.
The RangeField
of interpolators is Traits::RF
(i.e, double
), whereas the ScaleAdapter
returns a 3 dimensional vector with scaling factors. FlowParameters
inserts these values into the Scaling
struct.
The parameter file must support addition of scaling fields. This initial version will only support one field covering the entire domain.
volumes:
sand:
index: 0
type: MvG
parameters:
# ..
silt:
index: 1
type: MvG
parameters:
# ..
scaling:
type: Miller
data:
scale_miller:
file: miller.h5
dataset: global/dataset
offset: [0, 0]
extensions: [1, 1]
interpolation: linear
Build new interpolators in 2D and 3D based on the current implementation and [Wikipedia] (https://en.wikipedia.org/wiki/Bilinear_interpolation).
Maybe compile these into a separate object file.
Meta-issue #63
To enable design management, you'll need to meet the requirements. If you need help, reach out to our support team for assistance.