Difference between revisions of "BBP Multi-Segment Ruptures"

From SCECpedia
Jump to navigationJump to search
Line 107: Line 107:
 
== Running the BBP for Multi-Segment Ruptures ==
 
== Running the BBP for Multi-Segment Ruptures ==
  
==== Running Individual Simulations ====
+
=== Running BBP on a Single Computer ===
 +
 
 +
==== Approach 1: Running Individual Segments Separately ====
  
 
At this moment, the validation packages can specify multiple SRC files. For examples:
 
At this moment, the validation packages can specify multiple SRC files. For examples:
Line 113: Line 115:
 
  P_CODEBASE_GP_source = gp/landers_v16_08_1_seg1.src, gp/landers_v16_08_1_seg2.src, gp/landers_v16_08_1_seg3.src
 
  P_CODEBASE_GP_source = gp/landers_v16_08_1_seg1.src, gp/landers_v16_08_1_seg2.src, gp/landers_v16_08_1_seg3.src
  
Currently, when the Platform finds a validation package like this, it will prompt the user to select which segment s/he wants to run. After all segments are completed (separately), the user then runs the "merge_multisegment_validation.py" to add the time series from each segment together into a new BBP simulation and then run the entire BBP post-processing codes to calculate the BBP outputs based on the combined seismograms. The simple processing workflow is shown below:
+
Currently, when the Platform finds a validation package like this, it will prompt the user to select which segment s/he wants to run. After all segments are completed (separately), the user runs the "merge_multisegment_validation.py" to add the time series from each segment together into a new BBP simulation and then run the entire BBP post-processing codes to calculate the BBP outputs based on the combined seismograms. The simple processing workflow is shown below:
  
 
[[File:Multi-segment-single.png|400px]]
 
[[File:Multi-segment-single.png|400px]]
 +
 +
==== Approach 2: Combining Segments Into Single Simulation ====
  
 
It may also be possible for some methods to generate a single, combined rupture SRF file that can be used by the wave propagation codes directly. In this case, a single simulation is done and the post processing steps are executed only once. The workflow for this method is shown below:
 
It may also be possible for some methods to generate a single, combined rupture SRF file that can be used by the wave propagation codes directly. In this case, a single simulation is done and the post processing steps are executed only once. The workflow for this method is shown below:
  
[[File:Multi-segment-single-SRFV2.png|150px]]
+
[[File:Multi-segment-single-SRFV2.png|400px]]
 +
 
 +
=== Running BBP on the Cluster ===
  
==== Running Multiple Realizations on the Cluster ====
+
==== Running Individual Segments on the Cluster Separately ====
  
When running multiple realizations on the cluster, simulations can still be run one segment at a time. In this case, the user submits N jobs to the cluster (one for each segment). The data products of each segment is saved and copied back to the user directory. Then, the merge_multisegment_validation tool is invoked one time for each realization, combining the data for all N segments into a final simulation. This process is done one realization at a time and can be time consuming as it is not running on the cluster but in a single node. The processing diagram is shown below:
+
When running multiple realizations on the cluster, simulations can still be run one segment at a time. In this case, the user submits N jobs to the cluster (one for each segment). The data products of each segment is saved and copied back to the user directory. Then, the merge_multisegment_validation tool is invoked one time for each realization, combining the data for all N segments into a final simulation. The merging process is done one realization at a time and can be time consuming as it is not running on the cluster but in a single node. The processing diagram is shown below:
  
 
[[File:Multi-segment-cluster-separate.png|400px]]
 
[[File:Multi-segment-cluster-separate.png|400px]]
  
 
In this approach, the separate simulations (time series, plots) are stored separately in the user directory and can be reprocessed later using a different approach/parameters if needed.
 
In this approach, the separate simulations (time series, plots) are stored separately in the user directory and can be reprocessed later using a different approach/parameters if needed.
 +
 +
==== Running Individual Segments and Combining Results on the Cluster ====
  
 
A different approach is to calculate all segments on the cluster serially in a single job and then merge the simulations at each computation node. This allows for faster data processing as the computations are distributed across a large number of nodes (just like the simulations are). After post-processing is completed, the combined results are copied back to the user directory.
 
A different approach is to calculate all segments on the cluster serially in a single job and then merge the simulations at each computation node. This allows for faster data processing as the computations are distributed across a large number of nodes (just like the simulations are). After post-processing is completed, the combined results are copied back to the user directory.

Revision as of 18:22, 27 September 2016

This page describes the implementation of Multi-Segment Ruptures on the Broadband Platform. For the example described in this page, we use the 1992 Mw 7.2 Landers earthquake. We use 3 separate SRC files to provide rupture parameter descriptions for a 3-segment Landers rupture model. These SRC files can be run independently through the BBP, and then the resulting time series for each station summed together across the 3 segments.

SRC Description

The BBP source description file containing a single plane Landers event is show below for comparison:

#
# Landers source file
#
MAGNITUDE = 7.22
FAULT_LENGTH = 80.00
FAULT_WIDTH = 21.00
DEPTH_TO_TOP = 0.0
STRIKE = 344
RAKE = 180
DIP = 89
LAT_TOP_CENTER = 34.416
LON_TOP_CENTER = -116.505
HYPO_ALONG_STK = -25.00
HYPO_DOWN_DIP = 7.00
#
# Model specific parameters
#
DLEN = 0.1
DWID = 0.1
#
# Alternative SEEDS create alternative slip distributions
#
SEED = 2379646

For describing the 3-segment Landers earthquake, we use 3 separate SRC files, as show below:

  • Segment 1
