/EQdyna

Parallel FEM for dynamic ruptures on geometrically complex fault systems and ground motions.

Primary LanguageFortranMIT LicenseMIT

News in 2023

  • 20231130 v5.3.0 release notes
    • refactor faulting.f90 and meshgen.f90;
    • introduce a system for quick testing by running testAll.py;
    • test system now supports tpv8, tpv104, tpv1053d, tpv1053d.6c, meng2023a, meng2023cb;
    • update input parameter system with a single defaultParameters.py and customized user_defined_params.py;

Introduction to EQdyna

EQdyna is a parallel finite element software to simulate earthquake spontaneous dynamic rupture, seismic wave propagation and high frequency deterministic ground motions. It has a focus to simulate earthquakes on geometrically complex fault systems with other heterogeneities in mind. The core is written in FORTRAN90 with a set of python utilities to setup cases and allocate HPC resources.

EQdyna is highly efficient and scalable due to its adoptions of built-in mesh generation, explicit time integration, under-integrated hexahedral elements, degenerated wedge elements for complex fault geometries, hourglass controls, perfectly matched layer and 3D parallelization with MPI.

Other features include

  • 3D velocity structure to simulate basin effects.
  • Frequency independent Q by coarsed-grained memory scheme for seismic attenuation.
  • Various frictional constitutions such as slip-weakening and various forms of rate- and state-friction.
  • Normal stress evolutions by an additional state variable.
  • Drucker-prager off-fault viscoplasticity.
  • Dynamic relaxation for earthquake cycle applications, etc.

EQdyna has been extensively verified against benchmark problems from SCEC/USGS Spontaneous Dynamic Rupture Code Verification Excercise.

EQdyna is also part of the fully dynamic earthquake cycle simulator EQsimu (Liu et al., 2020, GJI).

Dependence

EQdyna requires the following environments and packages:

  • FORTRAN compiler and MPI
  • Python3
  • netCDF

Installation

A strengh of EQdyna is that it doesn't need an external mesh generator.
Except for some really geometrically complex fault systems, it works well for many applications.

EQdyna now supports Ubuntu and Lonestar6 at TACC.

To install it on Ubuntu,

git clone https://github.com/dunyuliu/EQdyna.git
cd EQdyna
chmod 755 install-eqquasi.sh
./install-eqquasi.sh -m ubuntu

To install it on Lonestar6 TACC,

./install-eqquasi.sh -m ls6

To activate environment variable $EQDYNAROOT and add executables to $PATH,

source install-eqquasi.sh

Quick Start Guide

After the installation, you just need three steps to run a pre-defined case.

First, create a new case with the utility create_newcase.
create_newcase takes in two parameters:
(a) case_dir - the case directory where you want to run the job, and
(b) compset - the predefined case (tpv104, tpv1053d, etc)

[TPV+number is the naming convention of SCEC/USGS Spontaneous Rupture Code Verification Excercise.]

create_newcase case_dir compset

Second, cd into the case_dir, modifiy the user_defined_params.py and then run the utility case.setup.

case.setup

Third, run the utility case.submit, which will submit the job to the HPC system.

case.submit

For customized case, please choose the most relevant predefined case and modify the user_defined_param.py accordingly.

Test All

To routinely test the consistency and stability of EQdyna,
run the following command:

source $EQDYNAROOT/test-all.sh

Four pre-defined test cases will be created and run using 4 CPUs, which will take a few minutes.

Currently supported compset (more to come)

  • tpv104
  • tpv1053d

Benchmark computational performance and resource

TPV104: 15 seconds simulation time with 0.008 dt and a total of 1875 time steps. It took 40 CPUs to run 24.20 minutes on Lonestar6.
TPV1053D: 15 seconds simulation time with 0.008 dt and a total of 1875 time steps. It took 40 CPUs to run I

Note

EQdyna is still under heavy development and comes without any guaranteed functionality. But we hope EQdyna would be easy to use and we bear this goal in mind when developing it.

Developers and collaboration?

We welcome developers and users. If you are interested in developing and collaborations using EQdyna, please contact Drs. Benchun Duan (bduan@tamu.edu) or Dunyu Liu (dliu@ig.utexas.edu).

Reference

  • Duan, B. (2010). Role of initial stress rotations in rupture dynamics and ground motion: A case study with implications for the Wenchuan earthquake, J. Geophys. Res. 115.
  • Duan, B. (2012). Dynamic rupture of the 2011 Mw 9.0 Tohoku-Oki earthquake: Roles of a possible subducting seamount, J. Geophys. Res. 117
  • Duan, B., D. Liu, and A. Yin (2017). Seismic shaking in the North China Basin expected from ruptures of a possible seismic gap, Geophys. Res. Lett. 44 4855-4862.
  • Liu, D. and B. Duan (2018). "Scenario Earthquake and Ground‐Motion Simulations in North China: Effects of Heterogeneous Fault Stress and 3D Basin Structure." BSSA.

Past release notes

  • 20230327
    • EQdyna works on Ubuntu now.
    • install-eqdyna.sh can support multiple systems.
    • test-all.sh will create and run four pre-defined cases with 4 CPUs with a few minutes.
  • 20230321 eqdyna.docker is published via dunyuliu/eqdyna.docker

News in 2022

  • A set of python utlities that make EQdyna much easier to use.
  • Thermal pressurization implemented and benchmarked against TPV105-3D.