Setting the Timestep / DT for new models in SPECFEM3D_GLOBE


I received some great assistance last time I posted in the forum, so I would like to try again.

I am working on setting up SPECFEM3D_Globe to run with different models, so I am currently working on the /get_timestep_and_layers.f90 file in the /src/shared directory. I can see this is where DT is being calculated based on the model being used and parameters related to the mesh dimensions (NEX_XI and NEX_ETA). However, it looks like there are only some values that are acceptable. When I attempt to run it with say a DT = 1 sec., I receive an mpi error due to a floating point exception. If DT is decreased to less the < 0.16 sec, this problem goes away but I am left with an unreasonably high run time on my machine. Are more processors needed to allow for higher DT values or, if anyone else is familiar with this issue, could this be related to something else?

As always, any advice is greatly appreciated.

Thank you.

Your question is addressed in section 4.2 of the user manual ( the time step must be smaller than a critical value, and an estimate of this critical value is provided by the code.


Thank you, that confirms how I thought the code was operating. For clarification, right now my run is taking 30 hr. to complete just one synthetic. This is basically just a situation where I have tried to run a model at a much finer resolution than what is reasonable for my number of processors?

The time needed to complete a SPECFEM3D simulation is roughly proportional to
NT \times NEL \times NGLL^3,
NT = number of time steps,
NEL = number of elements,
NGLL = number of GLL nodes per element side.

The smaller the time step, the larger NT is. The larger the domain size the larger NEL is. The smaller the element size (the higher the frequency), the larger NEL and NT are.

If you run a first simulation with settings NT_1, NEL_1, NGLL_1 and it takes T_1 hours to complete, you can estimate the time it will take to run another simulation as
T_2 = T_1 \frac{NT_2 NEL_2 NGLL_2^3}{NT_1 NEL_1 NGLL_1^3}

This is very helpful. Thank you!