Supplementary material for the "Dynamic Viability of Finite-Fault Slip Models using Ensemble Kalman Inversion"
收藏资源简介:
This repository contains the supplementary files of the "Linking Finite-Fault Slip Models to Dynamic Rupture with Ensemble Kalman Inversion: The Role of Data-Informed Heterogeneity in Megathrust Rupture Complexity" by Jeremy Wing Ching Wong (wcwong@ucsd.edu), Alice-Agnes Gabriel, and Wenyuan Fan. This repository contains all the required files to reproduce the SeisSol dynamic rupture simulations and the EKI-DR code used in this study. Tutorial and maintained code, please refer to SeisSol Github Repo: https://github.com/SeisSol. Please contact Jeremy for all stress change datasets (exceeding the limit of Zenodo). ---- To initiate the EKI-DR process, please initiate files in EKI_iteration. Copy and modify the template file `EKI_iteration/temp_EKI.it` to `EKI_iteration/EKI_<model_tag>.it`. Within the file, you can - change the initial ensemble models parameters, - change the number of ensembles, - change the maximum number of iterations, - target observation (Y) and uncertainties (R). 1 - Follow the initial values listed in the `EKI_iteration/EKI_<model_tag>.it` to set up and run the SeisSol DR simulation, run `sh change_seissol_template.sh <model-tag> <alpha_value> <R0_value>`. This will create, e.g., directory `T1_alpha1.000_R0.135` and submit a job for the simulation.(please use <alpha_value> and <R0_value> up to three significant figures after decimal.) 2 - After the ensemble simulations are completed, run `python compute_loss_function.py <model_tag>` - This is to compute the misfit values listed in `EKI_iteration/<model_tag>_results.csv` 3 - To continue the next EKI iteration, run `python EKI_iteration/run_EKI.py <model_tag>`.- This will compute a new set of ensembles and avoid any duplicate runs (same α and R0 value, and to save computational cost). - Automatically run step 1 to create and run the new ensemble simulations. Repeat steps 2 and 3 for more iterations. The inversion will stop when the number of EKI iterations exceeds the value listed in EKI_<model_tag>.it. ----Directory summary ``` ├── README.md ├── change_seissol_template.sh # code to create seissol parameter files ├── compute_loss_function.py # code to compute loss function for EKI ├── compute_nuc_stress.py # code to compute nucleation stress for each model ├── plot_simulation_output.py # code for output figure plot ├── EKI_iteration # DIR for EKI iteration ├────── EKI_inversion.py # code to conduct EKI iteration ├────── EKI_template.it # EKI_<model_tag>.it template ├────── EKI_R.dat # EKI R value ├────── EKI_Y.dat # EKI Y value ├────── EKI_T1.csv # example EKI.it ├────── T1_results.csv # example T1 results ├── nucleation_setup # DIR for nucleation setup ├── param_template # DIR for seissol template setup ├────── FL33_stress_change_kinematic_model.yaml ├────── run_Seissol_general_o4.sh ├────── run_Seissol_test_o4.sh ├────── Tohoku_fault.yaml ├────── Tohoku_FL103_plas.par ├────── Tohoku_initial_stress.yaml ├────── Tohoku_material_3D_plas.yaml ├────── Tohoku_nuc_Td0_Ts0.yaml ├── asagi # DIR for stress change files ├── MESH # DIR for MESH ├───── JIVSM_v7_15d_1500_3D_0.5Hz.puml.h5 ├───── JIVSM_v7_15d_1500_3D_0.5Hz.xdmf ├───── JIVSM_v7_15d_1500_3D_0.5Hz.xml ├── slum_o # slum_outputfile ... ├── T1_alpha1.000_R0.135 # example directory for seissol simulation ├── T1_alpha1.000_R0.150 ├── T1_alpha1.100_R0.150 ```



