As part of validation of ground motion simulations we wish to add velocity model perturbations to the automated workflow.

Rob Graves has already added this ability as a feature to EMOD3D, so this will be based on his previous work.

Perturbation generation

Rob has provided us with code to generate perturbation files to use with EMOD3D.

These files consist of nx*ny*nz floats (single precision) in a binary file, stored in x, z, y order, the same format and order as the .p, .s, .d files in a velocity model.

Perturbation files are generated in bands of multiple layers. Each band has properties specified at generation time, the bands are then stacked to form the full perturbation file.

Each band has a mean of 1 and a given standard deviation, this allows the top layers to have higher variance, while lower layers can be more homogeneous.

Use with EMOD3D

Perturbation files can be used statically or dynamically.

Using them dynamically mean supplying the unperturbed velocity model and the perturbation file to EMOD3D.

To use them statically we must generate a perturbed velocity model to EMOD3D, this id done by taking the .p and .s files from the velocity model and applying the perturbation file by taking the dot product. EMOD3D is not aware of the perturbations with this method.

The static method will require substantially more storage space than the dynamic method.

We currently use version 3.0.4 of EMOD3D, which does not have native support for dynamic perturbations.

Looking at the source for versions 3.0.5 and 3.0.7 there are additional settings that will allow for dynamic perturbation file usage.

An additional issue has arisen in that the perturbations may result in Vmax going above the maximum stable limit for a given grid spacing and dt. In these cases we may need to cap the perturbations, increase h or decrease dt.

Integration into the workflow

To integrate velocity model perturbations into the workflow we will need the nx, ny, nz information from the vm_params.yaml file generated during velocity model generation.

Assuming the pre-processing workflow currently in development is to be used then the band parameters will need to be generated during the parameter perturbation step.

If we wish to use static perturbations then we will need an additional step that merges the velocity model with the perturbation file.

The following flow diagram illustrates an example of how dynamic usage will fit in with the workflow


  • No labels