Simulating wind and marine hydrokinetic turbines with actuator lines in RANS and LES

<p class="gap3"

<p class="gap3"

Pete Bachant (petebachant@gmail.com)

Martin Wosnik (martin.wosnik@unh.edu)


In [ ]:
# Setup stuff
%load_ext autoreload
%autoreload 2
import io
import base64
from IPython.display import HTML
from importlib.machinery import SourceFileLoader
%matplotlib inline
import os
talk_dir = os.getcwd()
import matplotlib.pyplot as plt
import seaborn as sns
from pxl.styleplot import set_sns

# Set plot styling
set_sns(context="talk", rc={"lines.markersize": 14, "lines.markeredgewidth": 2, "axes.grid": True, 
                            "font.size": 1.5*14.3})

# Define some directories
exp_dir = "C:/Users/Pete/Research/Experiments"
rvat_baseline_dir = "C:/Users/Pete/Research/Experiments/RVAT baseline"
rvat_re_dep_dir = os.path.join(exp_dir, "RVAT Re dep")

def embed_video(fpath):
    video = io.open(fpath, 'r+b').read()
    encoded = base64.b64encode(video)
    return HTML(data='''<center><video controls loop>
                        <source src="data:video/mp4;base64,{0}" type="video/mp4" />
                     </video></center>'''.format(encoded.decode('ascii')))

Motivation

  • Sought array modeling strategy for capturing a vertical-axis cross-flow turbine's (VAT/CFT) vertical mean velocity field (dominant near-wake recovery mechanism for high-solidity VAT, see Bachant and Wosnik (2015, J. Turbulence))
    • 2-D blade-resolved RANS can't resolve vertical velocity
    • 3-D blade-resolved RANS too expensive ($\sim 10^4$ CPU hours per case)
    • Potential flow doesn't include turbulent transport
    • ALM for cross-flow turbine and array analysis/design?
      • NREL's SOWFA?

ALM survey

Author(s) Code(s) CFT? Open?
Sorensen and Shen (2002) EllipSys3D
Keck (2012) ANSYS-CFX + ?
Schluntz and Willden (2014) FLUENT + ?
Shamsoddin and Porté-Agel (2014) In-house
Zhong et al. (2015) OpenFOAM + ?
Schito and Zasso (2014) OpenFOAM + ?
Churchfield et al. (2012) OpenFOAM + SOWFA

NREL's SOWFA

  • Open-source extension for OpenFOAM
  • Atmospheric BL modeling tools
  • Additional LES models
  • Coupling with NREL's FAST
  • HAWT farm only
  • Feasible to adapt for CFTs?

turbinesFoam

  • New open-source ALM library for OpenFOAM
  • Models CFTs, AFTs, standalone actuator lines
  • Compatible with standard solvers
  • Inflow sampled away from element using cell-point interpolation
  • Smearing parameter $\epsilon$ either $c/2$ or $2 \sqrt[3]{V_\mathrm{cell}}$ (whichever larger)
  • Lifting-line based end effects model (see Anderson (2001)):
$$ \alpha(\theta) = \frac{2b}{\pi c(\theta)} \sum_1^N A_n \sin n \theta + \sum_1^N n A_n \frac{\sin n \theta}{\sin \theta} + \alpha_{L=0}(\theta) $$$$ \Gamma(\theta) = 2b U_\infty \sum_1^N A_n \sin n \theta \hspace{1in} F = \Gamma(\theta)/\Gamma_\max $$

Distinctive features

  • Inflow sampled away from element using cell-point interpolation
  • Smearing parameter $\epsilon$ either $c/2$ or $2 \sqrt[3]{V_\mathrm{cell}}$ (whichever larger)
  • Three variants of the Leishman–Beddoes dynamic stall model
  • Flow curvature corrections for CFTs
  • Added mass model from Strickland (1981)
  • Lifting-line based end effects model (no rotor parameters needed)—see Anderson (2001):
$$ \alpha(\theta) = \frac{2b}{\pi c(\theta)} \sum_1^N A_n \sin n \theta + \sum_1^N n A_n \frac{\sin n \theta}{\sin \theta} + \alpha_{L=0}(\theta) $$$$ \Gamma(\theta) = 2b U_\infty \sum_1^N A_n \sin n \theta \hspace{1in} F = \Gamma(\theta)/\Gamma_\max $$

OpenFOAM's fvOptions framework

Generic mechanism for adding sources at run time:

// Solve the Momentum equation

tmp<fvVectorMatrix> UEqn
(
    fvm::ddt(U)
  + fvm::div(phi, U)
  + turbulence->divDevReff(U)
 ==
    fvOptions(U)
);

Leverage existing solvers---compressible, incompressible, VOF.

Generic turbulence modeling--RANS, LES, DES, etc.

UNH-RVAT cross-flow turbine validation case

Open datasets from tow tank measurements:
github.com/UNH-CORE/RVAT-baseline
github.com/UNH-CORE/RVAT-Re-dep

3-D standard $k$–$\epsilon$ RANS model

Leishman–Beddoes dynamic stall model modified by Sheng et al. (2008)

Flow curvature correction from Goude (2012)

Added mass model from Strickland (1981)

Preliminary results: UNH-RVAT performance

Wake profiles at $x/D = 1$

Mean momentum transport

$$ \begin{split} \frac{\partial U}{\partial x} = \frac{1}{U} \bigg{[} & - V\frac{\partial U}{\partial y} - W\frac{\partial U}{\partial z} \\ & -\frac{1}{\rho}\frac{\partial P}{\partial x} \\ & - \frac{\partial}{\partial x} \overline{u'u'} - \frac{\partial}{\partial y} \overline{u'v'} - \frac{\partial}{\partial z} \overline{u'w'} \\ & + \nu\left(\frac{\partial^2 U}{\partial x^2} + \frac{\partial^2 U}{\partial y^2} + \frac{\partial^2 U}{\partial z^2} \right) \bigg{]}. \end{split} $$

Mean velocity at $x/D=1$ (ALM vs. experiment)

UNH-RVAT TKE at $x/D=1$ (ALM vs. experiment)

Near-wake momentum transport

UNH-RVAT cross-flow turbine LES

Preliminary results with one equation eddy viscosity model

UNH-RVAT near free surface

Using OpenFOAM's interFoam volume of fluid solver

Sandia/DOE RM2 cross-flow turbine case

Open dataset for low-solidity CFT acquired in UNH tow tank

github.com/UNH-CORE/RM2-tow-tank

Preliminary results: RM2 performance

NTNU dual in-line HAWTs

Extensive axial-flow turbine validation case by Pierella et al. (2014)

NTNU HAWTs performance

Preliminary results with standard $k$–$\epsilon$ RANS model

NTNU HAWTs wake profiles

$1D$ behind downstream turbine

NTNU HAWT large eddy simulation

Preliminary results with one equation eddy viscosity model

Conclusions

  • New open-source ALM developed for both AFTs and CFTs in OpenFOAM
    • Compatible with RANS, LES turbulence models and VOF solvers
  • Predicts performance reasonably well
  • CFT near-wake predictions need work
    • Turbulence generated by dynamic stall
    • Three-dimensionality from vortex shedding

To-do

Blade BL turbulence "injection" (calibration via 2-D RANS)

To-do

  • CFT vorticity generation
    • Blade-vortex interaction?
    • Stall vortex shedding (large negative $C_m$)?