This guide is for someone who would like to run a simulation with current library and packaging.
Step-by-step guide
1. How to create a working folder
Get the current working version of
gm_sim_pkg
by using git clone:$ git clone git@github.com:ucgmsim/gm_sim_pkg.git
Navigate into
gm_sim_pkg
directory and download the lastest package from the FTP server: ftp://ucquakecore1p.canterbury.ac.nz/seisfinder/gmsim_pack_latest.tar.gz$ wget ftp://ucquakecore1p.canterbury.ac.nz/seisfinder/gmsim_pack_latest.tar.gz
Use
install.sh
to install the package just downloaded in the following format:./install.sh gmsim_pack_latest.tar.gz [event_date] [event_location] [event_magnitude]
$ ./install.sh gmsim_pack_latest.tar.gz 20100904 Darfield 7.1
- This starts the installation process.
========================================================================= Event Name: 20100904_Darfield_m7p1 Run Name: 20100904_Darfield_m7p1_201705221509 Package to be installed: /home/jonney/gm_sim_pkg/gmsim_pack_20170522_1443.tar.gz Run directory: /home/jonney/20100904_Darfield_m7p1_201705221509 ========================================================================= Do you wish to proceed? (Y/N) y ========================================================================= Creating directory structure ========================================================================= /home/seb56/tmp already exists. /nesi/projects/nesi00213/RealTime/code already exists. ========================================================================= Extracting the package ========================================================================= ./ ./code/ ./code/wrapper/ ./code/wrapper/setup_remote.sh ./code/wrapper/make_vm.sh ./code/wrapper/make_stat.sh... ./GM/Sim/ ./GM/Sim/Data/ ./GM/Sim/Figures/ ./Stat/ ========================================================================= Updating the data ========================================================================= From https://github.com/ucgmsim/vm_data * branch master -> FETCH_HEAD Already up-to-date. ========================================================================= Final touch ========================================================================= >>> Moving to /home/jonney/code from /home/jonney/20100904_Darfield_m7p1_201705221509/code >>> Updating vs30-mapping data location: /home/jonney/code/Vs30-mapping collecting md5sum for file check Existing KRIGE_NZGD00_allNZ.Rdata is already good: No need to update >>> Making a symbolic link to /home/jonney/tmp/vm_data/Data >>> Writing gmsim.cfg ========================================================================= Done!!!! =========================================================================
This has created the directory structure for managing the ground motion simulation for 2010 September 4 Darfield earthquake (Mw7.1)
20100904_Darfield_m7p1_201705221509/ ├── GM │ ├── Obs │ │ ├── Data │ │ └── Figures │ ├── Sim │ │ ├── Data │ │ └── Figures │ └── Validation │ ├── Data │ └── Figures ├── Impact │ ├── Landslide │ └── PAGER ├── Src │ ├── Data │ ├── Figures │ └── Model ├── Stat └── VM ├── Data ├── Figures ├── Model └── Velocity-Model └── Data -> /home/jonney/tmp/vm_data/Data
Follow the instruction shown on screen to create required Models and files.
Instructions: Everyone: !!!!!!!!!!!!!! source /home/jonney/20100904_Darfield_m7p1_201705221509/path.sh !!!!!!!!!!!!!! VM: 1. cd /home/jonney/20100904_Darfield_m7p1_201705221509/VM 2. config_vm.py mag centroidDepth lon lat 3. test_vm_params.py (if params_vel.py edited) 4. make_vm.sh Source: 1. cd /home/jonney/20100904_Darfield_m7p1_201705221509/Src 2. config_src.py 3. make_src.sh Obs: 1. cd /home/jonney/20100904_Darfield_m7p1_201705221509/GM/Obs 2. config_obs.py geoNet_ftp_url 3. make_obs.sh
!!! Before you move on, make sure you do the first line give in the instruction. !!!$ source /home/jonney/20100904_Darfield_m7p1_201705221509/path.sh
2. How to create a Velocity Model
Go to the VM directory that instruction has provided
$ cd /home/jonney/20100904_Darfield_m7p1_201705221509/VM
Execute config_vm.py to generate
params_vel.py,
a config file used for velocity modelling. The command is in the following format.$ config_vm.py magnitude centroid_Depth Latitude Longitude
/home/jonney/20100904_Darfield_m7p1_201705221509/VM : config_vm.py -h usage: config_vm.py [-h] [--model_version MODEL_VERSION] [--min_vs MIN_VS] [--topo_type TOPO_TYPE] [--hh HH] [--extent_zmin EXTENT_ZMIN] [--extent_x EXTENT_X] [--extent_y EXTENT_Y] [--extent_zmax EXTENT_ZMAX] [--sim_duration SIM_DURATION] [--flo FLO] [--rot ROT] [--code CODE] [--output_dir OUTPUT_DIR] [--slice_params_dir SLICE_PARAMS_DIR] mag centroidDepth lon lat positional arguments: mag centroidDepth lon lat optional arguments: -h, --help show this help message and exit --model_version MODEL_VERSION --min_vs MIN_VS --topo_type TOPO_TYPE --hh HH --extent_zmin EXTENT_ZMIN --extent_x EXTENT_X --extent_y EXTENT_Y --extent_zmax EXTENT_ZMAX --sim_duration SIM_DURATION --flo FLO --rot ROT --code CODE --output_dir OUTPUT_DIR --slice_params_dir SLICE_PARAMS_DIR
Three parameters
mag, centroidDepth, lon, lat
are mandatory. You can set other options with--option
, such as--hh 0.2
or manually set by editingparams_vel.py
/home/jonney/20100904_Darfield_m7p1_201705221509/VM : config_vm.py 7.1 46.00 172.3 -43.6 --hh 0.2 --rot -10 --extent_x 140 --extent_y 120 --extent_zmax 46.0 --sim_duration 100 mag = 7.1 centroidDepth = 46.0 lon= 172.3 lat = -43.6 ############ Generated params_vel.py # If you edited this file manually, run 'test_vm_params.py' for integrity check !!! # Section I. Basic parameters (Manual Edit allowed) mag = '7.1' centroidDepth = '46.00' MODEL_LAT = '-43.6' MODEL_LON = '172.3' MODEL_ROT = '-10.0' hh = '0.200' min_vs = '0.5' model_version = '1.65' topo_type = 'BULLDOZED' output_directory = 'Rapid_Model' extracted_slice_parameters_directory = 'SliceParametersNZ/SliceParametersExtracted.txt' code = 'rt' # Section II. Derived parameters that can be manually editted extent_x = '140.0' extent_y = '120.0' extent_zmax = '46.0' extent_zmin = '0.0' sim_duration = '100.0' flo = '0.5' # Section III. Automated values. DO NOT EDIT (Manual changes will be ignored) nx = ' 700' ny = ' 600' nz = '230' sufx = '_rt01-h0.200' ############ Estimated Wallclock time nx=700 ny=600 nz=230 sim_duration=100 num_procs=512 Maximum: 0:55:02 Average: 0:17:16.597834 Minimum: 0:11:58.613082
You can manually edit
params_vel.py
. But you are strongly advised to runtest_vm_params.py
to validate yourparams_vel.py
if manually edited. Note that values in Section II will be automatically computed based on the values in Section I, but user can manually edit them. However, any manual changes made to Section III will be ignored.
In the example, we executetest_vm_params.py
after manually editing the value for "code
" from "rt
" to "nz
". This creates new params_vel.py after making a backup of the original, and shows the difference between two. Notice " | " where a difference is observed (line 30)./home/jonney/20100904_Darfield_m7p1_201705221509/VM :test_vm_params.py ##################### Backing up params_vel.py to params_vel.py.bak ##################### params_vel.py updated diff -y params_vel.py.bak params_vel.py # If you edited this file manually, run 'test_vm_params.py' f # If you edited this file manually, run 'test_vm_params.py' f # Section I. Basic parameters (Manual Edit allowed) # Section I. Basic parameters (Manual Edit allowed) mag = '7.1' mag = '7.1' centroidDepth = '46.00' centroidDepth = '46.00' MODEL_LAT = '-43.6' MODEL_LAT = '-43.6' MODEL_LON = '172.3' MODEL_LON = '172.3' MODEL_ROT = '-10.0' MODEL_ROT = '-10.0' hh = '0.200' hh = '0.200' min_vs = '0.5' min_vs = '0.5' model_version = '1.65' model_version = '1.65' topo_type = 'BULLDOZED' topo_type = 'BULLDOZED' output_directory = 'Rapid_Model' output_directory = 'Rapid_Model' extracted_slice_parameters_directory = 'SliceParametersNZ/Sli extracted_slice_parameters_directory = 'SliceParametersNZ/Sli code = 'nz' code = 'nz' # Section II. Derived parameters that can be manually editted # Section II. Derived parameters that can be manually editted extent_x = '140.0' extent_x = '140.0' extent_y = '120.0' extent_y = '120.0' extent_zmax = '46.0' extent_zmax = '46.0' extent_zmin = '0.0' extent_zmin = '0.0' sim_duration = '100.0' sim_duration = '100.0' flo = '0.5' flo = '0.5' # Section III. Automated values. DO NOT EDIT (Manual changes # Section III. Automated values. DO NOT EDIT (Manual changes nx = ' 700' nx = ' 700' ny = ' 600' ny = ' 600' nz = '230' nz = '230' sufx = '_rt01-h0.200' | sufx = '_nz01-h0.200' ############ Estimated Wallclock time nx=700 ny=600 nz=230 sim_duration=100 num_procs=512 Maximum: 0:55:02 Average: 0:17:16.597834 Minimum: 0:11:58.613082
Run
make_vm.sh
to create the Velocity Model/home/jonney/20100904_Darfield_m7p1_201705221509/VM :make_vm.sh Executing genDomain.py Reading domain extents. Reading of domain extents. Complete. Writing generate velocity model shell scrip. Writing generate velocity model shell scrip. Complete. Generating velocity model. ========================================== Running GENERATE_VELOCITY_MOD. ========================================== ... ========================================== Completed running GENERATE_VELOCITY_MOD. ========================================== ... ========================================== Running EXTRACT_VELOCITY_SLICES. ========================================== ... ========================================== Completed running EXTRACT_VELOCITY_SLICES. ========================================== ... /nesi/projects/nesi00213/tools/gen_model_cords geoproj=1 gridfile=./Rapid_Model/Rapid_Model/Velocity_Model/gridfile_nz01-h0.200 gridout=./Rapid_Model/Rapid_Model/Velocity_Model/gridout_nz01-h0.200 center_origin=1 do_coords=1 nzout=1 name=./Rapid_Model/Rapid_Model/Velocity_Model/model_coords_nz01-h0.200 gzip=0 latfirst=0 modellon=172.3 modellat=-43.6 modelrot=-10.0 1> ./Rapid_Model/Rapid_Model/Velocity_Model/model_params_nz01-h0.200 2>/dev/null Generating model params and cords. Complete. Moving velocity model plots. Moving velocity model plots. Complete. Removing generated scripts. Rapid model generation complete. Model/20100904_Darfield_m7p1/v1.65_200m !!!!! Ask Admin to upload: Give him the path: /home/jonney/20100904_Darfield_m7p1_201705221509/VM !!!!!
Under the working directory
VM
, a subdirectory is createdModel/20100904_Darfield_m7p1/v1.65_200m
which contains the velocity model./home/jonney/20100904_Darfield_m7p1_201705221509/VM/Model/20100904_Darfield_m7p1/v1.65_200m :ls gridfile_nz01-h0.200 Info model_coords_nz01-h0.200 params_vel.py vp3dfile.p gridout_nz01-h0.200 model_bounds_nz01-h0.200 model_params_nz01-h0.200 rho3dfile.d vs3dfile.s
Give the admin (Sung) the path to the VM working directory and request to upload the model. The admin will need to execute
sendme.sh
in the VM directory./home/jonney/20100904_Darfield_m7p1_201705221509/VM/sendme.sh SCP Upload tool Establishing SSH connection to: fitzroy.nesi.org.nz 22 ... Node size : 4 **************************************** /home/nesi00213...del/20100904_Darfield_m7p1/v1.65_200m/Info 49 Bytes Completed /home/nesi00213...904_Darfield_m7p1/v1.65_200m/params_vel.py 756 Bytes Completed /home/nesi00213...d_m7p1/v1.65_200m/model_params_nz01-h0.200 381 Bytes Completed /home/nesi00213...field_m7p1/v1.65_200m/gridfile_nz01-h0.200 155 Bytes Completed /home/nesi00213...d_m7p1/v1.65_200m/model_bounds_nz01-h0.200 96.3 KiB Completed /home/nesi00213...rfield_m7p1/v1.65_200m/gridout_nz01-h0.200 52.4 KiB Completed /home/nesi00213...d_m7p1/v1.65_200m/model_coords_nz01-h0.200 15.2 MiB Completed /home/nesi00213...100904_Darfield_m7p1/v1.65_200m/vs3dfile.s 368.5 MiB Completed /home/nesi00213...00904_Darfield_m7p1/v1.65_200m/rho3dfile.d 368.5 MiB Completed /home/nesi00213...100904_Darfield_m7p1/v1.65_200m/vp3dfile.p 368.5 MiB Completed Node 1: /home/nesi00213...100904_Darfield_m7p1/v1.65_200m/vs3dfile.s 368.5 MiB/368.5 MiB 100.0% Node 2: /home/nesi00213...00904_Darfield_m7p1/v1.65_200m/rho3dfile.d 368.5 MiB/368.5 MiB 100.0% Node 3: /home/nesi00213...100904_Darfield_m7p1/v1.65_200m/vp3dfile.p 368.5 MiB/368.5 MiB 100.0%
Files have been successfully uploaded to Fitzroy.
Bash_codebaes@nesi2 /nesi/projects/nesi00213/VelocityModels/NZ/20100904_Darfield_m7p1/v1.65_200m :ls Info gridout_nz01-h0.200 model_coords_nz01-h0.200 params_vel.py vp3dfile.p gridfile_nz01-h0.200 model_bounds_nz01-h0.200 model_params_nz01-h0.200 rho3dfile.d vs3dfile.s
3. How to create Rupture Model (Source)
Go to the Src directory that instruction has provided
$ cd /home/jonney/20100904_Darfield_m7p1_201705221509/Src
Create the config file that is needed for generating a Rupture Model
$config_src.py -h usage: config_src.py [-h] {1,2,3,4} ... positional arguments: {1,2,3,4} Choose the type of srf you want to generate, usage of each type use: gen_src_params.py type -h 1 Generate type 1 srf (Point source srf). 2 Generate type 2 srf (Point source to Finite Fault srf). 3 Generate type 3 srf (Finite Fault descriptor to Finite Fault srf). 4 Generate type 4 srf (Multiple Segment Finite Fault srf). optional arguments: -h, --help show this help message and exit
The extra options may differ from type to type. Use: "config_src.py type -h" will show you all the options can be provided for that type of source.
example of showing options for type 2:
$ config_src.py 2 -h usage: config_src.py 2 [-h] [--LAT [LAT]] [--LON [LON]] [--MAG [MAG]] [--STK [STK]] [--RAK [RAK]] [--DIP [DIP]] [--DT [DT]] [--DEPTH [DEPTH]] [--SEED [SEED]] [--RVFRAC [RVFRAC]] [--ROUGH [ROUGH]] [--SLIP_COV [SLIP_COV]] [--MWSR [MWSR]] [--STOCH [STOCH]] [--GENSLIP [GENSLIP]] [--PREFIX [PREFIX]] optional arguments: -h, --help show this help message and exit --LAT [LAT] latitude (float) --LON [LON] longitude (float) --MAG [MAG] magnitude (float) --STK [STK] strike (int) --RAK [RAK] rake (int) --DIP [DIP] dip (int) --DT [DT] rupture timestep --DEPTH [DEPTH] --SEED [SEED] --RVFRAC [RVFRAC] --ROUGH [ROUGH] --SLIP_COV [SLIP_COV] --MWSR [MWSR] Mw Scaling Relation (string), one of:HanksBakun2002,BerrymanEtAl2002,VillamorEtAl2001 --STOCH [STOCH] String to set stoch gener ation. Default vaule will be used if not specified --GENSLIP [GENSLIP] Version of genslip --PREFIX [PREFIX] The prefix you want for SRF files. defualt= source. Ending with _ will auto append extra info to file name. Defualt value will be used if not specified.
And example of creating type 2 Source file:
config_src.py 2 --LAT -43.6 --LON 172.3 --MAG 7.1 TYPE = 2 LAT = -43.6 LON = 172.3 MAG = 7.1 PREFIX = Srf/source SEED = 103245 STOCH = Stoch #################### the params below are not specified, please manually edit setSrfParams.py to specify the value. #################### STK = RAK = DIP = DT = RVFRAC = ROUGH = SLIP_COV = DEPTH = MWSR = GENSLIP = #################### Afte manually fill in all the required parameters, please cd to where setSrfParams.py is located at and run make_src.sh cd /home/jonney/20100904_Darfield_m7p1_201705221509/Src/Model/20100904_Darfield_m7p1/t2_103245 ####################
- Go to the folder provided by instrutions
e.g. $ cd /home/jonney/20100904_Darfield_m7p1_201705181350/Src/Model/20100904_Darfield_m7p1/t2_103245_20170518_175214 - Edit the setSrfParams.py
note: every variables with #!!!PLEASE SPECIFY!!!# must be provided - Create the Model using make_src.sh
e.g. $ make_src.sh - Follow the instruction given on the screen to provide a path to a admin.
4. How to create observation files
note: you can skip this part if you are running for a future event (not yet happened)
- Go to the Obs directory that instruction has provided
e.g. $ cd /home/jonney/20100904_Darfield_m7p1_201705181350/GM/Obs - Create the config file that is needed
$ config_obs.py geoNet_ftp_url
e.g. $ config_obs.py ftp://ftp.geonet.org.nz/strong/processed/Proc/2010/09_Sep/2010-09-04_045556/Vol1/data/ - Run make_obs.sh to generate all the files
e.g. $ make_obs.sh - Follow the instruction given on the screen to provide a path to a admin.
5. How to setup the simulation
- After admin tells you that all files are uploaded to Fitzroy, Run setup_remote.sh
$ setup_remote.sh username
e.g $ setup_remote.sh jonney
6. Run the simulation on Low Frequency (LF)
- Go to the Simulation Folder, located at /nesi/projects/nesi00213/RunFolder/user/run_name
e.g. $ cd /nesi/projects/nesi00213/RunFolder/ykh22/20100904_Darfield_m7p1_201705181350 - Run submit_emod3d.sh
$ ./submit_emod3d.h - It will ask you to enter a wall_clock_limit and if it should auto submit the job.
note: if you prefer to change some detail configurations, press 2(no) for auto submit.* - use llsubmit to submit your job if you selected to not to auto submit.
- Use llq to check if your job has finished. (job status: R= running, C= Complete, I = idle)
$ llq -u user - After Emod3d finished, run submit_post_emod3d.sh
note: if you prefer to change some detail configurations, press 2(no) for auto submit.*
$ ./submit_post_emod3d.sh
7. Run the simulation on High Frequency (HF)
note: this part can run before LF is finished
- Run install_bb.sh, to setup the parameters
$ ./install_bb.sh - Choose from the options according to simulation requirement
- Run submit_hf.sh
$ ./submit_hf.sh
note: if you prefer to change some detail configurations, press 2(no) for auto submit.*
*: use llsubmit to submit your job if you selected not to auto submit. $ llsubmit job.ll
8. Run the Simulation on Broadband (BB)
Note: This part MUST wait untill both LF and HF are finished
- Run submit_bb.sh
$ ./submit_bb.sh
Related articles