Explicit dynamic relaxation

DynEarthSol finds static or quasi-static equilibrium through dynamic relaxation. Combined with the explicit time marching, this feature significantly simplifies the overall algorithm.

Updated Lagrangian scheme

DynEarthSol can simulate large deformations within the framework of small-strain kinematics and naturally keep track of free boundary deformation. It also enjoys the power of dynamic mesh adaption.

Various material models

DynEarthSol provides linear elasticity, poro-elasticity, Mohr-Coulomb plasticity with strain or rate-and-state weakening, and Maxwell viscoelasticity. DynEarthSol make it easy to implement new material models.

NSF LogoSupported by the National Science Foundation Award 2104002.

More simulation videos on YouTube →

Start here

Install DES3D

Dependencies, the full build-option matrix, and platform notes for Linux, macOS, and GPU builds.

Build guide

Run your first model

Set velocity boundary conditions, insert a weak zone, and define model geometry with a .poly file.

Tutorials

Generate an input file

A browser-based form that writes a ready-to-run .cfg configuration file. No installation required.

Input generator

Visualize results

Convert output with 2vtk.py, or write the compressed VTKHDF format and open it directly in ParaView.

Visualization

Understand the physics

Constitutive models, dynamic relaxation, mass scaling, remeshing, and the time-integration scheme.

Theory

Couple with surface processes

Two-way coupling with goSPL: DES3D supplies tectonic velocities, goSPL returns erosion and deposition.

goSPL coupling

Quick start

Build the 2D executable and run a worked example. The user manual carries the complete build guide: every build option, the optional libraries, and the platform notes.

1. Install the dependencies. Pick the line for your platform; the build finds everything on its own, with no paths to edit.

brew install boost libomp                               # macOS (Homebrew)
sudo apt install g++ make libboost-program-options-dev  # Debian / Ubuntu
sudo dnf install gcc-c++ make boost-devel               # Fedora / RHEL

2. Get the source, including the bundled submodules.

git clone --recurse-submodules https://github.com/GeoFLAC/DynEarthSol.git
cd DynEarthSol

3. Build. make on its own builds the 3D executable, dynearthsol3d. Pass ndims=2 for the 2D executable used below.

make ndims=2

4. Run an example.

cd examples
../dynearthsol2d ./core-complex.cfg

More example configurations live in examples/, and examples/defaults.cfg documents every input parameter. dynearthsol2d -h lists them too. To write your own input file without editing one by hand, use the web-based input generator, which builds a ready-to-run .cfg file from a form. If a build picks up an unexpected library, make config prints the compiler and every dependency path it resolved to, which is also the most useful thing to include in a bug report.

Citing DES3D

Please cite the DES3D v2.0 paper (preprint):

Shyu, C. J., Lee, S., Ding, X., Keum, J., Tan, E., Lavier, L. L., & Choi, E. (2026). DynEarthSol v2.0: An efficient explicit Lagrangian solver for geodynamics, surface processes, and earthquake-cycle dynamics. EGUsphere [preprint]. doi:10.5194/egusphere-2026-2922

and the original method paper:

Choi, E., Tan, E., Lavier, L. L., & Calo, V. M. (2013). DynEarthSol2D: An efficient unstructured finite element method to study long-term tectonic deformation. Journal of Geophysical Research: Solid Earth, 118(5), 2429–2444. doi:10.1002/jgrb.50148

To cite the software itself, use doi:10.5281/zenodo.20293557. This DOI covers every archived release, both the software (v2.x.x) and the benchmark datasets (benchmarks-v2.x.x), and it opens the list of all versions. To cite the exact version you used, pick the matching software release from that list, or take its DOI from the releases page or from the CITATION.cff file shipped with that release.