Hi Martina,
Curiously my problems are more when I try steady state simulations than when I do transients. Transients have (almost) always converged.
In my problem I start with a given glacier geometry and temperature and I first relax the free surface (not solving for Temp) for 50100 years (or more sometimes). Then I try to do a steaty state calculation for temperature (using TemperateIceSolver) using the velocity computed from the previous solution (so I only solve for Temp). Trying this in steady state does not work if I imposed sliding (constant Slip Coefficient) in my first run. If I had no sliding then no problem to get a steady state.
Funny thing about sliding is that I get sliding velocity higher than surface velocity at several nodes where bed elevation gradient is high. Don't know if anyone has observed that.
I tried two different initial conditions for temperature (one with a linear steady state) and one that takes into account advection. Neither helped to converge when trying the steady state.
I've turned off heat sources (friction, strain heating) but that does not help.
I have Loop While Unconstrained Nodes = False because, like you, having it True makes things worse.
The problem appears to come from advection. When that's off then I can get a steady state solution. When on the temperatures go crazy and the TemperateIceSolver does not converge.
Again this only happens when I have sliding with a constant Slip Coefficient.
I have tried turning off the heat flux at the base. First I tried with a fixed temperature and that converged in steady state (with sliding and advection on). Trying to put heat flux back on appears to work for fine meshes (I am still exploring here). So may be that's the way to go, too early to tell yet.
I've tried the temperaturedependent sliding law of Hakime et al. Greenland paper but that did not work for me so far. I tried it from the start (in my first run trying to relax the free surface) and may be that's not a good strategy.
I don't seem to have the problem of the free surface going below the bedrock. That's working well.
And yes possibly using Mesh Extrusion might help but I have not been able to make it work yet.
Thanks
Denis
Problem with solving temperature after inverse method

 Posts: 56
 Joined: 15 Dec 2010, 13:50
