Plugin WindLab DeodatisAndShinozuka1991
Jump to navigation
Jump to search
| Description |
|---|
| This feature allows the user to simulates random wind velocity according to the conventional spectral representation method proposed by Masanoby Shinozuka and George Deodatis (1991). Plugin version: 1.0 Last modified: 13/01/2025 LabRPS version: All Author: Koffi Daniel |
| Author |
| Koffi Daniel |
| Download |
| None |
| Features |
| Shinozuka and Deodatis 1991 |
| Plugin Version |
| 1.0 |
| Date last modified |
| 13/01/2025 |
| LabRPS Version(s) |
| All |
| Default shortcut |
| None |
| See also |
| None |
Introduction
This feature allows the user to simulates random wind velocity according to the conventional spectral representation method proposed by Masanoby Shinozuka and George Deodatis (1991).
Shinozuka and Deodatis 1991
This is the only RPS feature that the plugin implements. It belongs to the simulation method group.
Feature Dependency
The features required by this feature are summarized in the following table:
- A simulation points feature
- A frequency discretization feature
- A mean wind speed profile feature
- A randomness provider feature
- An along wind spectrum feature or an across wind spectrum feature or a vertical wind spectrum feature depending on your wind velocity component.
Scripting
# -*- coding: utf-8 -*-
# (c) Koffi Daniel 2025
import LabRPS
import WindLab
import WindLabObjects
from LabRPS import Vector as vec
import time
def simulate():
# Plugin
installResuslt = WindLab.installPlugin("DeodatisAndShinozuka1991Plugin")
if not installResuslt:
LabRPS.Console.PrintError("The installation the DeodatisAndShinozuka1991Plugin has failed.\n")
return None
# we need some additional feature from WindLab Plugin
installResuslt = WindLab.installPlugin("WindLabPlugin")
if not installResuslt:
LabRPS.Console.PrintError("The installation the WindLabPlugin has failed.\n")
return None
# Document
doc = LabRPS.newDocument()
# Simulation
sim = WindLabObjects.makeSimulation(doc, "Simulation")
if not sim:
LabRPS.Console.PrintError("The simulation does not exist.\n")
return None
# Simulation points
loc = WindLabObjects.makeFeature("SimulationPoints", "Simulation", "Horizontal Distribution", "Location Distribution")
if not loc:
LabRPS.Console.PrintError("Error on creating the location distribution.\n")
return None
# Mean wind Profile
mean = WindLabObjects.makeFeature("MeanSpeed", "Simulation", "Logarithmic Law Profile", "Mean Wind Profile")
if not mean:
LabRPS.Console.PrintError("The creation of the mean wind profile was not successuful.\n")
return None
# Frequencies
frequency = WindLabObjects.makeFeature("Frequencies", "Simulation", "Zerva Frequency Discretization", "Frequency Distribution")
if not frequency:
LabRPS.Console.PrintError("Error on creating the frequency distribution.\n")
return None
# Spectrum
spectrum = WindLabObjects.makeFeature("Spectrum", "Simulation", "Kaimal Along Wind Spectrum", "Along Wind Spectrum")
if not spectrum:
LabRPS.Console.PrintError("Error on creating the spectrum model.\n")
return None
# Random phase
randomness = WindLabObjects.makeFeature("RandomPhases", "Simulation", "Uniform Random Phases", "Randomness Provider")
if not randomness:
LabRPS.Console.PrintError("The creation of the randomness provider was not successuful.\n")
return None
# Simulation method
simMethod = WindLabObjects.makeFeature("SimulationMethod", "Simulation", "Shinozuka and Deodatis (1991)", "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 WindLabGui
import GeneralToolsGui
WindLabGui.setActiveSimulation(sim)
GeneralToolsGui.GeneralToolsPyTool.showArray(sim.getSimulationData().numberOfTimeIncrements, sim.getSimulationData().numberOfSpatialPosition + 1, velocities, True)
simulate()