SORD latest version maintained by Yongfei Wang
- Viscoelastic
- Plastoelastic
- Frequency-dependent Anelastic
- Slip weakening
- Regularized rate and state
- Rate strengthening Slip weakening
- Thermal and porelastic response
- Nonplanar fault
- Topographic effect
- Multiple-fault system
Since Zheqiang Shi, Brittany Erickson, Qian Yao and Yongfei Wang joined Steven Day's rupture dynamics group, a new branch of SORD has been developed. Currently, Yongfei Wang is the chief maintainer who uses it as a simulator of a physically plausible earthquake to study earthquake parameters and its evolution. This github repository stores this branch.
- Ben-Zion, Y., Rockwell, T. K., Shi, Z. Q., and Xu, S. Q. (2012), Reversed-polarity secondary deformation structures near fault stepovers, J. Appl. Mech., 79(3), 031025
- Shi, Z. Q., and Day, S. M. (2013), Rupture dynamics and ground motion from 3-D rough-fault simulations, J. Geophys. Res., 118(3), 1122-1141
- Wang, Y., and Day, S. M. (2017), Seismic source spectral properties of crack-like and pulse-like modes of dynamic rupture, J. Geophys. Res., 122(8), 6657-6684
- Wang, Y., Day, S. M. and Denolle, M. A. (2018), Geometric Controls on Pulse-like Rupture in a Dynamic Model of the 2015 Gorkha Earthquake, J. Geophys. Res., 124(2), 1544–1568
##SORD installation instructions
Obtain Source Code Clone the code: git clone --recursive https://github.com/billtr0n/sord Configure installation Create machine configuration directory in conf, by copying default to your machine name. here its called example_machine; (Hint: You might have to enter -o on the very for x86-compilers) Edit example_machine/conf.py with your machine information. you can also add scripts in templates that you want added to the rundir. Go to dir conf/ and execute python conf.py example_machine Go to root directory Run python configure.py example_machine, example out output might look like SDSC Comet
dtype = '<f4' email = 'wsavran@gmail.com' fortran_flags = {'O': '-O3 -qstrict', 'p': '-O3 -qstrict', 't': '-O3 -qstrict', 'g': '-O3 -qstrict'} fortran_mpi = ('mpifort',) fortran_serial = ('ifort',) host = 'comet-ln2.sdsc.edu' hosts = ('miralac1',) infiles = () itbuff = 10 login = 'miralac1.fst.alcf.anl.gov' machine = 'comet' maxcores = 24 maxnodes = 1944 maxram = 131072 maxtime = (24, 0) minnodes = 1 mode = None optimize = 'O' os_ = ('Linux', 'comet-ln2.sdsc.edu', '2.6.32-573.12.1.el6.x86_64', '#1 SMP Tue Dec 15 21:19:08 UTC 2015', 'x86_64') post = '' pre = '' prepare = True queue = None rate = 600000.0 run = False rundir = 'run' user = 'breuera'
#####Build Code
Automatic build: Run python setup.py in the root dir Manual build: Go to src, edit the makefile according to your machine and execute make. #####Install Python interface
Run python setup.py install, example output (Hint: Don't rename your git-repo name for the installation): Installing /oasis/projects/nsf/sds143/breuera/software/build/lib/python2.6/site-packages/sord.pth for path /oasis/projects/nsf/sds143/breuera/sord Note: On Linux Mint 18, sord was installed in /usr/bin/python2.7/dist-packages with incorrect permissions. If you are unable to import sord in a python interpreter after running python setup.py install try checking permissions and running chmod -R o+rx sord before you install the python interface.
Running an example #####Configure Job
Go to scripts/example Change sim.py and add your work-directory for this run. Run python sim.py, use python sim.py --force if you want to overwrite an already existing directory. #####Launch Job
Execute simulation. example mpirun -np 2 ./sord-mO #####Visualize Results
Plot results using python plot.py Requirements Python, Numpy
The Support Operator Rupture Dynamics (SORD) code simulates spontaneous rupture within a 3D isotropic viscoelastic solid. Wave motions are computed on a logically rectangular hexahedral mesh, using the generalized finite difference method of support operators. Stiffness and viscous hourglass corrections are employed to suppress suppress zero-energy grid oscillation modes. The fault surface is modeled by coupled double nodes, where the strength of the coupling is determined by a linear slip-weakening friction law. External boundaries may be reflective or absorbing, where absorbing boundaries are handled using the method of perfectly matched layers (PML). The hexahedral mesh can accommodate non-planar ruptures and surface topography SORD simulations are configured with Python scripts. Underlying computations are coded in Fortran 95 and parallelized for multi-processor execution using Message Passing Interface (MPI). The code is portable and tested with a variety of Fortran 95 compilers, MPI implementations, and operating systems (Linux, Mac OS X, IBM AIX, SUN Solaris). The source code is stored in Ely's github
- Ely, G. P., Day, S. M., and Minster, J.-B. (2008), A support-operator method for viscoelastic wave modelling in 3-D heterogeneous media, Geophys. J. Int., 172(1), 331-344
- Ely, G. P., Day, S. M., and Minster, J.-B. (2009), A support-operator method for 3-D rupture dynamics, Geophys. J. Int., 177(3), 1140-1150
- Ely, G. P., Day, S. M., and Minster, J.-B. (2010), Dynamic Rupture Models for the Southern San Andreas Fault, Bull. Seismol. Soc. Am., 100(1), 131-150
- Harris, R. A., et al. (2009), The SCEC/USGS dynamic earthquake rupture code verification exercise, Seismol. Res. Lett., 80(1), 119-126.
- Song, S. G., Dalguer, L. A., and Mai, P. M. (2013), Pseudo-dynamic source modelling with 1-point and 2-point statistics of earthquake source parameters, Geophys. J. Int., 196(3), 1770-1786
- Fan, W. Y., Shearer, P. M., and Gerstoft, P. (2014), Kinematic earthquake rupture inversion in the frequency domain, Geophys. J. Int., 199(2), 1138-1160
- Baumann, C., and Dalguer, L. A. (2014), Evaluating the compatibility of dynamic rupture-based synthetic ground motion with empirical ground-motion prediction equation, Bull. Seismol. Soc. Am., 104(2), 634-652
- Song, S. G. (2015), The effect of fracture energy on earthquake source correlation statistics, Bull. Seismol. Soc. Am., 105(2a), 1042-1048
- Vyas, J. C., Mai, P. M., and Galis, M. (2016), Distance and azimuthal dependence of ground-motion variability for unilateral strike-slip ruptures, Bull. Seismol. Soc. Am., 106(4), 1584-1599
- Mai, P., Galis, M., Thingbaijam, K., Vyas, J., and Dunham, E. (2017), Accounting for Fault Roughness in Pseudo-Dynamic Ground-Motion Simulations, Pure. Appl. Geophys., 174(9), 3419-3450
- Song, S. G., and Dalguer, L. A. (2017), Synthetic Source Inversion Tests with the Full Complexity of Earthquake Source Processes, Including Both Supershear Rupture and Slip Reactivation, Pure. Appl. Geophys., 174(9), 3393-3418
- Passone, L., and Mai, P. M. (2017), Kinematic Earthquake Ground-Motion Simulations on Listric Normal Faults, Bull. Seismol. Soc. Am., 107(6), 2980-2993
- Vyas, J. C., Mai, P. M., Galis, M., Dunham, E. M., and Imperatori, W. (2018), Mach wave properties in the presence of source and medium heterogeneity, Geophys. J. Int., 214(3), 2035-2052
- Harris, R. A., et al. (2018), A Suite of Exercises for Verifying Dynamic Earthquake Rupture Codes, Seismol. Res. Lett., 89(3), 1146-1162
- Aug 21, 2018 Add frequency-dependent attenuation (to be checked by AWP benchmark)
- Aug 23, 2018 Add a function to exert a point source by setting strike, dip, rake and moment.
- Bug in computing radiated energy, negative value (change temporal integral of fracture (+frictional) energy from rectangular to trapezoidal shape.)
- Bug in applying -R for reading initial stress tensor or bulk materials of cells (small variations after reading in) and may affect elastoplastic rupture dynamics
- Bug in PML zone when plasticity and rate and state law are applied. (Perhaps the rupture occures in PML zone)
- Bug found when in plasticity large stress drop are used ->(NAN wavefields). (will check from boundary or somewhere else)
- means bug found
- means bug found has been fixed
If you found a bug in this program, you are so welcome to report it.