To maintain compatibility with current workflows while adding additional functionality to the workflow, we intend to change the way perturbed source parameters are passed to the components of the slurm ground motion workflow.
Changes to implement
To present the parameters to slurm workflow in a way that they can be used by the appropriate part of the workflow, we have decided that changes should be made to Pre Processing such that the user must specify which part of the workflow each parameter belongs to during srf creation.
These changes will then flow on to simulation installation and subsequently submission to the workflow.
User input
All parameters to be perturbed are to be included in the source_uncertainty.yaml file. Any additional parameters must also have nominal values provided.
The nominal values and perturbation settings for each of these parameters will have to be given in the source uncertainties yaml (as passed to gcmt2srf).
Each parameter that is given in the CMT solutions csv file will be at the top level, while each additional parameter will be nested inside the relevant process.
Each parameter will have at least two associated pieces of information, being the nominal value (mean) of the parameter, and the distribution. If the distribution requires any random variables, these must also be given.
An example is available below:
mw: distribution: uniform half_range: 0.05 hf: sdrop: mean: 50 half_range: 5 distribution: uniform rvfac: mean: 0.8 std_dev: 0.01 distribution: normal rvfac_shallow: mean: 0.7 distribution: none bb: fmin: mean: 0.2 distribution: uniform_relative scale_factor: 0.05 emod3d: fmin: mean: 0.01 std_dev: 0.001 distribution: normal
Currently available distributions
Distribution name | Distribution variable | Notes |
---|---|---|
none | N/A | Uses the value as given. |
uniform | half_range | mean is the median (middle) value, and half_range half the difference between the highest and lowest value. |
normal | std_dev | Regular normal distribution. |
uniform_relative | scale_factor | A normal distribution where the highest and lowest possible value are mean* (1+scale_factor) and mean* (1-scale_factor) respectively. Scale factor to be given as a decimal. |
log_normal | std_dev | Regular log_nromal distribution. |
weibull | k, scale_factor | Does not take a mean value. Equivalent to scale_factor*(-ln((U))1/a where U is the uniform distribution over [0, 1). |
truncated_normal | std_dev, std_dev_limit | Similar to normal distribution, except all values fall within [std_dev_limit] standard deviations of the mean. std_dev_limit has a default value of 2. |
truncated_log_normal | std_dev, std_dev_limit | Similar to log normal distribution, except all values of the underlying normal distribution fall within [std_dev_limit] standard deviations of the mean. std_dev_limit has a default value of 2. Mean must be given as a string of the form "log(x)" where x is the unmodified value of the mean. |
duplicate | target | Copies the given |
A note on emod3d
Any variable found in the e3d.par file may be placed in the emod3d section of source_uncertainty.yaml, and will be carried over. Any non numeric entries must have the distribution 'none'.
Internal changes
In order to simplify the implementation of this, we have chosen to have every parameter added to the slurm script and passed as an argument to the simulation script, which will then discard any parameters it does not recognize.
Parameters for srf generation
These parameters have a mean specified via other methods and do not need one in the source uncertainty file. If a mean is provided in the source uncertainty file it will take precedence
Parameter | Type 1 | Type 2 | Type 3 | Type 4 |
---|---|---|---|---|
depth | ✓ | ✓ | ||
mw (magnitude) | ✓ | ✓ | ✓ | ✓ (mag0) |
mom | ✓ | ✓ (mom0) | ||
strike | ✓ | ✓ | ✓ | ✓ (stk) |
rake | ✓ | ✓ | ✓ | ✓ (rak) |
dip | ✓ | ✓ | ✓ | ✓ |
vs | ✓ | |||
rho | ✓ | |||
rise_time | ✓ | |||
rvfac | Optional | Optional | Optional | |
rough | Optional | Optional | Optional | |
slip_cov | Optional | Optional | Optional | |
flen | Calulated, but can be given/perturbated | ✓ | ✓ | |
dlen | Calulated, but can be given/perturbated | ✓ | ✓ | |
fwid | Calulated, but can be given/perturbated | ✓ | ✓ | |
dwid | Calulated, but can be given/perturbated | ✓ | ✓ | |
dtop | Calulated, but can be given/perturbated | ✓ | ✓ | |
shypo | Calulated, but can be given/perturbated | ✓ | ✓ | |
dhypo | Calulated, but can be given/perturbated | ✓ | ✓ |
Parametdwiders for each component
The parameters for each component are as follows:
hf | bb | |
---|---|---|
flo | ✓ | |
fmin | ✓ | |
fmidbot | ✓ | |
lfvsref | ✓ | |
sim_bin | ✓ | |
t-sec | ✓ | |
sdrop | ✓ | |
rayset | ✓ | |
seed | ✓ | |
duration | ✓ | |
dt | ✓ | |
fmax | ✓ | |
kappa | ✓ | |
qfexp | ✓ | |
rvfac | ✓ | |
rvfac_shallow | ✓ | |
rvfac_deep | ✓ | |
czero | ✓ | |
calpha | ✓ | |
mom | ✓ | |
rupv | ✓ | |
velocity-model | ✓ | |
site-vm-dir | ✓ | |
vs-moho | ✓ | |
fa_sig1 | ✓ | |
fa_sig2 | ✓ | |
rv_sig1 | ✓ | |
hf_path_dur | ✓ |