<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.labrps.com/index.php?action=history&amp;feed=atom&amp;title=Plugin_SeismicLab_AspasiaZerva</id>
	<title>Plugin SeismicLab AspasiaZerva - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.labrps.com/index.php?action=history&amp;feed=atom&amp;title=Plugin_SeismicLab_AspasiaZerva"/>
	<link rel="alternate" type="text/html" href="https://wiki.labrps.com/index.php?title=Plugin_SeismicLab_AspasiaZerva&amp;action=history"/>
	<updated>2026-05-16T21:43:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://wiki.labrps.com/index.php?title=Plugin_SeismicLab_AspasiaZerva&amp;diff=2594&amp;oldid=prev</id>
		<title>LabRPS: Created page with &quot;{{Plugin |Name=Aspasia Zerva Plugin |Description=This plugin simulates seismic ground motion according to the approach proposed by Aspasia Zerva (1992). |Author=Koffi Daniel |Version=1.0 |Date=21/12/2024 |Features= Aspasia Zerva 1992   |RPSVersion=All }}  == Aspasia Zerva 1992 == This plugin simulates seismic ground motion according to the approach proposed by Aspasia Zerva (1992).  1024px...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.labrps.com/index.php?title=Plugin_SeismicLab_AspasiaZerva&amp;diff=2594&amp;oldid=prev"/>
		<updated>2025-01-25T00:12:43Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Plugin |Name=Aspasia Zerva Plugin |Description=This plugin simulates seismic ground motion according to the approach proposed by Aspasia Zerva (1992). |Author=Koffi Daniel |Version=1.0 |Date=21/12/2024 |Features= &lt;a href=&quot;#Aspasia_Zerva_1992&quot;&gt;Aspasia Zerva 1992&lt;/a&gt;   |RPSVersion=All }}  == Aspasia Zerva 1992 == This plugin simulates seismic ground motion according to the approach proposed by Aspasia Zerva (1992).  &lt;a href=&quot;/File:Plugin_SeismicLab_AspasiaZerva_Screenshot_1.png&quot; title=&quot;File:Plugin SeismicLab AspasiaZerva Screenshot 1.png&quot;&gt;1024px&lt;/a&gt;...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Plugin&lt;br /&gt;
