[MITgcm-support] seaice, LSR_ERROR, EVP
Martin.Losch at awi.de
Thu Apr 8 01:33:52 EDT 2021
I am sorry that you have trouble with stability.
I run my simulations with these parameters:
SEAICEnonLinIterMax = 10,
LSR_ERROR = 1.e-5 (or smaller).
The first one makes the lsr solver run 5 times longer than the default, the second one usually increases runtime only a little with the benefit that the parallelization improves dramatically (especially at higher resolution). I think that this has been discussed often here and elsewhere (or at least it feels that I explain this to someone almost once a week, maybe not in an email). The main reason that these value have not made it as defaults is the extra run-time that we would like to avoid for some large set-ups (where the maintainers have bigger issues than fiddling with the sea ice model).
I do not recommend to use EVP to avoid instabilities in a ice-ocean simulation. In my experience, the LSR is far more stable than the EVP solver, especially at high resolution. The reason is, that both solvers do not converge (ever in a realistic configuration), because it’s a very stiff problem (see the literature about it), but the LSR solver moves the momentum state towards convergence in a smooth way (intermediate solution steps are smooth), while the EVP solver is always a little noisy. The EVP noise reduces, when you use many iterations and there are ways to speed this up (again, see literature, e.g. Kimmritz et al), but in my experience, the chances of some noise surviving the EVP iteration are larger than for any poorly converged LSR solution.
I cannot exclude that model explosions (NaN) originate from the sea ice solver, but in most instances that I have seen this is not directly due to the solver, but indirectly, by creating surface boundary conditions for the ocean model that then lead to violation of CFL etc.
> On 7. Apr 2021, at 13:58, Stanislav Martyanov <martyanov.sd at gmail.com> wrote:
> Recently I've found a conversation at github about possible problems with the seaice package related to too large LSR_ERROR value set by default to 1.0e-4.
> In that topic it was suggested to use a smaller value of LSR_ERROR: 1.0e-5 or 1.0e-6, for convergence reasons. It was in 2019.
> I wonder if a consensus has been achieved in the MITgcm community for now about this tuning?
> This question has arisen because I periodically get NaNs (I suspect it is because of sea ice) in a high-res model with resolution O(1 km). It occurs during the melting period in summer. Reducing the deltaT from 120 sec to 90 solved the problem, but it occurred again already with 90 sec in the next month . Surprisingly, returning back to 120 sec allowed me to get through it. I use the default LSR solver and suspect that the problem may be a bed convergence of the sea ice model.
> What can be a better remedy in this case:
> 1) continue to use LST solver but set LSR_ERROR = 1.0e-5, everything else is default. Should I also change SEAICEnonLinIterMax in this case from default 2 to 10?
> 2) LSR is not good for high-res. Entirely switch to EVP solver (SEAICEuseEVPrev or SEAICEuseEVPstar?), everything is default.
> Stanislav Martyanov
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1665 bytes
Desc: not available
More information about the MITgcm-support