Reducing the boundary velocity function leads to an increase in model runtime and errors

Hi everyone,

I have set up a compression model in ASPECT to simulate the subduction - orogeny process as well as the role of crustal flow under a quiescent state after the orogeny concludes. Initially, it involves a constant compression, and at a certain point, the prescribed boundary velocity gradually decreases over time. At a specific time (for example, 10 Ma), it will become 0, and there will be no velocity thereafter.

My question is: Regarding the simulation computation time, why does the model run quickly when the velocity equation is not 0, but when the boundary velocity gradually decreases and reaches 0, the model takes a long time to run in the subsequent steps and is prone to errors? What causes this issue, and how can I make it run faster and more stably? Thank you for your suggestions.

My .prm document:
convection000.prm (33.4 KB)
I also tried other velocity functions:

  subsection Function
    set Variable names      = x,y,t
    set Function constants = mm=0.001, yr=1, outflow=-20, factor=-0.9, pow=4, time=10e6, Z=600e3, X=1200e3    
    set Function expression = if(t <= time, if(x < X/2, -outflow/2*(1 + factor*(t/time)^pow)*mm/yr,outflow/2*(1 + factor*(t/time)^pow)*mm/yr ), if(x < X/2, -(1+factor)*outflow/2*mm/yr, (1+factor)*outflow/2*mm/yr) );\
        if(t <= time, (outflow*(1 + factor*(t/time)^pow)*Z)/X*mm/yr, (1+factor)*outflow*Z/X*mm/yr)
  end

and

  subsection Function
    set Variable names      = x,y,t
    set Function constants = mm=0.001, yr=1, outflow=-20, factor=-1, pow=4, time=10e6, Z=600e3, X=1200e3    
    set Function expression = if(t <= time, if(x < X/2, -outflow/2*mm/yr, outflow/2*mm/yr ), 0 );\
        if(t <= time,(outflow*Z)/X*mm/yr,0)
  end

Best,
Noriel

Hi Noriel,

My question is: Regarding the simulation computation time, why does the model run quickly when the velocity equation is not 0, but when the boundary velocity gradually decreases and reaches 0, the model takes a long time to run in the subsequent steps and is prone to errors? What causes this issue, and how can I make it run faster and more stably? Thank you for your suggestions.

This is actually a fairly common issue and one that my colleague and I ran into recently, so not specific to your model.

The initial phase of deformation generates variations in topography and lithospheric structure, which are then unsupported once the applied velocities are reduced to zero or near zero.

In the ensuing phase of deformation the model is undergoing isostatic equilibration, which often is more challenging for the solvers.

I think you are on the right track with not setting the quiescent state velocities to exactly 0, but still a velocity of 0.001 mm/yr is quite small.

Here are my suggestions on how to proceed to make the model more stable (i.e., avoid nonlinear or linear solver errors):

  1. Try quiescent state velocities of 0.1 or 1 mm/yr
  2. Decrease the CFL value to 0.2 or 0.1

The first suggestion may also help the model run faster (i.e., converge to a solution more quickly).

Please let us know how it goes!

Cheers,
John

Hi John,

Thank you for your quick response!

I tried using a final speed of 1 after your suggestion and found that the running speed is 30% faster than before, which can save costs! I also tried to modify the velocity equation with the aim of enabling it to decelerate within the specified time, rather than the entire first half of the time, in order to save computational load, which is also a feasible approach.

Next, I will adjust the model according to your suggestions and test different parameters. I will contact you if there is any progress. :blush:

Cheers,
Noriel