Macro Deodatis 1996 Wind Simulation Points: Difference between revisions

From LabRPS Documentation
Jump to navigation Jump to search
No edit summary
No edit summary
Line 45: Line 45:
if not sim:
if not sim:
     LabRPS.Console.PrintError("The simulation does not exist.\n")
     LabRPS.Console.PrintError("The simulation does not exist.\n")
   
# set simulation parameters
sim.NumberOfFrequency = 2048
sim.MaxFrequency = "0.64 Hz" # 4 rad/s;
sim.FrequencyIncrement = "0.00031 Hz" # 0.00195 rad/s;
sim.TimeIncrement = "0.785 s"
sim.NumberOfTimeIncrements = 9651


# create new location distribution in the simulation called "Simulation"
# create new location distribution in the simulation called "Simulation"
Line 66: Line 59:


# run the method "computeLocationCoordinateMatrixP3" of the feature and store the result.
# run the method "computeLocationCoordinateMatrixP3" of the feature and store the result.
# Note that here, this method will be called for the active location distribution feature
# Note that here, this method will be called for the active location distribution feature in case they are more than one
locRes = sim.computeLocationCoordinateMatrixP3()
locRes = sim.computeLocationCoordinateMatrixP3()



Revision as of 10:18, 16 April 2024

Macro Deodatis 1996 Wind Simulation Points.png Macro Deodatis 1996 Wind Simulation Points

Description
This macro create simulation point according to G. Deodatis 1996.

Macro version: 1.0
Last modified: 2024-04-15
LabRPS version: All
Download: ToolBar Icon
Author: Koffi Daniel
Author
Koffi Daniel
Download
ToolBar Icon
Links
Macro Version
1.0
Date last modified
2024-04-15
LabRPS Version(s)
All
Default shortcut
None
See also
Macro Deodatis 1996 Mean Wind Profile

This macro create simulation point according to G. Deodatis 1996. There are three simulation points created with WindLabFeatureLocationDistribution feature. Deodatis1996WindSimulationPoints.png

Simulation Point Distribution

Points Heights‎

Script

You can find the source code on the following Github repository: Get the code here!

Macro Deodatis 1996 Wind Simulation Points.FCMacro

# -*- coding: utf-8 -*-
# (c) Koffi Daniel 2024

import LabRPS
from LabRPS import Vector as vec

import WindLab
import WindLabObjects

#install the WindLab plugin with all its plugged features
installResuslt = WindLab.installPlugin("WindLabPlugin")

doc = LabRPS.newDocument()

# create new simulation with default name "Simulation"
sim = WindLabObjects.makeSimulation(doc)
    
# check if the simulation is successfully created
if not sim:
    LabRPS.Console.PrintError("The simulation does not exist.\n")

# create new location distribution in the simulation called "Simulation"
loc = WindLabObjects.makeFeature("SimulationPoints", "Simulation", "Location Distribution",  "General Distribution")
    
# check if the created location distribution feature is null
if not loc:
    LabRPS.Console.PrintError("Error on creating the location distribution.\n")

v1 = vec(0, 0, 35)
v2 = vec(0, 0, 40)
v3 = vec(0, 0, 140)
loc.Locations = [v1, v2, v3]

# run the method "computeLocationCoordinateMatrixP3" of the feature and store the result.
# Note that here, this method will be called for the active location distribution feature in case they are more than one
locRes = sim.computeLocationCoordinateMatrixP3()

if LabRPS.GuiUp:
    import WindLabGui
    #show the location coordinate in Alphaplot
    WindLabGui.WindLabPythonPluginUtilities.showArray(sim.getSimulationData().numberOfSpatialPosition, 4, locRes)
    loc.ViewObject.Document.activeView().viewAxonometric()
    loc.ViewObject.Document.activeView().fitAll()

    import numpy
    import matplotlib.pyplot as plt
    arr = numpy.asarray(locRes)
    fig, ax = plt.subplots()
    fig.suptitle('Location Distribution')
    ax.plot(arr[:,0], arr[:,3], 'o-')
    ax.set_xlabel('Simulation Point Number')
    ax.set_ylabel('Height (m)')
    ax.grid(True)
    plt.show()
  
doc.recompute()