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

New Fuselage Model plus Minor Improvements #249

Merged
merged 225 commits into from Oct 11, 2023
Merged

New Fuselage Model plus Minor Improvements #249

merged 225 commits into from Oct 11, 2023

Conversation

sduess
Copy link
Collaborator

@sduess sduess commented Aug 16, 2023

Dear team,

As promised, this is the big pull request mainly including methods to model nonlifting bodies such as fuselages with SHARPy.

Nonlifting Body Model Capabilities
The main changes are in the UVLM:

  1. Adding Source Panel Method (SPM) to the aerodynamic code
  2. Coupling of the UVLM with the Source Panel Method to allow computations of fuselage-wing configurations and introduction of phantom panels for junction modelling.
  3. I introduced structs in the aerodynamic code (see struct_utils.h) to avoid page-long function inputs, it has also increased the speed of the code.
    In SHARPy directly, the following c
  4. Classes for the nonlifting body grid, its loader, and data structure (similar to lifting surfaces) have been added. I have used parent classes as all classes for lifting and nonlifting surfaces share many similarities.
  5. The SHARPy-UVLM interface as well as the solvers have been extended to be able to start solely nonlifting body computations but also steady and unsteady coupled simulations for example fuselage-wing simulations.
  6. Postprocessors (most importantly AeroforcesCalculator and AerogridPlot) have been extended as well.
  7. Fuselage-wing template model has been added.

Unittest
Unittest is successfully running and the following tests have been added to check the new capabilities:

  • Test for uncoupled SPM
  • Test for SPM coupled with UVLM.
  • Test for phantom panel methods.

Further all dynamic unittests have been speed up for quicker checks using coarser discretisation, and smaller fsi tolerances and substeps.

Documentation
Besides the usual documentation of code, the SHARPy docs and Readme have been updated. For the UVLM, a code documentation has been started that covers 80 % of the code for now.

Additional Notes
This branch has been successfully used to create plots for one of my journal papers as documented in this repository of mine https://github.com/sduess/Enhanced_UVLM_nonlinear_aeroelastic.

sduess and others added 30 commits November 19, 2020 08:26
- test case for new feature which allows SHARPy to consider fuselage effects
- includes input parameters and function to generate structural and aerodynamic input files
- solver setup is still missing
- stores input parameter for later grid generation in h5 file
- input radius for each specific beam node is generated automatically
- aerodynamic boundary conditions for fuselage wing junctions are stored in h5 aero file for later use in SHARPy
- settings are copied and pasted from simple HALE case for the beginning
- remove library as it is unused and might cause problems with Travis
- nonlifting_body_grid contains similiar to Aerogrid all  information of the grid of panels but for nonlifting bodies/surfaces instead of lifting surfaces
- grid class serves as a parent class from which nonlifting_body_grid is inheritated from, and later also Aerogrid
- NonliftingBodyTimeStepInfo is similar to AeroTimestepInfo but contains the relevant aerodynamic attributes for a single time step for nonlifting bodies instead of nonlifting surfaces
- Its parent class TimeStepInfo will later also be used as a parent class for AeroTimeStepInfo
- functionality of class remains unchanged
- functionality of Aerogrid class remains unchanged
- rename attributes for proper inheritance
- Nodes position are first calculate in B frame and are then converted to the A frame
- add necessary and delete unnecessary imported packages
- Gridloader acts as a parent class for nonliftingbodygridloader class
- Nonliftingbodygridloader generates aerodynamic grid for nonlifitng bodies similiar to aerogrid
- allows to simplify AerogridTimeStepInfo as a side effect since the array dimensions align with NonliftingBodyTimeStepInfo now
- Delete functions that are no longer needed since zeta contains only grid nodes instead of collocation points
- new function starts different UVLM function to calculate nonlifting bodies
- does not save the timestep infos
- also removed unused attribute ts_max
- fetch error in git pull request build test
- I am trying to update it top the latest version in the next commit, but for now I need to revert to an older one!
- back to the latest version, I hope it works.
- inputs needed to be added in the listed solvers to avoid bugs during unittesting
- these inputs have been adjusted to the other solvers
- adjusted to equations in a document
- must have been removed during a merge process as it is included in the current SHARPy version
- also includes adjustments made in uvlmlib after renaming some interface functions
- improve flight condition definitions
- remove unncessary comments
- copy and paste went horribly wrong before
- unittests are running for these cases again
- achieved by coarser discretisation, lower fsi tolerances and steps
only_lifting instead of lifting_only
@sduess sduess marked this pull request as ready for review September 20, 2023 10:47
@sduess sduess merged commit f7c5a91 into develop Oct 11, 2023
4 checks passed
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.

None yet

4 participants