Skip to content

Reparameterize soil layer

Once again refactors and reparameterizes the default Soil layer implementation.

Homogeneous and Heterogeneous have been replaced with a more generic parameterization scheme that should allow the user to easily switch between different soil parameterizations. Currently, three modes are provided: Nonparametric, Parametric{ByXicePorSat}, and Parametric{ByComposition}.

ByXicePorSat uses excess ice, natural porosity, saturation, and the organic fraction (of solid part) as the parameters. ByComposition permits specification directly of the total component fractions for mineral, organic, excess ice, and pore-space water/ice, which must be <= 1.0.

Breaking change: SoilProfile is now constructed using the SoilProperties type instead of just a tuple, and uses the xice/porosity/saturation/organic parameterization, which is automatically converted to standard total compositions later. Hopefully, this will make things a bit easier since the IDE can help with autocompleting keyword-argument names (I think).

@fmiesner and @jnitzbon Sorry for breaking this code so much... hopefully it doesn't affect you. Note that any existing scripts which construct a SoilProfile manually will need to be updated.

Merge request reports