TemperateIce stability issues

Extension of Elmer in computational glaciology

TemperateIce stability issues

Postby joeatodd » 09 Jun 2015, 16:19

Hi all,

I'm encountering some strange convergence issues in the temperature solver in a coupled NS/Heat equation + mesh update spinup run.

Although my simulation is transient, I'm attempting to solve the steady state temperature equation by specifying:

Code: Select all
Steady State Condition = Real 1.0

in the TemperateIce solver section.

Interestingly, this seems to work (though it takes a while to converge) if I switch off the Mesh Update solver, but not if it is on. The strange part is, if I specify in the body force:

Code: Select all
Mesh Update = Real 0.0

such that I get a "solution trivially zero" (i.e. Mesh Update solver doing nothing), I still get a breakdown error...

This is really confusing me. It seems as if MeshSolve.F90 is doing something, aside from displacing the mesh, which is messing up the temperature solution on the following timestep.

A final piece of the puzzle: If I turn off:

Code: Select all
Temp Load = Variable Velocity 1
     Real Procedure  "ElmerIceUSF" "getFrictionLoads"

then it seems to behave, even with the mesh update.

If anyone has any ideas what might be causing this, I'd be very grateful!
Posts: 34
Joined: 02 Feb 2012, 18:49

Re: TemperateIce stability issues

Postby raback » 09 Jun 2015, 18:22


In HeatSolve there is something like:

IF ( ALL(MU==0) ) C1 = 0.0D0

Here MU is the mesh velocity. This is rather dirty test and maybe you have some noise that does not trigger this condition and hence you have still convection accounted i.e. C1=1.0. Now of course this should not affect but it could still introduce some discontinuity in the way the solution is carried out. You could try to see what the value of C1 is and enforce it to zero. If the problem is located then some further anylysis might be needed.

Site Admin
Posts: 3208
Joined: 22 Aug 2009, 11:57
Location: Espoo, Finland

Re: TemperateIce stability issues

Postby joeatodd » 10 Jun 2015, 13:36

Hey Peter,

Thanks for getting back to me.

I tried modifying the temperature solver to set
Code: Select all
MeshVelocity = 0.0
internally when running in steady state but this didn't make a difference.

I've tracked the problem down to the recomputation (I think) of the stabilization parameters within DisplaceMesh. I modified my local MeshSolve.F90 to pass StabFlag=.FALSE. to DisplaceMesh, and this now the steady state temperature and mesh update solvers play nicely together.

I don't know enough about stabilization methods to know whether this is a bug or expected behaviour, or what the consequences of not recomputing the stabilization parameters in mesh update are.

Posts: 34
Joined: 02 Feb 2012, 18:49

Return to Elmer/Ice

Who is online

Users browsing this forum: No registered users and 1 guest