Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature actuatordisk bem #2142

Merged
merged 49 commits into from
Nov 9, 2023
Merged

Conversation

josy-nal
Copy link
Contributor

@josy-nal josy-nal commented Sep 29, 2023

Feature: Blade element momentum (BEM) method for variable load actuator disk modelling of propellers.

Proposed Changes

The present work is on modifications to the actuator disk model. Variable load actuator disk (VLAD) [Saetta, 2020] uses the given blade loading (which is fixed for the entire duration of the simulation) to impose axial and tangential jumps at the interface.

Propeller loading depends on many different parameters and is affected by the surrounding structures and angle of attack (AoA). A method that updates the blade loading at run time is required to take care of the interactions and installation effects.

In the present approach, the Blade Element Method (BEM) is used to calculate the pressure jump and swirl distributions across the propeller disc and is coupled to the SU2 solver. The blade loading and changes to the flow-field are calculated recursively. Propeller geometry details, airfoil characteristics, propeller speed and set blade angle are required as inputs. Using the thrust and power along the blade from BEM, and following the procedure of VLAD, axial and tangential velocities are imposed at the interface. BEM method is verified against the experimental results [Veldhuis, 2005] and found to be performing well.

Related Work

This work was presented at
SU2 Conference 2022, 5--7 Sept 2022,
Propeller blade load calculation for actuator disk using blade element method.
https://www.youtube.com/watch?v=otM_Lz2MV4U

and published in
International Journal of Aeronautical and Space Sciences
https://doi.org/10.1007/s42405-023-00593-5

The grid file for the test case is in the new branch on the fork at
https://github.com/josy-nal/su2codeTestCases/tree/feature-actuatordisk-bem

This implementation is under active development seeking reviews, instructions and suggestions to meet SU2 code standards.

References:

Saetta E, Russo L, Tgnaccini R (2020)
Implementation and validation of a new actuator disk model in SU2.
SU2 conference 2020, virtual event.

Veldhuis L (2005) Propeller-wing aerodynamic interface,
Ph.D. thesis, Delft University of Technology, Delft, Netherlands

PR Checklist

  • I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with --warnlevel=3 when using meson).
  • My contribution is commented and consistent with SU2 style (https://su2code.github.io/docs_v7/Style-Guide/).
  • I used the pre-commit hook to prevent dirty commits and used pre-commit run --all to format old commits.
  • I have added a test case that demonstrates my contribution, if necessary.
  • I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp), if necessary.

Common/include/option_structure.inl Fixed Show fixed Hide fixed
Common/include/option_structure.inl Fixed Show fixed Hide fixed
SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
Common/src/CConfig.cpp Outdated Show resolved Hide resolved
Common/include/option_structure.inl Outdated Show resolved Hide resolved
SU2_CFD/include/solvers/CEulerSolver.hpp Outdated Show resolved Hide resolved
SU2_CFD/include/solvers/CEulerSolver.hpp Outdated Show resolved Hide resolved
TestCases/rans/actuatordisk_bem/actuatordisk_bem.cfg Outdated Show resolved Hide resolved
SU2_CFD/src/solvers/CEulerSolver.cpp Outdated Show resolved Hide resolved
SU2_CFD/include/solvers/prop_defs.hpp Outdated Show resolved Hide resolved
SU2_CFD/include/solvers/prop_defs.hpp Outdated Show resolved Hide resolved
SU2_CFD/include/solvers/prop_defs.hpp Outdated Show resolved Hide resolved
SU2_CFD/src/solvers/CEulerSolver.cpp Outdated Show resolved Hide resolved
@josy-nal
Copy link
Contributor Author

josy-nal commented Oct 3, 2023

@pcarruscag Thank you very much for all the review comments. Will get back to you once resolved.

@pcarruscag
Copy link
Member

Thanks, there is another example of reading files with a similar format here CFEASolver::Set_ElementProperties

Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeQL found more than 10 potential problems in the proposed changes. Check the Files changed tab for more details.

SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
SU2_CFD/src/solvers/CEulerSolver.cpp Fixed Show fixed Hide fixed
@josy-nal
Copy link
Contributor Author

josy-nal commented Nov 5, 2023

@pcarruscag Based on your 2nd review we have updated the code according to your suggestions.

It was not clear how to restore the accidental changes to the sha versions of submodules externals/codi/ and subprojects/CoolProp/. Please instruct us howto or override yourselves for the same if possible.

Request you to please review and instruct for proceeding further.
Thank you very much.

@pcarruscag
Copy link
Member

Try the following:
git checkout -- . (this removes any uncommitted changes so please check if you have anything you want to keep)
git checkout develop (assuming this checks out from su2code instead of your fork)
git pull
git submodule update externals/CoDi (repeat for all submodules that show changes here on github)
git check "this branch"
git commit -a (this will commit the submodules updated above)
git push

If this doesn't work, while on this branch do:
cd externals/CoDi
git checkout "sha from develop" (you can copy from init submodules python script)
cd ../../
git commit -a
git push

Copy link
Member

@pcarruscag pcarruscag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, if the lift and drag under regression are representative of the "converged" case maybe it's fine.

@josy-nal
Copy link
Contributor Author

josy-nal commented Nov 9, 2023

Thank you very much for the approval.

@josy-nal
Copy link
Contributor Author

josy-nal commented Nov 9, 2023

Request you to please confirm that the "2 failing checks" (regression tests) are unrelated to this pull request.

The failing checks were for
"TestCases/fea_fsi/Airfoil_RBF" and "TestCases/py_wrapper/disc_adj_fea/flow_load_sens"

Hope we do not have to do anything here in this branch. Thanks.

@pcarruscag pcarruscag merged commit b602673 into su2code:develop Nov 9, 2023
28 of 30 checks passed
@pcarruscag
Copy link
Member

That issue appeared in other branches recently too, maybe something was updated in the test environment.

@josy-nal
Copy link
Contributor Author

josy-nal commented Nov 9, 2023

Thank you very much for all the suggestions and support.

@pcarruscag
Copy link
Member

Thank you for contributing to SU2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants