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.
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.
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 halfrange: 0.05 hf: sdrop: mean: 50 halfrange: 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 scalefactor: 0.05 emod3d: fmin: mean: 0.01 std_dev: 0.001 distribution: normal |
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, limit | Similar to normal distribution, except all values fall within [limit] standard deviations of the mean. |
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'.
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.
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 | ✓ |