Skip to content

Commit

Permalink
Merge pull request #16 from ACea15/master
Browse files Browse the repository at this point in the history
apply changes from main branch
  • Loading branch information
JcMjne-edu authored Dec 5, 2024
2 parents 6c7eeb2 + cbe58b0 commit fef1882
Show file tree
Hide file tree
Showing 93 changed files with 2,867 additions and 1,044 deletions.
58 changes: 38 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
# Finite Element models 4 Intrinsic Nonlinear Aeroelastics in JAX [FENIAX]
# Finite Element models 4 Nonlinear Intrinsic Aeroelastics in JAX [FENIAX]

FENIAX is an aeroelastic toolbox written and parallelized in Python, which acts as a post-processor of commercial software such as MSC Nastran.
Arbitrary FE models built for linear aeroelastic analysis are enhanced with geometric nonlinear effects, flight dynamics and linearized state-space solutions about nonlinear equilibrium.
Some of the key features of the software are:
- Leveraging on the numerical library JAX and optimised algorithms, a high performance is achieved that leads to simulation times comparable to the linear counterparts on conventional platforms.
- The software runs on modern hardware architectures such as GPUs in a addition to standard CPUs.
- Algorithm differentiation (AD) of the aeroelastic response is available via JAX primitives.
- Concurrent simulations for multiple load cases are being developed.

## Installation

Expand All @@ -17,30 +22,56 @@ pip install .
pip install -e .[all]
```

- see setup.py file for the options available. Python 3.9+ is required but 3.11+ is recommended.
- see pyproject.toml file for the options available. Python 3.10+ is required.

- To install with GPU support install jax first:
```
pip install -U "jax[cuda12]"
pip install -e ".[all]"
```


### Python environment
Although it is not necessary, it is recommended that the software is installed in its own environment. Options that have been tested out follow.

- _Conda_:

Although it is not necessary, If conda is being used as package manager, one can make a specific environment as,

```
conda create -n feniax python=3.11
conda activate fem4inas
conda activate feniax
```

- If pytest has been installed, check everything is OK by running the tests:
If pytest has been installed, check everything is OK by running the tests:

```
pytest tests
pytest
```

- Thus a typical installation would comprise of these 4 steps:
```
conda create -n feniax.python=3.11
conda activate fem4inas
conda activate feniax
pip install -e .[all]
pytest tests
pytest
```

- _pyenv_: Navigate to the root directory and run the following:

```
pyenv install 3.11.10
pyenv virtualenv 3.11.10 feniax
pyenv local feniax
pip install -e .[all]
pytest
```
By setting pyenv local to feniax, every time one moves to feniax directory the environment is automatically activated


## Documentation
Available at https://acea15.github.io/FENIAX/

## Simulation Examples

The most relevant examples in the code base are shown here, these and more can be found in the folder `/examples`
Expand Down Expand Up @@ -77,17 +108,4 @@ They are also part of a large test suite that is integrated into the development
#### 3D dynamics
![Free flying structure 3D](./docs/media/SimoFFB3D_optimized.gif)

### Industrial Aircraft model
!!! success
Linear response validated with MSC Nastran linear aeroelastic solution (sol 146)

#### Gust clamped model

[Notebook](./docs/documentation/examples/XRF1/xrf1_nb.md)


![XRF1-gustclamped](./docs/media/xrf1_gust_optimized.gif)


#### Gust trimmed flight
![XRF1-Trim+gust](./docs/media/xrf1_trimgust_optimized.gif)
Binary file added docs/reports/scitech25/figs_ext/BUGmodel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/reports/scitech25/figs_ext/BUGmodel2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/reports/scitech25/figs_ext/DiscreteL0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/reports/scitech25/figs_ext/DiscreteL2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/reports/scitech25/figs_ext/DiscreteL4.pdf
Binary file not shown.
Binary file added docs/reports/scitech25/figs_ext/MC1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/reports/scitech25/figs_ext/bug_gust3d.pdf
Binary file not shown.
Binary file added docs/reports/scitech25/figs_ext/bug_model2.pdf
Binary file not shown.
Binary file added docs/reports/scitech25/figs_ext/bug_model3.pdf
Binary file not shown.
Binary file added docs/reports/scitech25/figs_ext/bug_model7.pdf
Binary file not shown.
Binary file added docs/reports/scitech25/figs_ext/monoeuvre3D.pdf
Binary file not shown.
499 changes: 286 additions & 213 deletions docs/reports/scitech25/main.org

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docs/schemas/draft1.org
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#+TITLE: FENIAX.initial architecture
#+TITLE: FENIAX architecture
#+AUTHOR: Alvaro Cea
#+Date: 6/06/2023
#+STARTUP: inlineimages
Expand All @@ -7,7 +7,7 @@
(setq org-image-actual-width nil)
(setq org-confirm-babel-evaluate nil)
(require 'org-tempo)
(pyvenv-workon "feniax.)
(pyvenv-workon "feniax")

#+end_src

Expand Down
Loading

0 comments on commit fef1882

Please sign in to comment.