Wrong behavior of Richardson solver in permafrost-like simulations
After experiencing massive cooling in the soil of a simulation, I've built a well defined, synthetic simulation. It consists of 5m of soil (with 58 elements with relatively large ice content) initialized at a constant temperature (0°C) and forced by constant meteorological fields (TA=TSG=0°C, RH=0.5, VW=1, HS=0, ISWR=0, ILWR=clear sky, PSUM=0). Then I run the simulation for a few days.
When using the BUCKET water transport, the soil temperature remains constant at 0°C (besides a few minor glitches that don't really last). When using RICHARDSON, a massive cool down appears after the first timestep in some elements and quickly propagates through the soil (temperatures around -30°C). After bisecting the problem, it appears that commit 08fc3387 (from 09.10.2021) is the culprit in that it changed the default value of SnowpackAdvanced::COUPLEDPHASECHANGES from true to false. If I now set COUPLEDPHASECHANGES to true, the simulation works as expected (constant soil temperature at 0°C, as in the previous commit 8a7a85bd or with BUCKET).
Now, I have a few questions:
- is such a major error in the soil temperatures consistent with the expectations of not resolving the coupled phase change in soil (by the way, I tried setting all temperature at -10°C in order to avoid phase change, but the issue remains. I don't know what kind of range of melting point depression to expect but I would guess that 10 degrees is enough to be safe)? Or to put it differently, is this problem restricted to soil simulations with relatively large ice content and thus not a problem for normal snow simulations?
- if the answer to (1.) is no, should we revert the default value of COUPLEDPHASECHANGES to TRUE?
- should we explain in the documentation how to better use COUPLEDPHASECHANGES (ie when is it considered safe to set it to false, what are the typical symptoms of something going bad)?
For reference, the .sno file, the .smet file (it is almost not used as all fields but the unused TX field are kicked out and replaced by data generators) and the .ini file.