FlowTools is a python package designed for the analysis of fluid flow data, including of turbulent fluid dynamics and wind energy. The main object class in FlowTools is the FlowField class. All other other functions operate on instances of this class. FlowField requires two inputs: (1) velocities - a dict containing instantaneous velocities u, v, w, of a common size, (2) coordinates - a dict containing the coordinates, x, y, z, t, of the data.
FlowTools does not include an data i/o, and requires that the user load data and format it correctly before constructing a FlowField object. Load data and arrange it into dicts of np.arrays where each array has a common shape.
numpy - used to structure data into arrays, perform basic operations, etc. matplotlib - used in flow visualization file i/o - some sort of data importing and exporting utilities. Will depend on the particular data of interest (csv, h5py, etc.)
Python 3.6 - working knowledge
Download or clone git repo. Go to town.
import numpy as np
import matplotlib.pyplot as plt
import FlowTools as ft
#%% load data and make dictionaries for velocity and coordinates
indat = h5py.File('testdata.csv')
u = np.asarray(indat['u'])
v = np.asarray(indat['v'])
w = np.asarray(indat['w'])
x = np.asarray(indat['x'])
y = np.asarray(indat['y'])
z = np.asarray(indat['z'])
timevec = np.asarray(indat['t'])
velocities = {'u': u,
'v': v,
'w': w}
coordinates = {'x': x,
'y': y,
'z': z,
't': timevec}
# create FlowField object
testflow = ft.FlowField(velocities, coordinates)
# print object attributes
testflow.who()
The current version of the package is v.0.0.
Nicholas Hamilton nicholas.hamilton@nrel.gov
This project is licensed under the Apache License - see the LICENSE file for details
Thanks to anyone who would like to contribute!
Please read CONTRIBUTING for details on our code of conduct, and the process for submitting pull requests to us.