Exawind / amr-wind

AMReX-based structured wind solver
https://exawind.github.io/amr-wind
Other
104 stars 78 forks source link

Joukowski ADM model wake swirl direction #821

Closed lawrenceccheung closed 1 year ago

lawrenceccheung commented 1 year ago

There might be an issue with the way that the swirl (or the turbine rotation direction) is oriented in the Joukowski ADM model. Normally for clockwise rotating turbines, the vertical velocity in the wake should be positive on the right hand side of the rotor disk (if you're upstream of the turbine looking downstream), or on the negative y region as correctly shown in this top-down image: image

Running a Joukowski model gives the opposite result: image

It might be as simple as flipping the sign in the f_theta computation here; https://github.com/Exawind/amr-wind/blob/7891377a4342436d109090f0e24525aa877bf665/amr-wind/wind_energy/actuator/disk/Joukowsky_ops.H#L236-L237 Although I could also imagine situations where we'd want to specify if the turbine is spinning clockwise vs counter-clockwise.

Lawrence

psakievich commented 1 year ago

Hmm the circulation term should account for this. Looking at the code it is being derived from the angular velocity. I think we should pull up the paper and take a closer look. A quick test, does the sign flip when you switch it in the angular velocity? Also is this with or without tip correction?

lawrenceccheung commented 1 year ago

This is with the tip and root correction turned on. Yeah, we should look at the paper, maybe they assumed a counter-clockwise turbine rotation? We can also try it with the rpm schedule flipped to negative, and see if that changes anything.

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 30 days with no activity.

psakievich commented 1 year ago

Ping to keep open

lawrenceccheung commented 1 year ago

Sorry I was tied up and only able to get back to this just now. Using a negative rpm, in the hopes of flipping the rotor spin direction, actually causes it to blow up fairly quickly:

==============================================================================
Step: 1 dt: 0.1 Time: 0 to 0.1
CFL: 1.82811 (conv: 0.36 diff: 0 src: 1.63825 )
WARNING: fixed_dt does not satisfy CFL condition.
Max. CFL: 0.5 => dt: 0.0273507; dt_inp: 0.1

Godunov:
  System                     Iters      Initial residual        Final residual
  ----------------------------------------------------------------------------
  MAC_projection                 9           6.642375679       3.898922851e-12
  velocity_solve                 2       2.339986401e-05       4.078515303e-12
  Nodal_projection               7           27.81969413       1.229763825e-10

WallClockTime: 1 Pre: 0.00836 Solve: 5.498 Post: 2.28e-05 Total: 5.507
Solve time per cell: 6.701e-05

==============================================================================
Step: 2 dt: 0.1 Time: 0.1 to 0.2
CFL: 4.06122 (conv: 3.01855 diff: 0 src: 2.05779 )
WARNING: fixed_dt does not satisfy CFL condition.
Max. CFL: 0.5 => dt: 0.0123116; dt_inp: 0.1

Godunov:
  System                     Iters      Initial residual        Final residual
  ----------------------------------------------------------------------------
  MAC_projection                 8           27.93489851       3.320632658e-11
  velocity_solve                 2       0.0002104789075       4.786215868e-11
  Nodal_projection               7           74.72594784       1.370289906e-10

WallClockTime: 2 Pre: 0.0132 Solve: 5.581 Post: 9.76e-06 Total: 5.594
Solve time per cell: 6.802e-05

==============================================================================
Step: 3 dt: 0.1 Time: 0.2 to 0.3
CFL: 10.711 (conv: 10.1722 diff: 0 src: 2.40238 )
WARNING: fixed_dt does not satisfy CFL condition.
Max. CFL: 0.5 => dt: 0.0046681; dt_inp: 0.1

Godunov:
  System                     Iters      Initial residual        Final residual
  ----------------------------------------------------------------------------
  MAC_projection                 7           5261.589596       2.372345342e-08
  velocity_solve                 2           331013.7244         0.08343505859
  Nodal_projection               5       6.085379949e+10        0.009047065436

WallClockTime: 3 Pre: 0.00963 Solve: 5.135 Post: 2.18e-05 Total: 5.145
Solve time per cell: 6.259e-05

==============================================================================
Step: 4 dt: 0.1 Time: 0.3 to 0.4
CFL: 1.04332e+10 (conv: 1.04332e+10 diff: 0 src: 3.39202 )
WARNING: fixed_dt does not satisfy CFL condition.
Max. CFL: 0.5 => dt: 4.79239e-12; dt_inp: 0.1

with the input

Actuator.T0.rpm                          = -5.500000000399841 -5.7503730274604 -6.924733009169061 -7.950466035772244 -8.820804709636782 -9.530006866155707 -10.073393458373337 -10.447379427563192 -10.649497356086282 -10.678413746477254 -10.82288967359941 -11.139804720841314 -11.627068002870239 -12.28146474128283 -13.098677474494233 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643 -13.141137992834643

Not sure why that would be, but it's definitely unexpected.

Lawrence

lawrenceccheung commented 1 year ago

Hopefully solved in https://github.com/Exawind/amr-wind/pull/848