OpenFAST / openfast

Main repository for the NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes.
http://openfast.readthedocs.io
Apache License 2.0
695 stars 459 forks source link

AD bugfix: Segmentation fault with ifx #2516

Closed andrew-platt closed 1 week ago

andrew-platt commented 1 week ago

Ready to merge, unless someone has a more elegant solution

Feature or improvement description When OLAF was used with the AeroDyn Driver compiled with ifx (IFX) 2023.2.0 20230622 (release only), there would be a segmentation fault when SetInputsForFVW was called. The root issue was that passing an array of u as (/u/) doesn't work correctly with this compiler. So to work around this, the SetInputsForFVW routine was reworked to only operate on a single u.

In my opinion this is a hack of a solution to accomodate a compiler bug.

Related issue, if one exists none

Impacted areas of the software AeroDyn driver, only when compiled with ifx

Additional supporting information

Test results, if applicable This would trigger a segmentation fault in the ad_HelicalWakeInf_OLAF in 3.5.5 with ifx (IFX) 2023.2.0 20230622 in release.

deslaughter commented 1 week ago

I think it’s actually a good fix as that syntax was dynamically creating an array and copying u into it at every call, which is probably why it caused a segfault. If something in u can’t be directly copied, then it could be doing anything.

On Thu, Nov 14, 2024 at 6:59 PM Andy Platt @.***> wrote:

@andrew-platt https://github.com/andrew-platt requested your review on:

2516 https://github.com/OpenFAST/openfast/pull/2516 AD bugfix:

Segmentation fault with ifx.

— Reply to this email directly, view it on GitHub https://github.com/OpenFAST/openfast/pull/2516#event-15305662314, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABCSATLNXYIODPCQCTQLSCL2AU2OXAVCNFSM6AAAAABR2BOZECVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJVGMYDKNRWGIZTCNA . You are receiving this because your review was requested.Message ID: @.***>

andrew-platt commented 1 week ago

That's probably the issue: something in u couldn't be copied directly.