Metadata-Version: 2.4
Name: avlwrapper
Version: 0.4.2
Summary: Python interface for MIT AVL (Athena Vortex Lattice)
Home-page: https://github.com/renoelmendorp/AVLWrapper
Author: Reno Elmendorp
License: GPL-3.0-only
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: plot
Requires-Dist: numpy; extra == "plot"
Requires-Dist: matplotlib; extra == "plot"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: summary

# AVLWrapper
Python interface for MIT AVL (Athena Vortex Lattice)

## Description
Currently implemented:

* Geometry definition
* Case definition
* Mass distribution definition
* Running operating-point run cases
* Eigen-mode analysis
* Results parsing

## Installation
AVLWrapper can be installed from PyPI:
```
$ pip install avlwrapper
```

Or can be installed from Git:
```
$ pip install git+https://github.com/renoelmendorp/AVLWrapper.git@master
```

### Requirements

AVL ([link](http://web.mit.edu/drela/Public/web/avl/)) should be installed. If installed on a location in `$PATH` or in the module directory, the wrapper will locate it with the default configuration. See [Changing settings](#changing-settings) how to change the executable path to a custom location.

(optional) Ghostscript is required to convert and save plots as pdf, jpeg, or
png. Ghostscript can be installed on Linux/MacOS with a package manager:

Linux:
```
$ apt-get install ghostscript
```
MacOS:
```
$ brew install ghostscript
```

For Windows, Ghostscript can be found on the [website](https://www.ghostscript.com).

## Usage
For usage examples, see the `example.ipynb` notebook.

## Changing settings
To change settings, make a local copy of the settings file:
```python
from avlwrapper import default_config
default_config.local_copy()
```
By default the wrapper will look for a configuration file in the working directory and module directory.
If you would like to use a different configuration file, you need to give the path to the session:
```python
from avlwrapper import Configuration
my_config = Configuration(path_to_file)
session = Session(..., config=my_config)
```


## Error handling
All errors raised by the wrapper derive from `avlwrapper.AvlError`:

* `InputError`: invalid geometry, case or mass input
* `AvlExecutionError`: AVL did not produce the expected results. The AVL output is available in the `output` attribute
* `OutputError`: an AVL output file could not be parsed

## Development
# Tests
To run tests in development, first install the development requirement into your environment:
```shell
pip install -r requirements-dev.txt
```

Then, from the source directory of the repo:
```
pytest -vv tests
```