|Name=Aspasia Zerva Plugin&lt;br /&gt;
|Description=This plugin simulates seismic ground motion according to the approach proposed by Aspasia Zerva (1992).&lt;br /&gt;
|Author=Koffi Daniel&lt;br /&gt;
|Version=1.0&lt;br /&gt;
|Date=21/12/2024&lt;br /&gt;
|Features= [[#Aspasia_Zerva_1992|Aspasia Zerva 1992]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|RPSVersion=All&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Aspasia Zerva 1992 ==&lt;br /&gt;
This plugin simulates seismic ground motion according to the approach proposed by Aspasia Zerva (1992).&lt;br /&gt;
&lt;br /&gt;
[[Image:Plugin_SeismicLab_AspasiaZerva_Screenshot_1.png|1024px]] &lt;br /&gt;
&lt;br /&gt;
== Wittig Sinha Equal Floors == &lt;br /&gt;
This is the only RPS feature that the plugin implements. It belongs to the [[RPS_Feature_Group#Simulation_Method| simulation method group]]. This feature implements the seismic ground motion simulation method according to Aspasia Zerva (1992)&lt;br /&gt;
&lt;br /&gt;
=== Feature Dependency === &lt;br /&gt;
The features required by this feature are summarized in the following table:&lt;br /&gt;
&lt;br /&gt;
* A [[RPS_Feature_Group#Location_Distribution| simulation points feature]]&lt;br /&gt;
* A [[RPS_Feature_Group#Frequency_Distribution| frequency discretization feature]]&lt;br /&gt;
* A [[RPS_Feature_Group#Randomness| randomness provider feature]]&lt;br /&gt;
* A [[RPS_Feature_Group#Modulation_Function| modulation function(time envelop)]]&lt;br /&gt;
* A [[SeismicLab_Feature#Spectrum| spectrum feature]]&lt;br /&gt;
&lt;br /&gt;
=== Properties === &lt;br /&gt;
&lt;br /&gt;
* {{PropertyData|StandardDeviation}}: The standard deviation of the excitation.&lt;br /&gt;
* {{PropertyData|DominantFrequency}}: The dominant frequency of the earthquake excitation.&lt;br /&gt;
* {{PropertyData|DampingRatio}}: The bandwidth of the earthquake excitation.&lt;br /&gt;
* {{PropertyData|EnvelopValueAtNinetyPercentDuration}}: The value of the envelop function at 90 percent of the duration.&lt;br /&gt;
* {{PropertyData|NormalizedDurationTimeAtPeak}}: The normalized duration time when ground motion achieves peak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scripting === &lt;br /&gt;
&lt;br /&gt;
{{Code|code=&lt;br /&gt;
import LabRPS&lt;br /&gt;
import SeismicLab&lt;br /&gt;
import SeismicLabObjects&lt;br /&gt;
from LabRPS import Vector as vec&lt;br /&gt;
import time &lt;br /&gt;
&lt;br /&gt;
def simulate():&lt;br /&gt;
    # Plugin&lt;br /&gt;
    installResuslt = SeismicLab.installPlugin(&amp;quot;SeismicLabPlugin&amp;quot;)&lt;br /&gt;
    if not installResuslt:&lt;br /&gt;
       LabRPS.Console.PrintError(&amp;quot;The installation the SeismicLabPlugin has failed.\n&amp;quot;)&lt;br /&gt;
       return None&lt;br /&gt;
&lt;br /&gt;
    installResuslt = SeismicLab.installPlugin(&amp;quot;AspasiaZervaPlugin&amp;quot;)&lt;br /&gt;
    if not installResuslt:&lt;br /&gt;
       LabRPS.Console.PrintError(&amp;quot;The installation the AspasiaZervaPlugin has failed.\n&amp;quot;)&lt;br /&gt;
       return None&lt;br /&gt;
    &lt;br /&gt;
    # Document&lt;br /&gt;
    doc = LabRPS.newDocument()&lt;br /&gt;
&lt;br /&gt;
    # Simulation&lt;br /&gt;
    sim = SeismicLabObjects.makeSimulation(doc, &amp;quot;Simulation&amp;quot;)&lt;br /&gt;
    if not sim:&lt;br /&gt;
       LabRPS.Console.PrintError(&amp;quot;The simulation does not exist.\n&amp;quot;)&lt;br /&gt;
       return None&lt;br /&gt;
&lt;br /&gt;
    # Simulation points&lt;br /&gt;
    loc = SeismicLabObjects.makeFeature(&amp;quot;SimulationPoints&amp;quot;, &amp;quot;Simulation&amp;quot;,  &amp;quot;Horizontal Distribution&amp;quot;, &amp;quot;Location Distribution&amp;quot;)&lt;br /&gt;
    if not loc:&lt;br /&gt;
        LabRPS.Console.PrintError(&amp;quot;Error on creating the location distribution.\n&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
    # Frequencies&lt;br /&gt;
    frequency = SeismicLabObjects.makeFeature(&amp;quot;Frequencies&amp;quot;, &amp;quot;Simulation&amp;quot;,  &amp;quot;Double Index Frequency Discretization&amp;quot;, &amp;quot;Frequency Distribution&amp;quot;)   &lt;br /&gt;
    if not frequency:&lt;br /&gt;
        LabRPS.Console.PrintError(&amp;quot;Error on creating the frequency distribution.\n&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
    # Spectrum&lt;br /&gt;
    spectrum = SeismicLabObjects.makeFeature(&amp;quot;Spectrum&amp;quot;, &amp;quot;Simulation&amp;quot;,  &amp;quot;Clough-Penzien Spectrum&amp;quot;, &amp;quot;Spectrum&amp;quot;)&lt;br /&gt;
    if not spectrum:&lt;br /&gt;
        LabRPS.Console.PrintError(&amp;quot;Error on creating the spectrum model.\n&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
    # Spectrum decomposition&lt;br /&gt;
    spectrumD = SeismicLabObjects.makeFeature(&amp;quot;Envelop&amp;quot;, &amp;quot;Simulation&amp;quot;,  &amp;quot;Bogdanoff Goldberg Bernard Modulation Function&amp;quot;, &amp;quot;Modulation Function&amp;quot;)&lt;br /&gt;
    if not spectrumD:&lt;br /&gt;
        LabRPS.Console.PrintError(&amp;quot;Error on creating the modulation function.\n&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
    &lt;br /&gt;
    # Random phase&lt;br /&gt;
    randomness = SeismicLabObjects.makeFeature(&amp;quot;RandomPhases&amp;quot;, &amp;quot;Simulation&amp;quot;,  &amp;quot;Uniform Random Phases&amp;quot;, &amp;quot;Randomness Provider&amp;quot;)&lt;br /&gt;
    if not randomness:&lt;br /&gt;
        LabRPS.Console.PrintError(&amp;quot;The creation of the randomness provider was not successuful.\n&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
    # Simulation method&lt;br /&gt;
    simMethod = SeismicLabObjects.makeFeature(&amp;quot;SimulationMethod&amp;quot;, &amp;quot;Simulation&amp;quot;,  &amp;quot;Aspasia Zerva 1992&amp;quot;, &amp;quot;Simulation Method&amp;quot;)&lt;br /&gt;
    if not simMethod:&lt;br /&gt;
        LabRPS.Console.PrintError(&amp;quot;Error on creating the simulation method.\n&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
    sim.Stationarity = False&lt;br /&gt;
    # Run simulation and output the first(0) sample&lt;br /&gt;
    # store starting time &lt;br /&gt;
    begin = time.time() &lt;br /&gt;
    velocities = sim.simulate(0)&lt;br /&gt;
    # store end time &lt;br /&gt;
    end = time.time()&lt;br /&gt;
    LabRPS.Console.PrintMessage(f&amp;quot;Total runtime of the simulaltion is {end - begin} seconds\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if LabRPS.GuiUp:&lt;br /&gt;
       import SeismicLabGui&lt;br /&gt;
       import GeneralToolsGui&lt;br /&gt;
       SeismicLabGui.setActiveSimulation(sim)&lt;br /&gt;
       GeneralToolsGui.GeneralToolsPyTool.showArray(sim.getSimulationData().numberOfTimeIncrements, sim.getSimulationData().numberOfSpatialPosition + 1, velocities, True)&lt;br /&gt;
    doc.recompute()&lt;br /&gt;
simulate()&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>LabRPS</name></author>
	</entry>
</feed>