hypysagas


Namehypysagas JSON
Version 0.15.3 PyPI version JSON
download
home_pageNone
SummaryPython Sensitivity Approximations for Geometric-Aerodynamic Surfaces
upload_time2024-10-30 04:26:42
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <a name="readme-top"></a>

<h1 align="center">PySAGAS</h1>



<p align="center">
  <a href="https://pypi.org/project/hypysagas/">
    <img src="https://img.shields.io/pypi/v/hypysagas.svg?color=blue&style=plastic" alt="Latest version" width=95 height=20>
  </a>
  
  <a href="https://github.com/psf/black">
    <img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg">
  </a>

  <a href="https://kieran-mackle.github.io/pysagas/pytest_report">
    <img src="https://github.com/kieran-mackle/pysagas/actions/workflows/tests.yml/badge.svg" alt="Test Status" >
  </a>

  <a href="https://kieran-mackle.github.io/pysagas/coverage">
    <img src="https://github.com/kieran-mackle/pysagas/raw/gh-pages/coverage.svg?raw=true" alt="Test Coverage" >
  </a>
  
</p>


<!-- start intro -->
**PySAGAS** is a Python package for the generation of **S**ensitivity **A**pproximations
for **G**eometric and **A**erodynamic **S**urface properties. It provides a 
computationally-efficient method for generating surface sensitivity approximations from 
existing flow solutions, to use in aerodynamic shape optimisation studies. The GIF below 
is an example of this, where a hypersonic waverider was optimised for maximum L/D at Mach
6.

<!-- end intro -->



![waverider-evolution-flipped](https://github.com/kieran-mackle/pysagas/assets/60687606/4c78a82c-8f20-4235-baf3-ad57bda4945d)



<!-- TABLE OF CONTENTS -->
<details>
  <summary><h2>Table of Contents</h2></summary>
  <ol>
    <li>
      <a href="#getting-started">Getting Started</a>
      <ul>
        <li><a href="#prerequisites">Prerequisites</a></li>
        <li><a href="#installation">Installation</a></li>
      </ul>
    </li>
    <li><a href="#usage">Usage</a></li>
    <li><a href="#citing-pysagas">Citing</a></li>
    <li><a href="#license">License</a></li>
  </ol>
</details>



## Getting Started
<!-- start getting started -->

### Prerequisites


#### ParaView
If you plan on using *PySAGAS* with Cart3D solutions, you should also install ParaView, or at 
least the ParaView Python bindings. If you are using an Anaconda environment, you can install 
the ParaView Python packages via
[Conda Forge](https://anaconda.org/conda-forge/paraview) using 
the command below:

```
conda install -c conda-forge paraview
```

If you already have ParaView installed, you can append the path to the binaries to the Python 
path using the snippet below.

```python
import sys
sys.path.insert(0, "/opt/ParaView-5.6.2-MPI-Linux-64bit/bin")

# Now the import should work
import paraview
```

For more information on ParaView's Python packages, see the 
[ParaView Wiki](https://www.paraview.org/Wiki/PvPython_and_PvBatch).


#### pyOptSparse

*PySAGAS* shape optimisation modules wrap around 
[pyOptSparse](https://mdolab-pyoptsparse.readthedocs-hosted.com/en/latest/index.html) to converge on optimal geometries. Follow the
[installation instructions](https://mdolab-pyoptsparse.readthedocs-hosted.com/en/latest/install.html), noting that special optimisers require custom builds.

If using an Anaconda environment, you can also install PyOptSparse from Conda forge:

```
conda install -c conda-forge pyoptsparse
```

#### PyMesh

Having [PyMesh](https://github.com/PyMesh/PyMesh) installed can greatly enhance the capabilities
offered by `PySAGAS`. However, it can be difficult to install. Troubleshooting guide coming soon.


### Installation
After installing the dependencies above, clone this repo to your machine.

```
git clone https://github.com/kieran-mackle/pysagas
```

Next, use pip to install the `pysagas` package from the repo you 
just cloned.

```
cd pysagas
python3 -m pip install .
```

<!-- end getting started -->

<p align="right">[<a href="#readme-top">back to top</a>]</p>


## Usage

<!-- start usage -->

*PySAGAS* uses low-order methods to approximate sensitivities on the surface of aerodynamic 
geometries. The user must provide a nominal condition of the flow properties on the surface, along
with the sensitivity of the geometric vertices to the design parameters. From here, one of *PySAGAS* sensitivity calculators can be used.


<!-- end usage -->

<p align="right">[<a href="#readme-top">back to top</a>]</p>



## Citing PySAGAS
If you use PySAGAS in any published work, please cite it using the BibTex reference below.

```text
@inproceedings{Mackle2024,
  author    = {Mackle, Kieran and Jahn, Ingo},
  booktitle = {AIAA Science and Technology Forum and Exposition},
  title     = {Efficient and Flexible Methodology for the Aerodynamic Shape Optimisation of Hypersonic Vehicle Concepts in a High-Dimensional Design Space},
  year      = {2024},
}
```

<p align="right">[<a href="#readme-top">back to top</a>]</p>


## License
PySAGAS is licensed under [GPLv3](COPYING).

<p align="right">[<a href="#readme-top">back to top</a>]</p>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "hypysagas",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "Kieran Mackle <kemackle98@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/b4/db/366502d0b1a2ab4d8d2a0c28c494b29ee2c0fc33abcf6c61e9d14b540a55/hypysagas-0.15.3.tar.gz",
    "platform": null,
    "description": "<a name=\"readme-top\"></a>\n\n<h1 align=\"center\">PySAGAS</h1>\n\n\n\n<p align=\"center\">\n  <a href=\"https://pypi.org/project/hypysagas/\">\n    <img src=\"https://img.shields.io/pypi/v/hypysagas.svg?color=blue&style=plastic\" alt=\"Latest version\" width=95 height=20>\n  </a>\n  \n  <a href=\"https://github.com/psf/black\">\n    <img alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\">\n  </a>\n\n  <a href=\"https://kieran-mackle.github.io/pysagas/pytest_report\">\n    <img src=\"https://github.com/kieran-mackle/pysagas/actions/workflows/tests.yml/badge.svg\" alt=\"Test Status\" >\n  </a>\n\n  <a href=\"https://kieran-mackle.github.io/pysagas/coverage\">\n    <img src=\"https://github.com/kieran-mackle/pysagas/raw/gh-pages/coverage.svg?raw=true\" alt=\"Test Coverage\" >\n  </a>\n  \n</p>\n\n\n<!-- start intro -->\n**PySAGAS** is a Python package for the generation of **S**ensitivity **A**pproximations\nfor **G**eometric and **A**erodynamic **S**urface properties. It provides a \ncomputationally-efficient method for generating surface sensitivity approximations from \nexisting flow solutions, to use in aerodynamic shape optimisation studies. The GIF below \nis an example of this, where a hypersonic waverider was optimised for maximum L/D at Mach\n6.\n\n<!-- end intro -->\n\n\n\n![waverider-evolution-flipped](https://github.com/kieran-mackle/pysagas/assets/60687606/4c78a82c-8f20-4235-baf3-ad57bda4945d)\n\n\n\n<!-- TABLE OF CONTENTS -->\n<details>\n  <summary><h2>Table of Contents</h2></summary>\n  <ol>\n    <li>\n      <a href=\"#getting-started\">Getting Started</a>\n      <ul>\n        <li><a href=\"#prerequisites\">Prerequisites</a></li>\n        <li><a href=\"#installation\">Installation</a></li>\n      </ul>\n    </li>\n    <li><a href=\"#usage\">Usage</a></li>\n    <li><a href=\"#citing-pysagas\">Citing</a></li>\n    <li><a href=\"#license\">License</a></li>\n  </ol>\n</details>\n\n\n\n## Getting Started\n<!-- start getting started -->\n\n### Prerequisites\n\n\n#### ParaView\nIf you plan on using *PySAGAS* with Cart3D solutions, you should also install ParaView, or at \nleast the ParaView Python bindings. If you are using an Anaconda environment, you can install \nthe ParaView Python packages via\n[Conda Forge](https://anaconda.org/conda-forge/paraview) using \nthe command below:\n\n```\nconda install -c conda-forge paraview\n```\n\nIf you already have ParaView installed, you can append the path to the binaries to the Python \npath using the snippet below.\n\n```python\nimport sys\nsys.path.insert(0, \"/opt/ParaView-5.6.2-MPI-Linux-64bit/bin\")\n\n# Now the import should work\nimport paraview\n```\n\nFor more information on ParaView's Python packages, see the \n[ParaView Wiki](https://www.paraview.org/Wiki/PvPython_and_PvBatch).\n\n\n#### pyOptSparse\n\n*PySAGAS* shape optimisation modules wrap around \n[pyOptSparse](https://mdolab-pyoptsparse.readthedocs-hosted.com/en/latest/index.html) to converge on optimal geometries. Follow the\n[installation instructions](https://mdolab-pyoptsparse.readthedocs-hosted.com/en/latest/install.html), noting that special optimisers require custom builds.\n\nIf using an Anaconda environment, you can also install PyOptSparse from Conda forge:\n\n```\nconda install -c conda-forge pyoptsparse\n```\n\n#### PyMesh\n\nHaving [PyMesh](https://github.com/PyMesh/PyMesh) installed can greatly enhance the capabilities\noffered by `PySAGAS`. However, it can be difficult to install. Troubleshooting guide coming soon.\n\n\n### Installation\nAfter installing the dependencies above, clone this repo to your machine.\n\n```\ngit clone https://github.com/kieran-mackle/pysagas\n```\n\nNext, use pip to install the `pysagas` package from the repo you \njust cloned.\n\n```\ncd pysagas\npython3 -m pip install .\n```\n\n<!-- end getting started -->\n\n<p align=\"right\">[<a href=\"#readme-top\">back to top</a>]</p>\n\n\n## Usage\n\n<!-- start usage -->\n\n*PySAGAS* uses low-order methods to approximate sensitivities on the surface of aerodynamic \ngeometries. The user must provide a nominal condition of the flow properties on the surface, along\nwith the sensitivity of the geometric vertices to the design parameters. From here, one of *PySAGAS* sensitivity calculators can be used.\n\n\n<!-- end usage -->\n\n<p align=\"right\">[<a href=\"#readme-top\">back to top</a>]</p>\n\n\n\n## Citing PySAGAS\nIf you use PySAGAS in any published work, please cite it using the BibTex reference below.\n\n```text\n@inproceedings{Mackle2024,\n  author    = {Mackle, Kieran and Jahn, Ingo},\n  booktitle = {AIAA Science and Technology Forum and Exposition},\n  title     = {Efficient and Flexible Methodology for the Aerodynamic Shape Optimisation of Hypersonic Vehicle Concepts in a High-Dimensional Design Space},\n  year      = {2024},\n}\n```\n\n<p align=\"right\">[<a href=\"#readme-top\">back to top</a>]</p>\n\n\n## License\nPySAGAS is licensed under [GPLv3](COPYING).\n\n<p align=\"right\">[<a href=\"#readme-top\">back to top</a>]</p>\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python Sensitivity Approximations for Geometric-Aerodynamic Surfaces",
    "version": "0.15.3",
    "project_urls": {
        "Bug Tracker": "https://github.com/kieran-mackle/pysagas/issues",
        "Homepage": "https://github.com/kieran-mackle/pysagas"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d7b16c47aed329b10fb64edd7ebd48b932afdceee04327a00ac40e05c7ec3d1f",
                "md5": "fbf00da7880d81d3e959f634d562e389",
                "sha256": "fe018eded19f9642b9b8b8d7f9bbc7e61fc6a2b14387ba92db04daa0f27fd372"
            },
            "downloads": -1,
            "filename": "hypysagas-0.15.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fbf00da7880d81d3e959f634d562e389",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 64587,
            "upload_time": "2024-10-30T04:26:40",
            "upload_time_iso_8601": "2024-10-30T04:26:40.745434Z",
            "url": "https://files.pythonhosted.org/packages/d7/b1/6c47aed329b10fb64edd7ebd48b932afdceee04327a00ac40e05c7ec3d1f/hypysagas-0.15.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b4db366502d0b1a2ab4d8d2a0c28c494b29ee2c0fc33abcf6c61e9d14b540a55",
                "md5": "65f6281b09a332456dbaafd55f25a951",
                "sha256": "5e596a1c872ce98b3ffc18a1a95f6e05ea4794a1204786b5c8e9d2305906eaf4"
            },
            "downloads": -1,
            "filename": "hypysagas-0.15.3.tar.gz",
            "has_sig": false,
            "md5_digest": "65f6281b09a332456dbaafd55f25a951",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 58560,
            "upload_time": "2024-10-30T04:26:42",
            "upload_time_iso_8601": "2024-10-30T04:26:42.184977Z",
            "url": "https://files.pythonhosted.org/packages/b4/db/366502d0b1a2ab4d8d2a0c28c494b29ee2c0fc33abcf6c61e9d14b540a55/hypysagas-0.15.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-30 04:26:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kieran-mackle",
    "github_project": "pysagas",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "hypysagas"
}
        
Elapsed time: 0.31636s