Hi, hope you are doing well!
I noticed there was an update in elasticity recently or few months ago, and I would like to ask some related to that.
I figured out few things:
- I must use operator splitting with fixed reaction time step for elasticity with compositions.
- I can’t use fixed elastic time step, as it makes calculation diverge.
- Viscoelastic beam benchmark has additional compositions, ending with _old. (I am not sure if these compositions are new and mandatory to add)
Then, I find differences in results by changing into new version:
-
On visualization and statistics, viscosity looks orders lower at initial time step then increase from first time step. Also, there is a spike in rms velocity at initial time step. You can refer to the figures of statistics below between 0 Myr and 0.02 Myr. These were not shown when I used fixed elastic time step.
-
Even though I used same value for fixed reaction time step with fixed elastic time step that I have previously used, effective viscosity seems different. Mean viscosity has changed from ~10^{21.5} to ~10^{20.3} at the time before the initiation of convection. Also convection drops viscosity larger than before. On the other hand, interestingly, RMS velocity does not vary.
Is there a further reading so I can understand this update?
And could I ask why I get such results at initial time step?
Please let me know if I wrote some unclearly. I will add more!
Thank you so much!
Hyunseong
Hi Hyunseong,
Thank you for the all the testing and reporting the results! We indeed made some substantial changes to the elasticity implementation recently that require:
- Using operator splitting with a timestep that is larger than the computational timestep
- Using a nonlinear solver
- Adding a second set of stresses that end with _old
Using a fixed elastic time step is allowed, but having a computational timestep that is much smaller than the elastic timestep reduces the accuracy due to the timestep interpolation.
Even if not using a fixed elastic timestep, setting the value for the fixed elastic timestep in the prm file to the computational timestep ensures the correct initial value of the elastic viscosity.
The viscosity that is outputted is the visco-elastic viscosity, so dependent on the elastic and computational timestep. If the computational timestep is smaller than the elastic timestep, the effective viscosity also becomes smaller, but this is compensated by an increasing body force term in the momentum equation (which could explain why RMS velocity is the same).
You can find prm examples in the benchmark folder, e.g. benchmarks/viscoelastic_stress_build_up/. Perhaps you could also share you prm file so that we can have a look at your settings?
Cheers,
Anne
Hi Anne,
Thanks for the reply!
Ah yes I forgot mentioning about nonlinear solver for advection.
My elastic time step was 1e5 yr and initial time step was 100 yr. I guess that was why the calculation was not converging.
I also get why I have viscosity drops!
Then, what does the reaction time step do for elasticity? Is it replacing elastic time step?
Also I roughly checked my models with and without initial thermal perturbation and saw viscosity is lower overall with perturbation. Is viscosity at initial time step related to velocity throughout the model?
I leave my prm file here.
original.prm (7.8 KB)
Thanks again for the explanation! 
Hi Hyunseong,
Then, what does the reaction time step do for elasticity? Is it replacing elastic time step?
We use the operator splitting functionality to update the stored stresses. As we know exactly the amount to update them with, we can use the fixed step reaction solver and only one time step. To make sure we do only one time step, we set Reaction time steps per advection step = 1 and Reaction time step larger than the computational time step. The size of the reaction time step therefore doesn’t matter, as long as it is larger than the computational time step Maximum time step. The elastic time step is still used as the elastic time step.
Also I roughly checked my models with and without initial thermal perturbation and saw viscosity is lower overall with perturbation. Is viscosity at initial time step related to velocity throughout the model?
I’m not sure I understand your question in relation to the elasticity implementation changes. Do you mean that you see a difference in the response to temperature between the old and new implementation?
In general, the viscoplastic viscosity is temperature-dependent and will be lower for higher temperatures.
I leave my prm file here.
Maybe you could have a try with set Fixed elastic time step = 1e2, as this is your initial computational time step size.
And just out of curiosity, how much do you gain from these high polynomial orders that I noticed in the prm file:
set Composition polynomial degree = 4
set Temperature polynomial degree = 4
Cheers,
Anne
Hi Anne,
We use the operator splitting functionality to update the stored stresses. As we know exactly the amount to update them with, we can use the fixed step reaction solver and only one time step. To make sure we do only one time step, we set Reaction time steps per advection step = 1 and Reaction time step larger than the computational time step. The size of the reaction time step therefore doesn’t matter, as long as it is larger than the computational time step Maximum time step. The elastic time step is still used as the elastic time step.
Thanks! This helps a lot!
I’m not sure I understand your question in relation to the elasticity implementation changes. Do you mean that you see a difference in the response to temperature between the old and new implementation?
In general, the viscoplastic viscosity is temperature-dependent and will be lower for higher temperatures.
I do find that initial time step has lower viscosity throughout the geometry and has velocity more sensitive to perturbation after new implementation is used. It sort of gives me the impression that Maximum first time step is used instead of Fixed elastic time step for effective viscosity calculation. But because RMS velocity is not to different, I guess it is the part compensated by body force.
Maybe you could have a try with set Fixed elastic time step = 1e2, as this is your initial computational time step size.
Thanks! I would try that.
And just out of curiosity, how much do you gain from these high polynomial orders that I noticed in the prm file:
set Composition polynomial degree = 4
set Temperature polynomial degree = 4
Honestly, these were values suggested by my supervisor, so I haven’t checked much about it. I will try it lower values. If I figure out that these were the parameters that have made my recent model’s calculation time problematically long, I will just lower them to 2.
Cheers,
Hyunseong