MAGNITUDE = 7.220
LAT_TOP_CENTER = 34.214577
LON_TOP_CENTER = -116.436576
DEPTH_TO_TOP = 0.0
STRIKE = 355
DIP = 90
RAKE = 180
FAULT_LENGTH = 32.0
DLEN = 0.1
FAULT_WIDTH = 20.4
DWID = 0.1
HYPO_ALONG_STK = -2
HYPO_DOWN_DIP = 7
SEED = 865558645
MAX_FAULT_LENGTH = 84.0
RUPTURE_DELAY = 0.00
MOMENT_FRACTION = 0.38
  • Segment 2
MAGNITUDE = 7.220
LAT_TOP_CENTER = 34.448000
LON_TOP_CENTER = -116.498000
DEPTH_TO_TOP = 0.0
STRIKE = 337
DIP = 90
RAKE = 180
FAULT_LENGTH = 22.0
DLEN = 0.1
FAULT_WIDTH = 20.4
DWID = 0.1
HYPO_ALONG_STK = -29
HYPO_DOWN_DIP = 7
SEED = 1201370197
MAX_FAULT_LENGTH = 84.0
RUPTURE_DELAY = 1.00
MOMENT_FRACTION = 0.26
COMMON_SEED = 865558645
  • Segment 3
MAGNITUDE = 7.220
LAT_TOP_CENTER = 34.635322
LON_TOP_CENTER = -116.659518
DEPTH_TO_TOP = 0.0
STRIKE = 315
DIP = 90
RAKE = 180
FAULT_LENGTH = 30.0
DLEN = 0.1
FAULT_WIDTH = 20.4
DWID = 0.1
HYPO_ALONG_STK = -55
HYPO_DOWN_DIP = 7
SEED = 383416373
MAX_FAULT_LENGTH = 84.0
RUPTURE_DELAY = 2.00
MOMENT_FRACTION = 0.36
COMMON_SEED = 865558645

As shown above, the magnitude value remains the same through all segments, but there are additional parameters added to the standard SRC file. The moment-scaling and time delay information is included in the rupture description so that the final summation does not need to know about any of this. Although this approach is currently GP method specific, the idea is that other models will hopefully be able to use the same (or similar) approach.

There are 4 additional parameters in each SRC file:

  • MAX_FAULT_LENGTH = <float>
  • RUPTURE_DELAY = <float>
  • MOMENT_FRACTION = <float>
  • COMMON_SEED = <integer>

For now these parameters will need to be supplied by hand by an "expert". Once we make sure the computation process is all worked out, we can worry about how to automate/optimize things. The COMMON_SEED parameter is needed so that certain parameters can be calculated consistently across all segments. Right now segments number 2 and 3 have their COMMON_SEED set to segment's 1 SEED value. If this parameter is missing, the SEED value is used for all calculations where random numbers are needed.

Running the BBP for Multi-Segment Ruptures

Running BBP on a Single Computer

Approach 1: Running Individual Segments Separately

At this moment, the validation packages can specify multiple SRC files. For examples:

P_CODEBASE_GP_source = gp/landers_v16_08_1_seg1.src, gp/landers_v16_08_1_seg2.src, gp/landers_v16_08_1_seg3.src

Currently, when the Platform finds a validation package like this, it will prompt the user to select which segment s/he wants to run. After all segments are completed (separately), the user runs the "merge_multisegment_validation.py" to add the time series from each segment together into a new BBP simulation and then run the entire BBP post-processing codes to calculate the BBP outputs based on the combined seismograms. The simple processing workflow is shown below:

Multi-segment-single.png

Approach 2: Combining Segments Into Single Simulation

It may also be possible for some methods to generate a single, combined rupture SRF file that can be used by the wave propagation codes directly. In this case, a single simulation is done and the post processing steps are executed only once. The workflow for this method is shown below:

Multi-segment-single-SRFV2.png

Running BBP on the Cluster

Running Individual Segments on the Cluster Separately

When running multiple realizations on the cluster, simulations can still be run one segment at a time. In this case, the user submits N jobs to the cluster (one for each segment). The data products of each segment is saved and copied back to the user directory. Then, the merge_multisegment_validation tool is invoked one time for each realization, combining the data for all N segments into a final simulation. The merging process is done one realization at a time and can be time consuming as it is not running on the cluster but in a single node. The processing diagram is shown below:

Multi-segment-cluster-separate.png

In this approach, the separate simulations (time series, plots) are stored separately in the user directory and can be reprocessed later using a different approach/parameters if needed.

Running Individual Segments and Combining Results on the Cluster

A different approach is to calculate all segments on the cluster serially in a single job and then merge the simulations at each computation node. This allows for faster data processing as the computations are distributed across a large number of nodes (just like the simulations are). After post-processing is completed, the combined results are copied back to the user directory.

Multi-segment-cluster-together.png

This approach is much faster and simpler to manage (fewer jobs to submit to the cluster and no need to run the post-processing computations separately for each realization) but it does not save the separate computations (and if it did, further reprocessing would fall into the previous scenario where it had to be done outside of the cluster).

SRF Plots

Below are two SRF Plots. The first one represents a plot for the single segment description of Landers. The second plot includes the 3 segments combined into a single plot. Please note the changing azimuth value at the top of each segment.

Single-segment Landers

Multi-segment Landers

Seismograms

Here are synthetic seismogram for station 4001-LCN. The seismogram below is calculated using a single segment (plane) description of the Landers earthquake:

Seismogram from single-segment Landers

Here are the 3 seismograms from each of the fault segments simulated separately:

Seismogram from first segment Seismogram from second segment Seismogram from third segment

Finally, here's the combined seismogram, generated by adding the 3 seismograms above:

Combining all 3 planes

GOF Plots

Below are GOF plots produced by using a single plane (left) versus the 3-segment rupture (right):

GOF Plot for Single-segment Landers GOF Plot for Multi-segment Landers