I've come across a problem when applying the Coulomb sliding law to my simulation.
The output is completely different when setting the Cauchy flag on or off (which I know shouldn't be the case). With the flag set to False, the flow solution doesn't converge. When True, it does but the results are completely insensitive to the value of $As in the .sif (attached).
I've looked at the code and I can see that in the Friction_Coulomb function, StressValues is receiving zeros each time, so this is the reason for the incorrect behaviour. By contrast, FlowValues is receiving sensible numbers for velocity and pressure.
Without being able to debug the code, I can't get any closer to the route of the problem. Is anyone able to help further? Have I made some mistake in the .sif?
Thanks
Matt
Problem with the Coulomb sliding law
Problem with the Coulomb sliding law
 Attachments

 case_coulomb.sif
 (13.62 KiB) Downloaded 99 times
Re: Problem with the Coulomb sliding law
Dear Matt,
The issue here is that stresses are unknown (and therefore set to zero) for the first time you enter the Stokes solver. This will be always the case for the first time step of a transient simulation or for the first iteration of a steady state simulation, as in your case. To solve this, you will need at least 2 steady state iterations, which can be forced by setting
in the Simulation section.
Hope it helps,
Olivier
The issue here is that stresses are unknown (and therefore set to zero) for the first time you enter the Stokes solver. This will be always the case for the first time step of a transient simulation or for the first iteration of a steady state simulation, as in your case. To solve this, you will need at least 2 steady state iterations, which can be forced by setting
Code: Select all
Steady State Max Iterations = 5
Steady State Min Iterations = 2
Hope it helps,
Olivier
Re: Problem with the Coulomb sliding law
Dear Matt,
I have modified the user function such that if the Cauchy normal stress is zero (which should be the case at a first iteration of a steady state problem or at the first time step of a transient one), then the normal stress is approximated by the isotropic pressure. If you do only one iteration, you should then get the same result with Cauchy or deviatoric stress. But, I would recommand to go for more than one iteration anyway to got the true evaluation of the normal stress (even if I agree that it should not change that much the evaluation of the effective pressure). On top of that, I would recommand to define an effective pressure variable so that you can have it evaluated correctly even at the first iteration.
Can you test this (you will need to get the last Elmer/Ice version and recompile).
Hope it helps,
Olivier
I have modified the user function such that if the Cauchy normal stress is zero (which should be the case at a first iteration of a steady state problem or at the first time step of a transient one), then the normal stress is approximated by the isotropic pressure. If you do only one iteration, you should then get the same result with Cauchy or deviatoric stress. But, I would recommand to go for more than one iteration anyway to got the true evaluation of the normal stress (even if I agree that it should not change that much the evaluation of the effective pressure). On top of that, I would recommand to define an effective pressure variable so that you can have it evaluated correctly even at the first iteration.
Can you test this (you will need to get the last Elmer/Ice version and recompile).
Hope it helps,
Olivier
Re: Problem with the Coulomb sliding law
Hi Olivier
Sorry about the delay in getting back to you over this. Where would you recommend I define the effective pressure variable? I've tested the new code without this variable and I still get different output for the first iteration.
Thanks
Matt
Sorry about the delay in getting back to you over this. Where would you recommend I define the effective pressure variable? I've tested the new code without this variable and I still get different output for the first iteration.
Thanks
Matt
Re: Problem with the Coulomb sliding law
Dear Matt,
Ok, that is strange that you don't get the same results after the first steady iteration with the new version of the solver? Are the results still different if you go for more than one iterations?
For the effective pressure, you will have to export the variable "Effective pressure" from one solver :
and then give it an initial value in the initial condition section of the sif:
(in this above example it is equal to the overburden ice pressure, assuming the variable "thickness" is known (will need a restart step to have it known for the initial condition).
Hope it helps,
Olivier
Ok, that is strange that you don't get the same results after the first steady iteration with the new version of the solver? Are the results still different if you go for more than one iterations?
For the effective pressure, you will have to export the variable "Effective pressure" from one solver :
Code: Select all
Solver XX
Exported Variable 5 = dofs 1 "Effective Pressure"
End
Code: Select all
Initial Condition 1
Effective Pressure = Variable Thickness
Real MATC "rhoi*gravity*tx"
End
Hope it helps,
Olivier
Re: Problem with the Coulomb sliding law
Hi Olivier
Without the variable: yes, the results are very different after the first steady state iteration. As before, they converge towards the same solution with multiple iterations.
I haven't tested with the Effective Pressure variable yet (I made a mistake with the direction of gravity) and it's too late for today, I'll try again tomorrow!
Thanks
Matt
Without the variable: yes, the results are very different after the first steady state iteration. As before, they converge towards the same solution with multiple iterations.
I haven't tested with the Effective Pressure variable yet (I made a mistake with the direction of gravity) and it's too late for today, I'll try again tomorrow!
Thanks
Matt
Re: Problem with the Coulomb sliding law
Hi Olivier,
I've tested this properly now, with the effective pressure variable defined correctly. I now get the same behaviour with or without the Cauchy stress from the first iteration, as expected. Also, the NS iterations converge nicely in both scenarios.
Thanks for your help
Matt
I've tested this properly now, with the effective pressure variable defined correctly. I now get the same behaviour with or without the Cauchy stress from the first iteration, as expected. Also, the NS iterations converge nicely in both scenarios.
Thanks for your help
Matt