Skip to content

Commit

Permalink
Merge pull request #249 from ImperialCollegeLondon/test_merge
Browse files Browse the repository at this point in the history
New Fuselage Model plus Minor Improvements
  • Loading branch information
sduess authored Oct 11, 2023
2 parents ef679ad + f1c9f15 commit f7c5a91
Show file tree
Hide file tree
Showing 50 changed files with 2,981 additions and 884 deletions.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ vortex ring lattice with the boundary conditions enforced at the collocation poi
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)
Expand All @@ -42,7 +44,7 @@ wings and wind turbines. In addition, it supports linearisation of these nonline
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
* 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.
Expand Down
49 changes: 49 additions & 0 deletions docs/source/content/casefiles.rst
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,55 @@ Item by item:
should be included for each airfoil defined. Each entry consists of a 4-column table. The first column corresponds
to the angle of attack (in radians) and then the ``C_L``, ``C_D`` and ``C_M``.

Nonlifting Body file
-----------------

All the nonlifting body data is contained in ``case.nonlifting_body.h5``.

The idea behind the structure of the model definition of nonlifting bodies in SHARPy is similiar to the aerodynamic
one for lifting surfaces. Again for each node or element we define several parameters.

Item by item:

* ``shape``: Type of geometrical form of 3D nonlifting body.

In the ``nonlifting_body.h5`` file, there is a Group called ``shape``. The shape indicates the geometrical form of the
nonlifting body. Common options for this parameter are ``'cylindrical'`` and ``'specific'``. For the former, SHARPy
expects rotational symmetric cross-section for which only a radius is required for each node. For the ``'specific'``
option, SHARPy can create a more unique nonlifting body geometry by creating an ellipse at each fuselage defined by
:math:`\frac{y^2}{a^2}+\frac{z^2}{b^2}=1` with the given ellipse axis lengths :math:`a` and :math:`b`. Further, SHARPy
lets define the user to create a vertical offset from the node with :math:`z_0`.

* ``radius [num_node]``: Cross-sectional radius.

Is an array with the radius of specified for each fuselage node.

* ``a_ellipse [num_node]``: Elliptical axis lengths along the local y-axis.

Is an array with the length of the elliptical axis along the y-axis.

* ``b_ellipse [num_node]``: Elliptical axis lengths along the local z-axis.

Is an array with the length of the elliptical axis along the z-axis.

* ``z_0_ellipse [num_node]``: Vertical offset of the ellipse center from the beam node.

Is an array with the vertical offset of the center of the elliptical cross-sectoin from the fuselage node.

* ``surface_m [num_surfaces]``: Radial panelling.

Is an integer array with the number of radial panels for every surface.

* ``nonlifting_body_node [num_node]``: Nonlifting body node definition.

Is a boolean (``True`` or ``False``) array that indicates if that node has a nonlifting body
attached to it.

* ``surface_distribution [num_elem]``: Nonlifting Surface integer array.

It contains the index of the surface the element belongs to. Surfaces need to be continuous, so please note
that if your beam numbering is not continuous, you need to make a surface per continuous section.


Time-varying force input file (``.dyn.h5``)
-------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion docs/source/content/example_notebooks/wind_turbine.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1010,7 +1010,7 @@
" inode_in_elem = sharpy_output.structure.node_master_elem[node_global_index, 1]\n",
" CAB = algebra.crv2rotation(tstep.psi[ielem, inode_in_elem, :])\n",
"\n",
" c[iblade][inode] = sharpy_output.aero.aero_dict['chord'][ielem,inode_in_elem]\n",
" c[iblade][inode] = sharpy_output.aero.data_dict['chord'][ielem,inode_in_elem]\n",
"\n",
" forces_AFoR = np.dot(CAB, forces[iblade][inode, 0:3])\n",
"\n",
Expand Down
2 changes: 1 addition & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ SHARPy is an aeroelastic analysis package currently under development at the Dep
Imperial College London. It can be used for the structural, aerodynamic, aeroelastic and flight dynamics
analysis of flexible aircraft, flying wings and wind turbines. Amongst other capabilities_, it offers the following solutions to the user:

* Static aerodynamic, structural and aeroelastic solutions
* 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:

Expand Down
Loading

0 comments on commit f7c5a91

Please sign in to comment.