Skip to content

EQquasi: parallel finite-element solution to earthquake dynamics over cycles with rate- and state- friction.

License

Notifications You must be signed in to change notification settings

dunyuliu/EQquasi

Repository files navigation

News in 2023

  • 20230327 EQquasi works on Ubuntu.

EQquasi

EQquasi is a parallel finite-element software to simulate quasi-static/quasi-dynamic earthquake cycle deformation induced by fault slips governed by rate- and state- friction. It is part of the fully dynamic earthquake cycle simulator EQsimu (Liu et al., 2020, GJI) to simulate deformation during the inter-seismic, nucleation, post-seismic, and dynamic rupture phases of earthquake cycles. It relies on parallel solvers MUMPS or AZTEC to handle the computing loads. It is written in FORTRAN90 with pre-staging and post-processing scripts in Python3.

MUMPS is distributed under the CeCILL-C license and for proper ackowledgement, please read the LICENCE for MUMPS. The newest version of MUMPS can be downloaded through this link.
AZTEC now comes with Trilinos in the name of AZTECOO, but the current EQquasi still uses the standalone AZTEC2.1. (To-do-list: need to update its license.)

Setup of computing environment

EQquasi relies on the following packages for pre-staging and computing.

  • FORTRAN compilers and MPI
  • python3
  • netCDF
  • pip
    • numpy=1.26.4 (or older, due to a change of dtype size in later versions.)

For post-processing, additional Python packages are needed:

  • xarray
  • imageio
  • pdf2image

ubuntu.env.setup.sh is a bash shell script to install necessary packages for Ubuntu system.

Simply,

sudo bash ubuntu.env.setup.sh

Installation

To install and test EQquasi on Ubuntu,

git clone https://github.com/dunyuliu/EQquasi.git
cd EQquasi
bash make.scripts.executable.sh
python3 testAll.py

To install EQquasi without testing, try

./install.eqquasi.sh -m ubuntu

instead of python3 testAll.py. In this case, MUMPS should have been installed via Ubuntu's apt-get.

To install EQquasi on TACC's HPC Lonestar6, try

./install.eqquasi.sh -m ls6

In this case, MUMPS has been installed by TACC admin.

To install EQquasi with local installation of MUMPS on Ubuntu, try

./install.eqquasi.sh -m local

To activate bash environment variables $EQQUASIROOT and add executable scripts to $PATH,

source install.eqquasi.sh

or manually add the paths to .bashrc:

export EQQUASIROOT=$(pwd)
export PATH=$(pwd)/bin:$PATH
export PATH=$(pwd)/scripts:$PATH

where $(pwd) is the root path for your EQquasi installation.

How-to-use

Only three steps are required to setup and run a new case

create_newcase directoryForYourCase compset
cd directoryForYourCase
# modify user_defined_params.py
./case.setup
bash run.sh

Here, compset stands for predefined cases with each defiend via a single parameter file user_defined_params.py under /case_input.
Currently supported compset includes:

  • bp5.qdc.2000

Example

A good starting example would be compset==bp5.qdc.2000 (benchmark problem 5, quasi-dynamic, 2000 m on-fault resolution).
The case can be created by the following command:

create.newcase caseDir bp5.qd.2000

With the default user_defined_params.py, it should take about 27 minutes to finish the 1st earthquake cycle. For 1st + 2nd earthquake cycles, 1 hour 33 minutes will be expected on Lonestar6.

Key progress

v1.2.1 with MUMPS is benchmarked in SEAS BP5 and results are published in Jiang et al. (2022, JGR).

Note

EQquasi is still under development and comes without any guaranteed functionality.

If you are interested in using EQquasi, please contact Dunyu Liu (dliu@ig.utexas.edu).