Source code for pyts.runInput.main

"""
The 'main' module for the PyTurbSim runInput package defines the
'run' and 'write' routines for performing a TurbSim run and
writing-out data.

Example usage
-------------

First import the PyTurbSim api and runInput package.
>>> import pyts.api as pyts
>>> import pyts.runInput as runInput

First create a tsinput object from an input file using the io.input.read function:

>>> tsinput=pyts.io.input.read('MyInputFile.inp')

Now run PyTurbSim using the runInput 'run' function:

>>> tsdata=runInput.run(tsinput)

This data can be written to the files specified in the input file
(tsinput) using:

>>> runInput.write(tsdata,tsinput)

"""
from ..base import tsGrid
from ..main import tsrun
from ..io.input import read as readInput
from turbModels import getModel as tm_getModel
from profModels import getModel as pm_getModel


[docs]def run_fname(fname): """ Perform a PyTurbSim run based on the input file `fname`. Parameters ---------- fname : str A TurbSim input file. Returns ------- tsdata : :class:`tsdata <pyts.main.tsdata>` A PyTurbSim data object. """ inp = readInput(fname) return run(inp)
[docs]def run(tsinput): """Perform a PyTurbSim run based on the input object `tsinput`. Parameters ---------- tsinput : :class:`.tsinput` A PyTurbSim input object. Returns ------- tsdata : :class:`.tsdata` A PyTurbSim data object. """ tsr = cfg2tsrun(tsinput) return tsr()
[docs]def write(tsdat, tsinput, fname=None): """ Write TurbSim-output to a file. Parameters ---------- tsdat : :class:`.tsdata` The PyTurbSim data object to write out. tsinput : :class:`.tsinput` A PyTurbSim input object. fname : str, optional The filename to writeout (default obtained from `tsinput`) This function determines which file-types to writeout (bladed or TurbSim) from the `tsinput` object """ if fname is None: fname = tsinput.fname if tsinput['WrBLFF']: tsdat.write_bladed(fname) if tsinput['WrADFF']: tsdat.write_turbsim(fname) if tsinput['WrFMTFF']: tsdat.write_formatted(fname) tsdat.write_sum(fname)
[docs]def cfg2grid(tsinput): """ cfg2grid produces a TurbSim-grid object that matches the specificitions in the *tsinput* object. Parameters ---------- tsinput : :class:`tscfg <.base.tscfg>` A PyTurbSim input object. Returns ------- tsgrid : :class:`tsGrid <pyts.base.tsGrid>` A PyTurbSim grid object. """ return tsGrid(tsinput['HubHt'], ny=tsinput['NumGrid_Y'], nz=tsinput['NumGrid_Z'], dt=tsinput['TimeStep'], width=tsinput['GridWidth'], height=tsinput['GridHeight'], time_sec=tsinput['AnalysisTime'], time_sec_out=(tsinput['UsableTime'] + tsinput['GridWidth'] / tsinput['URef']), clockwise=tsinput['Clockwise'])
[docs]def cfg2tsrun(tsinput): """ Produce a `tsrun` object that matches the configuration options in tsinput. Parameters ---------- tsinput : str A TurbSim input object. Returns ------- tsrun : str A TurbSim run object with grid, profModel, specModel, cohereModel and stressModel that match the input `tsinput` object. """ tsr = tsrun(tsinput['RandSeed']) tsr.grid = cfg2grid(tsinput) tsr.profModel = pm_getModel(tsinput) tsr.specModel, tsr.cohereModel, tsr.stressModel = tm_getModel(tsinput) # Store this for use when writing sum files. tsr._config = tsinput return tsr