-
Notifications
You must be signed in to change notification settings - Fork 0
/
waketools.py
40 lines (26 loc) · 1.17 KB
/
waketools.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/python3
"""
Created by Jeffrey Johnston. Jun, 2023.
"""
import logging
from pathlib import Path
import numpy as np
logger = logging.getLogger(__name__)
###############################################################################
def calculate_induction(upstreamfile: Path, rotorfile: Path,
wind_vector: np.array):
logger.debug(f'Calculating induction factor from {upstreamfile.name}'
f'and {rotorfile.name}')
def calculate_streamwise_velocity(file):
data = np.genfromtxt(f'{file}.csv', delimiter=',', names=True)
velocity = np.array([data['UAvg0'], data['UAvg1'], data['UAvg2']])
return (np.dot(velocity, wind_vector))
freestreamvelocity = calculate_streamwise_velocity(upstreamfile)
inducedvelocity = calculate_streamwise_velocity(rotorfile)
induction_factor = 1 - inducedvelocity / freestreamvelocity
logger.debug(f"{induction_factor=}")
return induction_factor, freestreamvelocity, inducedvelocity
def jensen_velocity(u0,a,alpha,i):
return (u0 * (1 - (2*a) / (1 + 2*alpha*i)**2))
def jensen_wake_width(d, alpha,i):
return d * (1 + 2*alpha*i) / 2