Plugin SeismicLab SeismicLabSmelt

From LabRPS Documentation
Jump to navigation Jump to search

Generic plugin icon. Create your personal icon with the same name of the plugin SeismicLab Smelt Plugin

Description
This plugin implements the seismic ground motion simulation method from the smelt project.

Plugin version: 1.0
Last modified: 15/06/2024
LabRPS version: All
Author: Koffi Daniel
Author
Koffi Daniel
Download
None
Features
Vlachos et al (2018), Dabaghi and Der Kiureghian (2014, 2017, 2018)
Plugin Version
1.0
Date last modified
15/06/2024
LabRPS Version(s)
All
Default shortcut
None
See also
None

Introduction

This plugin implements the seismic ground motion simulation method from the smelt project.

Vlachos et al 2018

This feature belongs to the simulation method group. This feature implements the seismic ground motion simulation method provided by the Smelt project which introduced a stochastic model for generating scenario specific ground motion time histories based on the paper: Vlachos C., Papakonstantinou K.G., & Deodatis G. (2018). Predictive model for site specific simulation of ground motions based on earthquake scenarios.

Plugin SeismicLab Smelt Vlachos Screenshot 1.png

Properties

  • DataMomentMagnitude: Moment magnitude of earthquake.
  • DataRuptureDistance: Closest distance from the site to the fault rupture.
  • DataShearVelocity30: Soil shear wave velocity averaged over top 30 meters.
  • DataOrientation: Orientation of acceleration relative to global coordinates. Represents counter-clockwise angle away from x-axis rotating around z-axis in right-handed coordinate system.
  • DataSimulationNumber: Number of simulated ground motion time histories that should be generated (number of different model parameter realizations).
  • DataSpectraNumber: Number of evolutionary power spectra that should be generated.
  • DataSeedNumber: Value to seed random variables to ensure repeatability.
  • DataEventIndex: The index of the event whose time history should be shown.
  • DataEventName: Name to assign to event.


Scripting

import LabRPS
import SeismicLab
import SeismicLabObjects
from LabRPS import Vector as vec
import time 

def simulate():
    # Plugin
    installResuslt = SeismicLab.installPlugin("SeismicLabSmeltPlugin")
    if not installResuslt:
       LabRPS.Console.PrintError("The installation the SeismicLabSmeltPlugin has failed.\n")
       return None
    
    # Document
    doc = LabRPS.newDocument()

    # Simulation
    sim = SeismicLabObjects.makeSimulation(doc, "Simulation")
    if not sim:
       LabRPS.Console.PrintError("The simulation does not exist.\n")
       return None

    # Simulation method
    simMethod = SeismicLabObjects.makeFeature("SimulationMethod", "Simulation",  "Vlachos et al (2018)", "Simulation Method")
    if not simMethod:
        LabRPS.Console.PrintError("Error on creating the simulation method.\n")
        return None

    # Run simulation and output the first(0) sample
    # store starting time 
    begin = time.time() 
    velocities = sim.simulate(0)
    # store end time 
    end = time.time()
    LabRPS.Console.PrintMessage(f"Total runtime of the simulaltion is {end - begin} seconds\n")

    if LabRPS.GuiUp:
       import SeismicLabGui
       import GeneralToolsGui
       SeismicLabGui.setActiveSimulation(sim)
       GeneralToolsGui.GeneralToolsPyTool.showArray(sim.getSimulationData().numberOfTimeIncrements, sim.getSimulationData().numberOfSpatialPosition + 1, velocities, True)
    doc.recompute()
simulate()

Dabaghi and Der Kiureghian

This feature belongs to the simulation method group. This feature implements the seismic ground motion simulation method provided by the Smelt project which introduced a stochastic model for simulating near-fault ground motions based on the following references: 1. Dabaghi and Der Kiureghian (2014 PEER report) Stochastic Modeling and Simulation of Near-Fault Ground Motions for Performance-Based Earthquake Engineering, 2. Dabaghi and Der Kiureghian (2017 EESD) Stochastic model for simulation of NF GMs, 3. Dabaghi and Der Kiureghian (2018 EESD) Simulation of orthogonal horizontal components of near-fault ground motion for specified EQ source and site characteristics.

Plugin SeismicLab Smelt Dabaghi Screenshot 1.png

Properties

  • DataFaultingType: Type of faulting.
  • DataSimulationType: Pulse-type of simulation.
  • DataMomentMagnitude: Moment magnitude of earthquake.
  • DataDephToRupture: Depth to the top of the rupture plane.
  • DataRuptureDistance: Closest distance from the site to the fault rupture.
  • DataShearVelocity30: Soil shear wave velocity averaged over top 30 meters.
  • DataDirectivityParameter: Directivity parameter s or d --input the larger of the two.
  • DataDirectivityAnge: Directivity ange parameter theta or phi --input corresponding value to s or d.
  • DataSimulationNumber: Number of simulated ground motion time histories that should be generated (number of different model parameter realizations).
  • DataRealizationNumber: Number of realizations of non-stationary, modulated, filtered white noise per set of model parameters.
  • DataTruncate: Boolean indicating whether to truncate and baseline correct synthetic motion.
  • DataSeedNumber: Value to seed random variables to ensure repeatability.
  • DataEventIndex: The index of the event whose time history should be shown.
  • DataEventName: Name to assign to event.


Scripting

import LabRPS
import SeismicLab
import SeismicLabObjects
from LabRPS import Vector as vec
import time 

def simulate():
    # Plugin
    installResuslt = SeismicLab.installPlugin("SeismicLabSmeltPlugin")
    if not installResuslt:
       LabRPS.Console.PrintError("The installation the SeismicLabSmeltPlugin has failed.\n")
       return None
    
    # Document
    doc = LabRPS.newDocument()

    # Simulation
    sim = SeismicLabObjects.makeSimulation(doc, "Simulation")
    if not sim:
       LabRPS.Console.PrintError("The simulation does not exist.\n")
       return None

    # Simulation method
    simMethod = SeismicLabObjects.makeFeature("SimulationMethod", "Simulation",  "Dabaghi and Der Kiureghian (2014, 2017, 2018)", "Simulation Method")
    if not simMethod:
        LabRPS.Console.PrintError("Error on creating the simulation method.\n")
        return None

    # Run simulation and output the first(0) sample
    # store starting time 
    begin = time.time() 
    velocities = sim.simulate(0)
    # store end time 
    end = time.time()
    LabRPS.Console.PrintMessage(f"Total runtime of the simulaltion is {end - begin} seconds\n")

    if LabRPS.GuiUp:
       import SeismicLabGui
       import GeneralToolsGui
       SeismicLabGui.setActiveSimulation(sim)
       GeneralToolsGui.GeneralToolsPyTool.showArray(sim.getSimulationData().numberOfTimeIncrements, sim.getSimulationData().numberOfSpatialPosition + 1, velocities, True)
    doc.recompute()
simulate()