# Simulation of High Aspect Ratio aeroplanes in Python [SHARPy]
![Version badge](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fraw.githubusercontent.com%2FImperialCollegeLondon%2Fsharpy%2Fmain%2F.version.json)
![Build Status](https://github.com/ImperialCollegeLondon/sharpy/actions/workflows/sharpy_tests.yaml/badge.svg)
[![Documentation Status](https://readthedocs.org/projects/ic-sharpy/badge/?version=main)](https://ic-sharpy.readthedocs.io/en/main/?badge=main)
[![codecov](https://codecov.io/gh/ImperialCollegeLondon/sharpy/branch/main/graph/badge.svg)](https://codecov.io/gh/ImperialCollegeLondon/sharpy)
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
[![status](https://joss.theoj.org/papers/f7ccd562160f1a54f64a81e90f5d9af9/status.svg)](https://joss.theoj.org/papers/f7ccd562160f1a54f64a81e90f5d9af9)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3531965.svg)](https://doi.org/10.5281/zenodo.3531965)
SHARPy is a nonlinear aeroelastic analysis package originally developed at the Department of Aeronautics, Imperial
College London. It can be used for the structural, aerodynamic and aeroelastic analysis of flexible wings, aircraft and wind turbines. It is shared here under a BSD 3-Clause permissive license.
![XHALE](./docs/source/_static/XHALE-render.jpg)
### Contact
For more information on the [research team](http://www.imperial.ac.uk/aeroelastics/software/) developing SHARPy or to get
in touch, [visit our homepage](http://www.imperial.ac.uk/aeroelastics).
## Physical Models
SHARPy is a modular aeroelastic solver that currently uses two specific models for the structural and aerodynamic response of the system.
For the structural model, SHARPy employs a geometrically-exact displacement-based composite beam formulation,
augmented with Lagrange multipliers for additional kinematic constraints.
This model has the advantage of providing the solution directly in the physical problem's degrees of freedom, making the
coupling with the aerodynamic solver simple and not requiring any post-processing. The 1D beam formulation used limits
the analyses that can be done by SHARPy to slender structures, such as high aspect ratio wings.
The aerodynamic model utilises the Unsteady Vortex Lattice Method (UVLM). The aerodynamic surfaces are modelled as a thin
vortex ring lattice with the boundary conditions enforced at the collocation points in the middle of the vortex rings.
The Kutta condition is also enforced at the trailing edge. The wake can be simulated by either additional vortex rings
or by infinitely long horseshoe vortices, which are ideally suited for steady simulations only.
The aerodynamic model has recently been extended by a linear source panel method (SPM) to model nonlifting bodies for example fuselages. The SPM and UVLM can be coupled to model fuselage-wing configuration and a junction handling approach, based on phantom panels and circulation interpolation, has been added.
The input problems can be structural, aerodynamic or coupled, yielding an aeroelastic system.
## [Capabilities](http://ic-sharpy.readthedocs.io/en/latest/content/capabilities.html)
The base solver SHARPy is a nonlinear aeroelastic analysis package that can be used on free-flying flexible aircraft,
wings and wind turbines. In addition, it supports linearisation of these nonlinear systems about
arbitrary conditions and includes various tools such as: model reduction or frequency analysis.
In short, SHARPy offers (amongst others) the following solutions to the user:
* Static aerodynamic, structural and aeroelastic solutions including fuselage effects
* Finding trim conditions for aeroelastic configurations
* Nonlinear, dynamic time domain simulations under a large number of conditions such as:
+ Prescribed trajectories.
+ Free flight.
+ Dynamic follower forces.
+ Control inputs in thrust, control surface deflection...
+ Arbitrary time-domain gusts, including non span-constant ones.
+ Full 3D turbulent fields.
* Multibody dynamics with hinges, articulations and prescribed nodal motions:
+ Applicable to wind turbines.
+ Hinged aircraft.
+ Catapult assisted takeoffs.
* Linear analysis:
+ Linearisation around a nonlinear equilibrium.
+ Frequency response analysis.
+ Asymptotic stability analysis.
* Model order reduction:
+ Krylov-subspace reduction methods.
+ Several balancing reduction methods.
## Documentation
The documentation for SHARPy can be found [here](http://ic-sharpy.readthedocs.io).
## Installing SHARPy
For the latest documentation, see the
[installation docs](https://ic-sharpy.readthedocs.io/en/latest/content/installation.html).
SHARPy can also be obtained from Docker Hub to avoid compilation
and platform-dependant issues. If you are interested, make sure you check
the [SHARPy Docker distribution docs](https://ic-sharpy.readthedocs.io/en/latest/content/installation.html#using-sharpy-from-a-docker-container).
## Contributing and Bug reports
If you think you can add a useful feature to SHARPy, want to write documentation or you encounter a bug, by all means,
check out the [collaboration guide](https://ic-sharpy.readthedocs.io/en/latest/content/contributing.html).
## Citing SHARPy
SHARPy has been published in the Journal of Open Source Software (JOSS) and the relevant paper can be found
[here](https://joss.theoj.org/papers/10.21105/joss.01885).
If you are using SHARPy for your work, please remember to cite it using the paper in JOSS as:
`del Carre et al., (2019). SHARPy: A dynamic aeroelastic simulation toolbox for very flexible aircraft and wind
turbines. Journal of Open Source Software, 4(44), 1885, https://doi.org/10.21105/joss.01885`
The bibtex entry for this citation is:
```
@Article{delCarre2019,
doi = {10.21105/joss.01885},
url = {https://doi.org/10.21105/joss.01885},
year = {2019},
month = dec,
publisher = {The Open Journal},
volume = {4},
number = {44},
pages = {1885},
author = {Alfonso del Carre and Arturo Mu{\~{n}}oz-Sim\'on and Norberto Goizueta and Rafael Palacios},
title = {{SHARPy}: A dynamic aeroelastic simulation toolbox for very flexible aircraft and wind turbines},
journal = {Journal of Open Source Software}
}
```
## Continuous Integration Status
SHARPy uses Continuous Integration to control the integrity of its code. The status in the release and develop branches
is:
Main
![Build Status](https://github.com/ImperialCollegeLondon/sharpy/actions/workflows/sharpy_tests.yaml/badge.svg)
![Docker Status](https://github.com/ImperialCollegeLondon/sharpy/actions/workflows/docker_build.yaml/badge.svg)
Develop
![Build Status](https://github.com/ImperialCollegeLondon/sharpy/actions/workflows/sharpy_tests.yaml/badge.svg?branch=develop)
Raw data
{
"_id": null,
"home_page": "https://github.com/ImperialCollegeLondon/sharpy",
"name": "icl-sharpy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "nonlinear aeroelastic structural aerodynamic analysis",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/bc/48/54f9362c9f6683a783c47665cd0a6efefbf1f9c9040a860eae818570c233/icl_sharpy-2.3.tar.gz",
"platform": null,
"description": "# Simulation of High Aspect Ratio aeroplanes in Python [SHARPy]\n\n![Version badge](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fraw.githubusercontent.com%2FImperialCollegeLondon%2Fsharpy%2Fmain%2F.version.json)\n![Build Status](https://github.com/ImperialCollegeLondon/sharpy/actions/workflows/sharpy_tests.yaml/badge.svg)\n[![Documentation Status](https://readthedocs.org/projects/ic-sharpy/badge/?version=main)](https://ic-sharpy.readthedocs.io/en/main/?badge=main)\n[![codecov](https://codecov.io/gh/ImperialCollegeLondon/sharpy/branch/main/graph/badge.svg)](https://codecov.io/gh/ImperialCollegeLondon/sharpy)\n[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![status](https://joss.theoj.org/papers/f7ccd562160f1a54f64a81e90f5d9af9/status.svg)](https://joss.theoj.org/papers/f7ccd562160f1a54f64a81e90f5d9af9)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3531965.svg)](https://doi.org/10.5281/zenodo.3531965)\n\nSHARPy is a nonlinear aeroelastic analysis package originally developed at the Department of Aeronautics, Imperial\nCollege London. It can be used for the structural, aerodynamic and aeroelastic analysis of flexible wings, aircraft and wind turbines. It is shared here under a BSD 3-Clause permissive license.\n\n![XHALE](./docs/source/_static/XHALE-render.jpg)\n\n### Contact\n\nFor more information on the [research team](http://www.imperial.ac.uk/aeroelastics/software/) developing SHARPy or to get \nin touch, [visit our homepage](http://www.imperial.ac.uk/aeroelastics).\n\n## Physical Models\n\nSHARPy is a modular aeroelastic solver that currently uses two specific models for the structural and aerodynamic response of the system.\n\nFor the structural model, SHARPy employs a geometrically-exact displacement-based composite beam formulation,\naugmented with Lagrange multipliers for additional kinematic constraints.\nThis model has the advantage of providing the solution directly in the physical problem's degrees of freedom, making the \ncoupling with the aerodynamic solver simple and not requiring any post-processing. The 1D beam formulation used limits \nthe analyses that can be done by SHARPy to slender structures, such as high aspect ratio wings.\n\nThe aerodynamic model utilises the Unsteady Vortex Lattice Method (UVLM). The aerodynamic surfaces are modelled as a thin\nvortex ring lattice with the boundary conditions enforced at the collocation points in the middle of the vortex rings.\nThe Kutta condition is also enforced at the trailing edge. The wake can be simulated by either additional vortex rings\nor by infinitely long horseshoe vortices, which are ideally suited for steady simulations only.\n\nThe aerodynamic model has recently been extended by a linear source panel method (SPM) to model nonlifting bodies for example fuselages. The SPM and UVLM can be coupled to model fuselage-wing configuration and a junction handling approach, based on phantom panels and circulation interpolation, has been added.\n\nThe input problems can be structural, aerodynamic or coupled, yielding an aeroelastic system.\n\n## [Capabilities](http://ic-sharpy.readthedocs.io/en/latest/content/capabilities.html)\n\nThe base solver SHARPy is a nonlinear aeroelastic analysis package that can be used on free-flying flexible aircraft,\nwings and wind turbines. In addition, it supports linearisation of these nonlinear systems about\narbitrary conditions and includes various tools such as: model reduction or frequency analysis.\n\nIn short, SHARPy offers (amongst others) the following solutions to the user:\n* Static aerodynamic, structural and aeroelastic solutions including fuselage effects\n* Finding trim conditions for aeroelastic configurations\n* Nonlinear, dynamic time domain simulations under a large number of conditions such as:\n + Prescribed trajectories.\n + Free flight.\n + Dynamic follower forces.\n + Control inputs in thrust, control surface deflection...\n + Arbitrary time-domain gusts, including non span-constant ones.\n + Full 3D turbulent fields.\n* Multibody dynamics with hinges, articulations and prescribed nodal motions:\n + Applicable to wind turbines.\n + Hinged aircraft.\n + Catapult assisted takeoffs.\n* Linear analysis:\n + Linearisation around a nonlinear equilibrium.\n + Frequency response analysis.\n + Asymptotic stability analysis.\n* Model order reduction:\n + Krylov-subspace reduction methods.\n + Several balancing reduction methods.\n\n## Documentation\n\nThe documentation for SHARPy can be found [here](http://ic-sharpy.readthedocs.io).\n\n## Installing SHARPy\n\nFor the latest documentation, see the \n[installation docs](https://ic-sharpy.readthedocs.io/en/latest/content/installation.html).\n\nSHARPy can also be obtained from Docker Hub to avoid compilation\nand platform-dependant issues. If you are interested, make sure you check \nthe [SHARPy Docker distribution docs](https://ic-sharpy.readthedocs.io/en/latest/content/installation.html#using-sharpy-from-a-docker-container).\n\n## Contributing and Bug reports\n\nIf you think you can add a useful feature to SHARPy, want to write documentation or you encounter a bug, by all means, \ncheck out the [collaboration guide](https://ic-sharpy.readthedocs.io/en/latest/content/contributing.html).\n\n## Citing SHARPy\n\nSHARPy has been published in the Journal of Open Source Software (JOSS) and the relevant paper can be found\n[here](https://joss.theoj.org/papers/10.21105/joss.01885).\n\nIf you are using SHARPy for your work, please remember to cite it using the paper in JOSS as:\n\n`del Carre et al., (2019). SHARPy: A dynamic aeroelastic simulation toolbox for very flexible aircraft and wind\nturbines. Journal of Open Source Software, 4(44), 1885, https://doi.org/10.21105/joss.01885`\n\nThe bibtex entry for this citation is:\n\n```\n@Article{delCarre2019,\ndoi = {10.21105/joss.01885},\nurl = {https://doi.org/10.21105/joss.01885},\nyear = {2019},\nmonth = dec,\npublisher = {The Open Journal},\nvolume = {4},\nnumber = {44},\npages = {1885},\nauthor = {Alfonso del Carre and Arturo Mu{\\~{n}}oz-Sim\\'on and Norberto Goizueta and Rafael Palacios},\ntitle = {{SHARPy}: A dynamic aeroelastic simulation toolbox for very flexible aircraft and wind turbines},\njournal = {Journal of Open Source Software}\n}\n```\n\n\n## Continuous Integration Status\n\nSHARPy uses Continuous Integration to control the integrity of its code. The status in the release and develop branches\nis:\n\nMain\n![Build Status](https://github.com/ImperialCollegeLondon/sharpy/actions/workflows/sharpy_tests.yaml/badge.svg)\n![Docker Status](https://github.com/ImperialCollegeLondon/sharpy/actions/workflows/docker_build.yaml/badge.svg)\n\nDevelop\n![Build Status](https://github.com/ImperialCollegeLondon/sharpy/actions/workflows/sharpy_tests.yaml/badge.svg?branch=develop)\n",
"bugtrack_url": null,
"license": "BSD 3-Clause License",
"summary": "SHARPy is a nonlinear aeroelastic analysis package developed",
"version": "2.3",
"project_urls": {
"Homepage": "https://github.com/ImperialCollegeLondon/sharpy"
},
"split_keywords": [
"nonlinear",
"aeroelastic",
"structural",
"aerodynamic",
"analysis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bc4854f9362c9f6683a783c47665cd0a6efefbf1f9c9040a860eae818570c233",
"md5": "186b8ddb08593674e11d938e908a863a",
"sha256": "42c8d842b06cf6cb7fd6fe705f8933e0e9e1b6b3eb06eef84760b32e4578b83f"
},
"downloads": -1,
"filename": "icl_sharpy-2.3.tar.gz",
"has_sig": false,
"md5_digest": "186b8ddb08593674e11d938e908a863a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 525684,
"upload_time": "2024-08-28T17:46:16",
"upload_time_iso_8601": "2024-08-28T17:46:16.637636Z",
"url": "https://files.pythonhosted.org/packages/bc/48/54f9362c9f6683a783c47665cd0a6efefbf1f9c9040a860eae818570c233/icl_sharpy-2.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-28 17:46:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ImperialCollegeLondon",
"github_project": "sharpy",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "icl-sharpy"
}