Hello everyone,
I’m currently struggling to learn this software and have encountered several issues. I’m aiming to create a model where the surface experiences compressive velocities, ultimately leading to the formation of a mountain belt. Unfortunately, my model isn’t running as expected.
In previous attempts, I adjusted parameters such as convergence velocity, adiabatic surface temperature, and refinement function, finding that the model could run at lower velocities or higher grid heights. However, this increased costs and produced unsatisfactory results. After balancing and simplifying, I arrived at the following .prm file, but the model stops with an error at step 52. I can’t pinpoint the exact cause. My suspected reasons are: 1. Unreasonable temperature settings, 2. Unrealistic rheological properties for each layer of material, 3. Improper velocity function settings, 4. Too low grid resolution leading to iteration errors, 5. Plugin errors. I think the problem lies more in the initial setting of the component field after seeing the result of step 51. I would greatly appreciate any help in resolving this problem that has been bothering me for a long time. My files are attached here.
base.prm (31.7 KB)
*** Timestep 51: t=231452 years, dt=920.169 years
Calling FastScape... 5 timesteps of 184.034 years.
FastScape runtime... 3.708s
Solving mesh velocity system... 7 iterations.
Solving temperature system... 16 iterations.
Solving sediment_age system ... 21 iterations.
Solving noninitial_plastic_strain system ... 20 iterations.
Solving plastic_strain system ... 19 iterations.
Solving viscous_strain system ... 20 iterations.
Solving sediment_1 system ... 21 iterations.
Skipping sediment_2 composition solve because RHS is zero.
Solving upper system ... 20 iterations.
Solving lower system ... 21 iterations.
Solving mantle_upper system ... 21 iterations.
Skipping mantle_middle composition solve because RHS is zero.
Skipping mantle_lower composition solve because RHS is zero.
Solving water_content system ... 19 iterations.
Skipping max_melt composition solve because RHS is zero.
Skipping melt_record composition solve because RHS is zero.
Skipping melt_fraction composition solve because RHS is zero.
Solving rift_grain_size system ... 19 iterations.
Skipping new_crust composition solve because RHS is zero.
Initial Newton Stokes residual = 1.13293e+16, v = 1.13292e+16, p = 5.68073e+13
Rebuilding Stokes preconditioner...
Solving Stokes system... 0+11 iterations.
Relative nonlinear residual (total Newton system) after nonlinear iteration 1: 0.00336951, norm of the rhs: 3.81742e+13
Rebuilding Stokes preconditioner...
Solving Stokes system... 0+19 iterations.
Relative nonlinear residual (total Newton system) after nonlinear iteration 2: 0.00129852, norm of the rhs: 1.47114e+13, newton_derivative_scaling_factor: 0
The linear solver tolerance is set to 0.1.
Rebuilding Stokes preconditioner...
Solving Stokes system... 0+1 iterations.
Relative nonlinear residual (total Newton system) after nonlinear iteration 3: 0.000444685, norm of the rhs: 5.03797e+12, newton_derivative_scaling_factor: 0
Postprocessing:
RMS, max velocity: 0.0657 m/year, 0.144 m/year
Temperature min/avg/max: 273 K, 1608 K, 1852 K
Heat fluxes through boundary parts: -1.887e+06 W, -1.9e+06 W, 4.365e+06 W, 1.119e+06 W
Mass fluxes through boundary parts: -3.099e+07 kg/yr, -3.092e+07 kg/yr, 6.199e+07 kg/yr, 5.201e+06 kg/yr
Compositions min/max/mass: -0.06828/0.2315/5.752e+08 // -0.001584/0.03256/2.928e+08 // -0.0005882/0.4315/6.315e+09 // -0.007389/0.07323/2.432e+10 // -0.2959/1/2.756e+09 // 0/0/0 // -0.1392/1.296/2.509e+10 // -0.09803/1.107/1.811e+10 // -0.1072/1.086/9.838e+10 // 0/0/0 // 0/0/0 // 0/62.6/3.955e+13 // 0/0/0 // 0/0/0 // 0/0/0 // 0/0.001252/7.909e+08 // 0/0/0
Topography min/max: -709 m, 1187 m
Writing stokes residuals 20250211-wy-cut-ai/stokes_residuals.txt
*** Timestep 52: t=236452 years, dt=5000 years
Calling FastScape... 5 timesteps of 1000 years.
FastScape runtime... 3.703s
Solving mesh velocity system... 7 iterations.
Solving temperature system... retrying linear solve with different preconditioner...
---------------------------------------------------------
TimerOutput objects finalize timed values printed to the
screen by communicating over MPI in their destructors.
Since an exception is currently uncaught, this
synchronization (and subsequent output) will be skipped
to avoid a possible deadlock.
---------------------------------------------------------
----------------------------------------------------
Exception 'ExcMessage ("The " + solver_name + " did not converge. It reported the following error:\n\n" + exc.what() + "\n The required residual for convergence is: " + std::to_string(solver_controls.front().tolerance()) + ".\n See " + output_filename + " for convergence history.")' on rank 0 on processing:
--------------------------------------------------------
An error occurred in line <405> of file </fs2/home/liuzhonglan/wy/aspect-model-wy/source/simulator/solver.cc> in function
void aspect::{anonymous}::linear_solver_failed(const string&, const string&, const std::vector<dealii::SolverControl>&, const std::exception&)
The violated condition was:
false
Additional information:
The iterative advection solver did not converge. It reported the following error:
--------------------------------------------------------
An error occurred in line <1092> of file </fs2/home/liuzhonglan/wy/dealii-9.2/include/deal.II/lac/solver_gmres.h> in function
void dealii::SolverGMRES<VectorType>::solve(const MatrixType&, VectorType&, const VectorType&, const PreconditionerType&) [with MatrixType = dealii::TrilinosWrappers::SparseMatrix; PreconditionerType = dealii::TrilinosWrappers::PreconditionILU; VectorType = dealii::TrilinosWrappers::MPI::Vector]
The violated condition was:
iteration_state == SolverControl::success
Additional information:
Iterative method reported convergence failure in step 1000. The residual in the last step was 1.19688e+18.
This error message can indicate that you have simply not allowed a sufficiently large number of iterations for your iterative solver to converge. This often happens when you increase the size of your problem. In such cases, the last residual will likely still be very small, and you can make the error go away by increasing the allowed number of iterations when setting up the SolverControl object that determines the maximal number of iterations you allow.
The other situation where this error may occur is when your matrix is not invertible (e.g., your matrix has a null-space), or if you try to apply the wrong solver to a matrix (e.g., using CG for a matrix that is not symmetric or not positive definite). In these cases, the residual in the last iteration is likely going to be large.
--------------------------------------------------------
The required residual for convergence is: 102300091.679163.
See 20250211-wy-cut-ai/solver_history.txt for convergence history.
--------------------------------------------------------
Aborting!
----------------------------------------------------
yhrun: error: cn5184: task 0: Exited with exit code 1
slurmstepd: error: mpi/pmix_v3: _errhandler: cn5184 [0]: pmixp_client_v2.c:212: Error handler invoked: status = -25, source = [slurm.pmix.4860408.0:0]
slurmstepd: error: *** STEP 4860408.0 ON cn5184 CANCELLED AT 2025-02-11T17:10:27 ***
yhrun: Job step aborted: Waiting up to 32 seconds for job step to finish.
yhrun: error: cn5188: tasks 224-279: Killed
yhrun: error: cn5186: tasks 112-167: Killed
yhrun: error: cn5187: tasks 168-171,173-223: Killed
yhrun: error: cn5187: task 172: Killed
yhrun: error: cn5185: tasks 56-82,84-111: Killed
yhrun: error: cn5185: task 83: Killed
yhrun: error: cn5184: tasks 1-55: Killed
The model result I want to achieve:
This is a model that previously produced good results but had incorrect parameters.
Additionally, as a beginner, are there any simpler files I can use for learning purposes? Thank you very much again.
Best,
Noriel Wang