These final verifications should be performed on the generated data that are 'inputs' to the Cybershake simulations (e.g. SRF, VM, simulation config files).
Spatial distribution of sources across NZ based on tectonic type
Test: Plot (on a map) SRFs colored based on their tectonic type
Pass criterion: A researcher will look at the plot and search for anomalies in terms of tectonic assignment. Also, the researcher should see the faults that are not included in the cybershake runs.
6. Statistical properties of hypocentre locations
Test 6a) For a given fault, plot the normalized s_hype (i.e., s_hype / rupture_length) empirical distribution of realizations versus the theoretical distribution used.
Note: for CS18p6, hypocentre normalized location long the strike is based on a normal distribution with shyp_mu = 0.5 shyp_sigma = 0.25 (from Mai et al 2005 BSSA).
Test 6b) For a given fault, plot the normalized d_hype (i.e., d_hype / rupture_width) empirical distribution of realizations versus the theoretical distribution used.
Note for CS18p6, hypocentre normalized location along the dip is based on a Weible distribution with dhyp_scale = 0.612 and dhyp_shape = 3.353 (from Mai et al 2005 BSSA)
Pass criteria for two test: The empirical and theoretical distributions should be consistent (visually).
We can also use Kolmogorov Smirnov test bounds to mathematically the consistency...
7. The difference between (NSTRK * subfault_size) and LEN; and (NDIP * subfault_size) with WID
Test: Plot these two values from the SRF files for all the faults
(NSTRK * subfault_size - LEN) / LEN
(NDIP * subfault_size - WID ) / WID
Pass: These values should be close to zero.
8. Create a text file containing the names of SRFs that should have been generated, but are not present in the directory.
Velocity Model:
1. Velocity model domains viewed spatially
Test: Plot all the VM domain boxes on a map view.
Pass criterion: A researcher will look at the plot and see if there are any anomalies (e.g, very large VM domains, VMs with large orientations at the wrong directions).
2. Core hour estimate as a function of magnitude of simulation
Test: Plot the core-hour estimates calculated by reading nx, ny, nz, dt, and total_duration from the velocity model params.py files by running the core-hour calculations. The core hour should be plotted as a function of the source magnitude.
Passcriterion: The plot should be looked at to find strange outliers in the calculations.
3. Simulation duration vs magnitude
Test: Plot the duration of the simulations from the velocity model params.py files versus the equation for the duration ( ???). Since the duration is a function of domain size (which depends strongly on magnitude), then this can be a plot of duration vs. source magnitude.
Pass criterion: The results should be compared with predictive models (need to define this more clearly)
4. Velocity model binary file vs magnitude.
Test: Compare binary file size
Pass: Plot velocity model size versus rupture magnitude to find outliers.
5. Create a text file containing the names of VMs that should have been generated, but are not present in the directory.
6. Transition frequency
Test: Plot f0 (transition frequency) of the simulations from the velocity model params.py files against this equation ( f0 <= Vs_min / (5 * hh) )
Pass criterion: The results should show a single point on the plot (or lower values than f0 if varying transition frequency is used for different simulations – finer discretization for a subset of faults) (so action this test once there are non-trivial values for this)
7. time discretization
Test: Plot the dt from the velocity model params.py files against the hard-coded value and also satisfy this equation (dt < 0.495 * hh / V_max ) from Graves 1996 BSSA
Pass criterion: The plot should show a single point. (so action this test once there are non-trivial values for this)
Note: hh is the grid size of the VM; V_max of the maximum velocity in your VM.
Note: if we have a varying discretization and Vs_max for specific sub-set runs, those values should show on the plot.