AdrienWehrle / diuca

GNU Lesser General Public License v2.1
0 stars 1 forks source link

Ice slab converges on unexpected time unit #3

Closed AdrienWehrle closed 4 months ago

AdrienWehrle commented 4 months ago

iceslab_ad_2d.i and the material ADIceMaterial.C used in this problem are in MPa.a. Hence the system should converge in a few years maximum (usual time scale for ice), e.g. dt=0.1 and time=10 for convergence. However, dt=0.1 or even dt=10 are associated with very high steady-state relative differential norms (e.g. 1e-02) and it would take tens of thousands of steps to reach 1e-08.

Convergence can be reached (with final velocities of the right order for an ice slab) and low steady-state relative differential norms on the first timestep (1e-08), having a dt of a year but in seconds i.e. dt = 1 * 3600 * 24 * 365 = 31536000 (convergence reached at time=93)... Although the system should be in year and not second.

On dt = 315360000 (10 years in seconds), it takes time=16 to reach convergence.

Dimensions, especially time dimensions, need to be checked and fixed if needed.

Maybe the velocity gradients are still computed in seconds although my viscosity is in years, explaining the dt requiring to be in seconds?

AdrienWehrle commented 4 months ago

Hoping automatic_scaling will do a good job even with extremely low velocity values, an ADIceMaterial in SI units was added in https://github.com/AdrienWehrle/diuca/commit/06f669b3d245f64e4ddcffa04fc1b16f090a1ff2 (hence switching the whole system back to Pa.s).

iceslab_ad_2d_SI.i now reaches convergence with dt = 3153600 (a tenth of year in seconds) at time=3 because it gets stuck on the finite strain rate parameter preventing viscosity from being inf.

AdrienWehrle commented 4 months ago

iceslab_ad_2d_SI.i : loosening II_eps_min (the finite strain rate parameter) prevents the viscosity from hitting the lower bound, but no convergence is reached.

AdrienWehrle commented 4 months ago

II_eps_min shouldn't be used for now since we're using an eulerian approach and not a lagragian one for now.

AdrienWehrle commented 4 months ago

@GiudGiud and I realized reaching convergence on this problem was part of a bigger effort of getting diuca to converge on the very high ice viscosity. In this effort, @GiudGiud implemented a finite volume problem for diuca here https://github.com/AdrienWehrle/diuca/pull/4.

We also realized automatic_scaling in SI units (with ADIceMaterialSI) wasn't performing well, but manual scaling on each variable helped a lot reaching convergence.

We also tried using a field split, which didn't help because we initially got bad scaling from the automatic_scaling, it should work now that we're using manual scaling.

Closing this issue as it's very general and points towards pretty much all current development efforts for diuca that will be addressed in future PRs and potential Issues.