NREL / SOWFA

Other
130 stars 113 forks source link

The Actuator Disk Model (ADM) implementation #84

Open hcOnel opened 2 years ago

hcOnel commented 2 years ago

Hi, I know that SOWFA has an Actuator Disk Model (ADM) implemented, i.e. pisoFoamTurbine.ADM. I'm interested in running ADM in steady state using a RANS turbulence model, but I'm not sure if its possible since the solver is based on pisoFoam. Also I've been reading through the SOWFA training document 2017 but it only includes details on ALM. Are details on the ADM implementation documented somewhere? If not, can you refer me to the paper it is based on? I would also appreciate your thoughts on the possibility of the implementation of steady-state RANS-ADM in SOWFA. Thanks in advance

Bartdoekemeijer commented 2 years ago

I believe SOWFA's implementation is comparable to the "ADM-R" model that is described in the article "Large-Eddy Simulation of Wind-Turbine Wakes: Evaluation of Turbine Parametrisations" by Wu and Porte-Agel, 2010 (URL). Though, I haven't looked at the ADM code in too much detail, so I can't tell you the subtleties and how SOWFA would differ from that paper, if at all.

I'm not sure about steady-state simulations with SOWFA. I have never seen anyone do that before, but it may be possible.

hcOnel commented 2 years ago

Thanks for the reference. An unsteady simulation is a must for ALM, as it requires dynamic rotation due to the model definition. If we consider RANS for a moment (since LES is unsteady only), theoretically, steady ADM-R should yield the same results as that of a quasi-equilibrium unsteady. The formulation of ADM-R (force projection, velocity and AoA sampling methods) should allow this. I've been reading through the horizontalAxisWindTurbinesADM.C code and could not find anything that would make unsteadiness necessary. I was thinking of using/implementing it in a steady solver, such as simpleFoam. I'm new to OpenFOAM coding so that is why I'm asking for your valuable input :) Regards

Prabs8815 commented 2 years ago

Hello,

I have read your post and immediately i started wondering if you have considered the following things before planning to change the source code

  1. Firstly, in the U file of openFOAM you could change the "internalField" to "uniform" and set a constant velocity.
  2. In the turbulence properties file in constant folder, you could change it to RASModel instead of LESModel
  3. Remember that the turbine models in SOWFA are coded in such a way that the force calculation itself "is not seen" by the solver. I mean even if you copy paste the ALM code in the ADM code the solver will assume you are performing simulations of ADM because what it is being fed into Navier stokes equation by the turbine model is only the force finally calculated.
  4. i agree the resources describing ADM model implementations are sparse but did you go through the reference "Wind Turbine Modeling for Computational Fluid Dynamics December 2010 — December 2012 L.A. Martinez Tossas and S. Leonardi"
  5. if turbulence modelling is your only problem. I would suggest trying different things without changing the code first and exploit all the features of file structure in OpenFOAM which enables you to individually define different parameters of your simulation. Also, reading about what the solvers do and their differences will give you some more ideas.

So there are many things to think about, let me know if i am mistaking something !

All the best and happy FOAMing !!

Best regards

hcOnel commented 2 years ago

Hi @Prabs8815, Thanks for your response! Regarding your 1st and 2nd statements, yes I know those, but what I'm specifically interested in is to run ADM in a steady solver.

  1. I am also aware of that. Adding the body force to the momentum equation in the solver results in a new solver. What I'm considering is to use the addSup functionality of fvOptions as @petebachant did instead, hence, ADM can be used in any solver. However, I've seen your post where you mention the requirement of numerous modifications to the code. Since I'm new to OpenFOAM coding, I'm trying to make a sense of it and estimate the coding required.
  2. Yes I've checked that paper and what I understand is they've run unsteady simulations. I'm still not able to find a steady ADM-R study. However, I've heard from a colleague today that the CFD++ software (which I've never used before) has a fully functional rotor disk application that can be run in steady-state, so I think that it is possible.
  3. I know that SOWFA's ADM-R can be run with RANS as Dr. Churchfield @mchurchf says in this document (p.29), but he also says that it is untested, which I'm interested in.

Regards

Prabs8815 commented 2 years ago

Hello @hcOnel

Good that you already explored all those options already.

I still don't understand why you are searching for steady solver in SOWFA libraries whose complexity is more inclined to capture wind farm physics. With a steady solver i doubt if you could go close to description of wake properties like expansion. pressure deficit and meandering etc. On the other hand with 3D LES simulations in SOWFA you are aiming at a very high resolution of the flow. If your project does not require that accuracy in predicting the flow around the turbine

  1. Did you consider using other methods based on vortex theories or to that matter BEM ?
  2. http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2010/erikSvenning/erikSvenningReport.pdf maybe this for you, the author develops an actuator disk computation with a simpleFOAM solver.

In any case i can help you better if you describe your motivation towards doing ADM simulations in steady solver and why you think that approach best suits your problem statement.

Best regards

hcOnel commented 2 years ago

Dear @Prabs8815, There are modified k-eps turbulence models that can replicate turbine wakes reasonably well. Some are: https://www.sciencedirect.com/science/article/pii/S0167610507000943?via%3Dihub https://onlinelibrary.wiley.com/doi/full/10.1002/we.1736 For example, application of ADM on wind farms with complex topography, and even with time-varying boundary conditions. It is quite difficult and complicated to generate the inflow and atmospheric turbulence with LES in such cases and RANS might suit better depending on your computational power. Or, a 3D Navier-Stokes based optimization problem would require a steady-state simulation. In any case, I just want to compare steady and transient solutions. I totally agree with you on LES and free vortex wake methods, but I think RANS still offers a good trade-off between them. I'm just considering SOWFA's ADM library for that purpose, not criticizing SOWFA's models :) Maybe I couldn't make myself clear. Regards

dcsale commented 2 years ago

if the goal is to have steady RANS and ADM have you considered the WindSE code? https://www.nrel.gov/docs/fy20osti/75033.pdf I just read about WindSE and it sounds like has the features you asking about, good hunt!

On Sun, Oct 24, 2021 at 12:12 PM hcOnel @.***> wrote:

Hi @Prabs8815 https://github.com/Prabs8815, Thanks for your response! Regarding your 1st and 2nd statements, yes I know those, but what I'm specifically interested in is to run ADM in a steady solver.

  1. I am also aware of that. Adding the body force to the momentum equation in the solver results in a new solver. What I'm considering is to use the addSup functionality of fvOptions as @petebachant https://github.com/petebachant did instead, hence, ADM can be used in any solver. However, I've seen your post https://github.com/NREL/SOWFA/issues/75 where you mention the requirement of numerous modifications to the code. Since I'm new to OpenFOAM coding, I'm trying to make a sense of it and estimate the coding required.
  2. Yes I've checked that paper and what I understand is they've run unsteady simulations. I'm still not able to find a steady ADM-R study. However, I've heard from a colleague today that the CFD++ software (which I've never used before) has a fully functional rotor disk application that can be run in steady-state, so I think that it is possible.
  3. I know that SOWFA's ADM-R can be run with RANS as Dr. Churchfield @mchurchf https://github.com/mchurchf says in this document https://www.aere.iastate.edu/nawea2017/files/2017/09/SOWFA_Training_NAWEA_2017.pdf (p.29), but he also says that it is untested, which I'm interested in.

Regards

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/NREL/SOWFA/issues/84#issuecomment-950369182, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5AZIKFUR3A5HGW4FGFW53UIRD7BANCNFSM5GD7NYIQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.