Re: Problem with solving temperature after inverse method
Hi Denis,
just one quick thought, I had once troubles with advection and that was in the case of a relaxation run as you do. Did you check your Mesh Velocities after this relaxation? Did you set them to zero afterwards? There is a discussion somewhere here in the forum with input about these Mesh Velocities from Fabien in the context of relaxation runs. You should set (or initialize) them to zero after the relaxation.
In my case  for reasons that I did not understand and did not dig deaper in, since I did my simulations finally in a different way  I had to make a different version of the TemperatureIce Solver and set there in the code the MeshVelocities manually to zero, nothing else worked to get them to zero.
Try to put them zero in a "normal" way and also in the "hard" way to see if that affects your problem!
The other thing is maybe a spatial constant Slip Coefficient steadystate does not exist for your glacier? I have the problem with velocities (I don't know for temperature), for me there exists no steadystate velocity field with a spatial constant slip coefficient, it does not converge.
I don't understand your comment "Funny thing about sliding is that I get sliding velocity higher than surface velocity", do you mean that your velocities at the basis are higher than those at the surface? Then something is wrong in my opinion. Or do you mean that your sliding velocities are higher than your deformation velocities? That's not surprising I'd say in areas where sliding is important.
Martina
just one quick thought, I had once troubles with advection and that was in the case of a relaxation run as you do. Did you check your Mesh Velocities after this relaxation? Did you set them to zero afterwards? There is a discussion somewhere here in the forum with input about these Mesh Velocities from Fabien in the context of relaxation runs. You should set (or initialize) them to zero after the relaxation.
In my case  for reasons that I did not understand and did not dig deaper in, since I did my simulations finally in a different way  I had to make a different version of the TemperatureIce Solver and set there in the code the MeshVelocities manually to zero, nothing else worked to get them to zero.
Try to put them zero in a "normal" way and also in the "hard" way to see if that affects your problem!
The other thing is maybe a spatial constant Slip Coefficient steadystate does not exist for your glacier? I have the problem with velocities (I don't know for temperature), for me there exists no steadystate velocity field with a spatial constant slip coefficient, it does not converge.
I don't understand your comment "Funny thing about sliding is that I get sliding velocity higher than surface velocity", do you mean that your velocities at the basis are higher than those at the surface? Then something is wrong in my opinion. Or do you mean that your sliding velocities are higher than your deformation velocities? That's not surprising I'd say in areas where sliding is important.
Martina

 Posts: 56
 Joined: 15 Dec 2010, 13:50
Re: Problem with solving temperature after inverse method
Hi Martina,
I am setting Mesh Velocities to zero and that works fine. It's a bit confusing when doing a restart but I got it to work.
You may be right about a Slip Coefficient that is not constant under the glacier. How did you apply a nonconstant slip coefficient? What did you use to make it variable (if not temperature)?
I know there is a problem with the sliding speeds. They are greater than the surface speed (only at a few nodes, something like 10 out of 100,000). This happens all the time and is really weird.
I have just run new cases trying to get steady state convergence with advection and heat flux. Starting from steady state with fixed temperature at the bed and then switching to a heat flux bc first at 0 then all the way up to 0.08 W/m2 seems to work (only for the finer mesh). I am checking the solution right now.
Cheers,
Denis
I am setting Mesh Velocities to zero and that works fine. It's a bit confusing when doing a restart but I got it to work.
You may be right about a Slip Coefficient that is not constant under the glacier. How did you apply a nonconstant slip coefficient? What did you use to make it variable (if not temperature)?
I know there is a problem with the sliding speeds. They are greater than the surface speed (only at a few nodes, something like 10 out of 100,000). This happens all the time and is really weird.
I have just run new cases trying to get steady state convergence with advection and heat flux. Starting from steady state with fixed temperature at the bed and then switching to a heat flux bc first at 0 then all the way up to 0.08 W/m2 seems to work (only for the finer mesh). I am checking the solution right now.
Cheers,
Denis
Re: Problem with solving temperature after inverse method
Hi Denis and Martina,
Two comments on the discussion above.
The fact that the Mesh Velocities have to be set to zero after a relaxation problem when looking to the steady solution for temperature comes from the fact that the TemperateIce solver is using Mesh Velocities in the ALE formulation. For a steady state solution and a fixed geometry, obviously it should not be accounted for any Mesh Velocity, but when doing a restart from a diagnostic simulation they are not null. That is why you have to nullify them at the beginning of the steady state simulation.
On the point that few nodes at the base have velocity larger than at the surface, I think this is not a problem. I guess it can occur in 3D for some configurations of the bedrock.
Regards
Olivier
Two comments on the discussion above.
The fact that the Mesh Velocities have to be set to zero after a relaxation problem when looking to the steady solution for temperature comes from the fact that the TemperateIce solver is using Mesh Velocities in the ALE formulation. For a steady state solution and a fixed geometry, obviously it should not be accounted for any Mesh Velocity, but when doing a restart from a diagnostic simulation they are not null. That is why you have to nullify them at the beginning of the steady state simulation.
On the point that few nodes at the base have velocity larger than at the surface, I think this is not a problem. I guess it can occur in 3D for some configurations of the bedrock.
Regards
Olivier
Re: Problem with solving temperature after inverse method
Hi Denis,
if your MeshVelocities are zero and you have v_Bed > v_surf only in some points, them I'm running out of ideas .
I'm not sure if it's possible that a steadystate velocity field exists (I guess you have calculated that), but no temperature steadystate. I'm a bit puzzled that your problems come from advection. Do you have any velocity measurements to check if the sliding that you are applying to leads to a reasonable velocity distribution at the surface?
And are you sure that the few points with v_Bed > v_Surf are not creating your problems for the advection since at these points the velocity field seems to be strange?
I am using in the meanwhile an inverse method to infer my basal sliding parameters from surface velocities and that's the only way for the moment to really model good surface velocities. However, I got earlier also converged solutions which were not perfect, but still reasonable with prescribed sliding coefficients: In my case the main idea was to separate by hand with a mask areas with sliding and areas without sliding. I applied no sliding BC in the very slow areas and then different constant sliding coefficients for my different fastflowing areas (constant within one such region, but different from one to the other).
Martina
if your MeshVelocities are zero and you have v_Bed > v_surf only in some points, them I'm running out of ideas .
I'm not sure if it's possible that a steadystate velocity field exists (I guess you have calculated that), but no temperature steadystate. I'm a bit puzzled that your problems come from advection. Do you have any velocity measurements to check if the sliding that you are applying to leads to a reasonable velocity distribution at the surface?
And are you sure that the few points with v_Bed > v_Surf are not creating your problems for the advection since at these points the velocity field seems to be strange?
I am using in the meanwhile an inverse method to infer my basal sliding parameters from surface velocities and that's the only way for the moment to really model good surface velocities. However, I got earlier also converged solutions which were not perfect, but still reasonable with prescribed sliding coefficients: In my case the main idea was to separate by hand with a mask areas with sliding and areas without sliding. I applied no sliding BC in the very slow areas and then different constant sliding coefficients for my different fastflowing areas (constant within one such region, but different from one to the other).
Martina

 Posts: 56
 Joined: 15 Dec 2010, 13:50
Re: Problem with solving temperature after inverse method
Hi Martina,
Unfortunately this is a paleo ice stream so no data on velocity so no way to invert for a sliding coefficient.
It seems that a finer mesh improves the velocity field at the bed (no more sliding velocity > surface velocities). Still some temperature that our too cold for some unknown reason but again that's at a few nodes.
Also, as mentioned, no sliding gives no problem. It's only with sliding that I cannot converge to a steady state for temperature.
I'll try masking areas with sliding/no sliding bc as you have done.
Thanks
Denis
Unfortunately this is a paleo ice stream so no data on velocity so no way to invert for a sliding coefficient.
It seems that a finer mesh improves the velocity field at the bed (no more sliding velocity > surface velocities). Still some temperature that our too cold for some unknown reason but again that's at a few nodes.
Also, as mentioned, no sliding gives no problem. It's only with sliding that I cannot converge to a steady state for temperature.
I'll try masking areas with sliding/no sliding bc as you have done.
Thanks
Denis