openfast icon indicating copy to clipboard operation
openfast copied to clipboard

Issue about aeroelastic coupling between OLAF and BeamDyn

Open winder365 opened this issue 3 months ago • 5 comments

Dear @jjonkman

As we know, the time step of the BeamDyn is usually smaller than OLAF, so how did the aerodynamic load used for BeamDyn is calculated between two time steps of OLAF? Is it calculated through interpolation?

Thank you for your attention.

winder365 avatar Nov 01 '25 16:11 winder365

Dear @winder365,

Yes, if BeamDyn has a smaller time step than AeroDyn (including the OLAF submodel), then the outputs of AeroDyn will be interpolated to the BeamDyn time step within OpenFAST.

Best regards,

jjonkman avatar Nov 03 '25 13:11 jjonkman

Dear @jjonkman ,

Thank you for your reply!

I have read a description about the coupling between aerodyn and beamdyn here "https://forums.nrel.gov/t/clarification-on-aeroelastic-coupling-approach-in-openfast/9383".

My question is for the openfast v3.5.x or v4.x.x, which without tight coupling, is there a iterative process between the OLAF and BeamDyn in each time step to ensure convergency?

Thank you for your attention.

winder365 avatar Nov 08 '25 16:11 winder365

Dear @winder365,

If you have enabled correction steps (NumCrctn > 0) in the OpenFAST glue code, there is will be an iteration between BeamDyn and AeroDyn every time step. But if NumCrctn = 0, then there is no iteration. There is often a balance between time step size (DT) and corrections, with a small enough time step not requiring a correction step and larger time steps possible if correction step(s) are added.

Best regards,

jjonkman avatar Nov 09 '25 15:11 jjonkman

Dear @jjonkman ,

As you mentioned above, if BeamDyn has a smaller time step than AeroDyn (including the OLAF submodel), then the outputs of AeroDyn will be interpolated to the BeamDyn time step within OpenFAST. For example there are sub-steps for BeamDyn between t_olaf_n and t_olaf_n+1, as the t_olaf n+1 is unknown at t_olaf_n + dt_beamdyn moment, so how to conduct interpolation to calculate the aerodynamic load at t_olaf_n + dt_beamdyn moment? Or does the aerodynamic load at t_olaf_n + dt_beamdyn moment is calcualted through extrapolation rather than interpolation based on the history aerodynamic load?

Thank you for your attention.

winder365 avatar Nov 10 '25 15:11 winder365

Dear @winder365,

In the current loose-coupling algorithm of OpenFAST, the aerodynamic loads are extrapolated from n (and past time steps) to n+1, which are used as input to BeamDyn to time-advance its states and calculate its outputs at n+1 (including possible subcycling of BeamDyn if BeamDyn has smaller time steps than AeroDyn). Then AeroDyn's states and outputs are time advanced to n+1 based on BeamDyn's outputs over the time from n to n+1. If NumCrctn > 0, AeroDyn's actual outputs after time advancement (as opposed to extrapolated outputs) are used to update BeamDyn's inputs at n+1. BeamDyn's states and outputs are then corrected at n+1 (interpolation of AeroDyn's outputs at n and n+1 are used if BeamDyn has smaller time steps than AeroDyn). Then AeroDyn's states and outputs are corrected at n+1 based on the corrected BeamDyn outputs. This cycle repeats for each value of NumCrctn.

I hope that helps.

Best regards,

jjonkman avatar Nov 10 '25 17:11 jjonkman