aircraft-design


Nameaircraft-design JSON
Version 0.0.17 PyPI version JSON
download
home_pagehttps://pypi.org/project/aircraft-design/
SummaryCondensed module for Aircraft Design
upload_time2023-09-19 16:01:16
maintainerIrisson Lima
docs_urlNone
authorNisus Aerodesign
requires_python>=3.9,<3.12
licenseMIT
keywords aircraft design vlm vortex lattice
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # aircraft_design
Para instalar a biblioteca oficialmente, você pode usar o gerenciador de pacotes pip.
A seguinte linha de comando pode ser executada no terminal ou prompt de comando:
```bash
pip install aircraft-design
```
Assim, a biblioteca será baixada e instalada em seu ambiente de desenvolvimento Python. Também é possível instalar a versão mais recente diretamente do repositório GitHub, executando o comando:
```bash
pip install git+https://github.com/NisusAerodesign/aircraft-design.git
```
Feito isso, já é possível importar e utilizar a biblioteca nas suas aplicações.

## 0.1. Como instalar
Para instalar basta acessar pelo repositório da própria pipy[*](https://pypi.org/project/aircraft-design) e já estará pronto para uso.
### Projeto de Design de Aeronaves NISUS-aerodesign

O projeto aircraft-design é um esforço desenvolvido por membros da equipe de competição **NISUS-aerodesign** com o objetivo de facilitar a análise de aeronaves. A equipe utiliza a ferramenta Vortex Lattice (ou malha de vórtices, em tradução livre), desenvolvida pelo MIT[*](https://web.mit.edu/drela/Public/web/avl/), para conduzir essas análises. 

A ferramenta Vortex Lattice permite que a equipe tenha uma visão detalhada das propriedades aerodinâmicas da aeronave, como por exemplo, a geração de sustentação, arrasto e forças de inclinação. Isso permite que a equipe faça melhorias no design da aeronave, tornando-a mais eficiente e segura para voo.

[Repositório GitHub](https://github.com/NisusAerodesign/aircraft-design)
# 1. aircraft_design.Wing

A classe Wing (Asa) é responsável por criar superfícies aerodinâmicas, como asas e estabilizadores. Ela possui diversos parâmetros que podem ser ajustados para atender às necessidades específicas de cada projeto.

A tabela abaixo apresenta cada um dos parâmetros da classe Wing, incluindo seu tipo de dado, valor padrão e se é obrigatório ou não:

| Parâmetro       | Tipo de dado | Valor Padrão   |
|:---------------:|:-----------:|:-------------:|
| airfoil         | Path        | **Obrigatório** |
| wingspan        | float       | **Obrigatório** |
| mean_chord      | float       | **Obrigatório** |
| taper_ratio     | float       |            1.0 |
| transition_point| float       |            0.0 |
| alpha_angle     | float       |            0.0 |
| sweep_angle     | float       |            0.0 |
| x_position      | float       |            0.0 |
| y_position      | float       |            0.0 |
| z_position      | float       |            0.0 |
| align           | str         |           'LE' |
| name            | str         |         'wing' |
| control         | list        |         [None] |
| panel_chordwise |int          |             10 |
| panel_spanwise  |int          |             25 |

Além disso, a classe Wing possui métodos *Getters* e *Setters* para todos os seus elementos, permitindo a manipulação de seus parâmetros de forma fácil e precisa. Também podemos encontrar outros métodos importantes, como `Wing().surface -> avl.Surface` e `Wing().reference_area() -> float`, que fornecem informações valiosas sobre a superfície da asa e sua área de referência.


## 1.1. Ferramenta de plotagem

A biblioteca possui uma ferramenta de plotagem para melhor visualização da aeronave construída. Para utilizá-la, basta invocar o método plot() nas classes Wing e Aircraft.

A tabela a seguir apresenta os parâmetros que podem ser especificados na função de plotagem:

|Parâmetro|Tipo de dado              |Valor Padrão|
|:-------:|:------------------------:|:----------:|
|figure   |matplotlib.figure \| None |None        |
|axis     |matplotlib.axis   \| None |None        |
|linewidth| float                    | 1.0        |
|color    |str                       |'black'     |

Ambas as classes Wing e Aircraft podem receber uma figura e um eixo para se adequarem aos padrões de plotagem do usuário. Além disso, o plot gerado é tridimensional.

# 2. aircraft_design.Aircraft

A classe Aircraft é responsável por agrupar as superfícies aerodinâmicas e torná-las executáveis nos parâmetros da biblioteca de simulação de voo. Ela é um elemento fundamental para o projeto, pois permite a definição do avião como um todo, e é a partir dela que serão realizadas as simulações.

Abaixo seguem os principais parâmetros que compõem a classe Aircraft:

|Parâmetro      |Tipo de dado              |Valor Padrão   |
|:-------------:|:------------------------:|:-------------:|
|mach           | float                    |**Obrigatório**|
|ground_effect  | float                    |**Obrigatório**|
|reference_chord| float                    |**Obrigatório**|
|reference_span | float                    |**Obrigatório**|
|surfaces_list  | list                     |**Obrigatório**|
|ref_point_x    | float                    | 0.0           |
|ref_point_y    | float                    | 0.0           |
|ref_point_z    | float                    | 0.0           |

Além desses parâmetros, a classe Aircraft possui métodos Getters e Setters para todos eles, assim como outros métodos que podem ser necessários para realizar as simulações.

## 2.1. Gerar a geometria
Para poder executar a simulação deve ser gerada a geometria para poder ser executada.
```python
Aircraft().geometry(name:str)
```
## 2.2. Ferramenta de plotagem
A ferramenta de plotagem para o módulo **Aircraft** é totalmente compatível com o módulo **Wing**, recebendo os mesmos parâmetros.

Verificar **1.1.**

# aircraft_design.Session

A classe Session é responsável por realizar a execução do código no AVL. Para fazer isso, é necessário que sejam fornecidos os seguintes parâmetros:

|Parâmetro      |Tipo de dado              |Valor Padrão   |
|:-------------:|:------------------------:|:-------------:|
|geometry       | Aircraft.geometry        |**Obrigatório**|
|cases          | Case \|None              |           None|
|name           | str \|None               |           None|

A variável `geometry` representa a geometria da aeronave, que será utilizada pelo AVL para realizar as análises. A variável `cases` é opcional e representa os casos de simulação que serão executados no AVL. Por fim, a variável `name` é também opcional e representa o nome da sessão que está sendo executada.

Com esses parâmetros em mãos, a classe Session é capaz de realizar as simulações no AVL, gerando informações valiosas sobre o comportamento da aeronave em diferentes condições.

# aircraft_design.MultiSession

A classe MultiSession é responsável por realizar a execução de múltiplas sessões no AVL utilizando uma abordagem paralela que aproveita a capacidade de processamento dos múltiplos núcleos da CPU.

Para fazer isso, a classe MultiSession possui o seguinte parâmetro:

|Parâmetro      |Tipo de dado                        |Valor Padrão   |
|:-------------:|:----------------------------------:|:------------:|
|session_array  | list[Session]                      |**Obrigatório**|

A variável `session_array` representa a lista de sessões que serão executadas no AVL, que são objetos da classe `Session` com suas respectivas geometrias e casos de simulação.

A classe MultiSession é responsável por gerenciar os Workers, compartilhar a memória entre eles e organizar as filas de execução das sessões. Dessa forma, a classe MultiSession permite que múltiplas sessões sejam executadas em paralelo, aumentando a eficiência do processo de simulação.

A utilização da classe MultiSession é recomendada quando o número de sessões é maior ou igual ao dobro do número de núcleos da CPU, para que seja possível obter o máximo aproveitamento da capacidade de processamento do hardware.


            

Raw data

            {
    "_id": null,
    "home_page": "https://pypi.org/project/aircraft-design/",
    "name": "aircraft-design",
    "maintainer": "Irisson Lima",
    "docs_url": null,
    "requires_python": ">=3.9,<3.12",
    "maintainer_email": "irisson2203@gmail.com",
    "keywords": "aircraft,design,VLM,vortex lattice",
    "author": "Nisus Aerodesign",
    "author_email": "ufsc.nisus@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/ef/88/f8e9769c0e695aa7b9f3c4987efc77b24d600777279ae5d3cdb7d6d949cd/aircraft_design-0.0.17.tar.gz",
    "platform": null,
    "description": "# aircraft_design\nPara instalar a biblioteca oficialmente, voc\u00ea pode usar o gerenciador de pacotes pip.\nA seguinte linha de comando pode ser executada no terminal ou prompt de comando:\n```bash\npip install aircraft-design\n```\nAssim, a biblioteca ser\u00e1 baixada e instalada em seu ambiente de desenvolvimento Python. Tamb\u00e9m \u00e9 poss\u00edvel instalar a vers\u00e3o mais recente diretamente do reposit\u00f3rio GitHub, executando o comando:\n```bash\npip install git+https://github.com/NisusAerodesign/aircraft-design.git\n```\nFeito isso, j\u00e1 \u00e9 poss\u00edvel importar e utilizar a biblioteca nas suas aplica\u00e7\u00f5es.\n\n## 0.1. Como instalar\nPara instalar basta acessar pelo reposit\u00f3rio da pr\u00f3pria pipy[*](https://pypi.org/project/aircraft-design) e j\u00e1 estar\u00e1 pronto para uso.\n### Projeto de Design de Aeronaves NISUS-aerodesign\n\nO projeto aircraft-design \u00e9 um esfor\u00e7o desenvolvido por membros da equipe de competi\u00e7\u00e3o **NISUS-aerodesign** com o objetivo de facilitar a an\u00e1lise de aeronaves. A equipe utiliza a ferramenta Vortex Lattice (ou malha de v\u00f3rtices, em tradu\u00e7\u00e3o livre), desenvolvida pelo MIT[*](https://web.mit.edu/drela/Public/web/avl/), para conduzir essas an\u00e1lises. \n\nA ferramenta Vortex Lattice permite que a equipe tenha uma vis\u00e3o detalhada das propriedades aerodin\u00e2micas da aeronave, como por exemplo, a gera\u00e7\u00e3o de sustenta\u00e7\u00e3o, arrasto e for\u00e7as de inclina\u00e7\u00e3o. Isso permite que a equipe fa\u00e7a melhorias no design da aeronave, tornando-a mais eficiente e segura para voo.\n\n[Reposit\u00f3rio GitHub](https://github.com/NisusAerodesign/aircraft-design)\n# 1. aircraft_design.Wing\n\nA classe Wing (Asa) \u00e9 respons\u00e1vel por criar superf\u00edcies aerodin\u00e2micas, como asas e estabilizadores. Ela possui diversos par\u00e2metros que podem ser ajustados para atender \u00e0s necessidades espec\u00edficas de cada projeto.\n\nA tabela abaixo apresenta cada um dos par\u00e2metros da classe Wing, incluindo seu tipo de dado, valor padr\u00e3o e se \u00e9 obrigat\u00f3rio ou n\u00e3o:\n\n| Par\u00e2metro       | Tipo de dado | Valor Padr\u00e3o   |\n|:---------------:|:-----------:|:-------------:|\n| airfoil         | Path        | **Obrigat\u00f3rio** |\n| wingspan        | float       | **Obrigat\u00f3rio** |\n| mean_chord      | float       | **Obrigat\u00f3rio** |\n| taper_ratio     | float       |            1.0 |\n| transition_point| float       |            0.0 |\n| alpha_angle     | float       |            0.0 |\n| sweep_angle     | float       |            0.0 |\n| x_position      | float       |            0.0 |\n| y_position      | float       |            0.0 |\n| z_position      | float       |            0.0 |\n| align           | str         |           'LE' |\n| name            | str         |         'wing' |\n| control         | list        |         [None] |\n| panel_chordwise |int          |             10 |\n| panel_spanwise  |int          |             25 |\n\nAl\u00e9m disso, a classe Wing possui m\u00e9todos *Getters* e *Setters* para todos os seus elementos, permitindo a manipula\u00e7\u00e3o de seus par\u00e2metros de forma f\u00e1cil e precisa. Tamb\u00e9m podemos encontrar outros m\u00e9todos importantes, como `Wing().surface -> avl.Surface` e `Wing().reference_area() -> float`, que fornecem informa\u00e7\u00f5es valiosas sobre a superf\u00edcie da asa e sua \u00e1rea de refer\u00eancia.\n\n\n## 1.1. Ferramenta de plotagem\n\nA biblioteca possui uma ferramenta de plotagem para melhor visualiza\u00e7\u00e3o da aeronave constru\u00edda. Para utiliz\u00e1-la, basta invocar o m\u00e9todo plot() nas classes Wing e Aircraft.\n\nA tabela a seguir apresenta os par\u00e2metros que podem ser especificados na fun\u00e7\u00e3o de plotagem:\n\n|Par\u00e2metro|Tipo de dado              |Valor Padr\u00e3o|\n|:-------:|:------------------------:|:----------:|\n|figure   |matplotlib.figure \\| None |None        |\n|axis     |matplotlib.axis   \\| None |None        |\n|linewidth| float                    | 1.0        |\n|color    |str                       |'black'     |\n\nAmbas as classes Wing e Aircraft podem receber uma figura e um eixo para se adequarem aos padr\u00f5es de plotagem do usu\u00e1rio. Al\u00e9m disso, o plot gerado \u00e9 tridimensional.\n\n# 2. aircraft_design.Aircraft\n\nA classe Aircraft \u00e9 respons\u00e1vel por agrupar as superf\u00edcies aerodin\u00e2micas e torn\u00e1-las execut\u00e1veis nos par\u00e2metros da biblioteca de simula\u00e7\u00e3o de voo. Ela \u00e9 um elemento fundamental para o projeto, pois permite a defini\u00e7\u00e3o do avi\u00e3o como um todo, e \u00e9 a partir dela que ser\u00e3o realizadas as simula\u00e7\u00f5es.\n\nAbaixo seguem os principais par\u00e2metros que comp\u00f5em a classe Aircraft:\n\n|Par\u00e2metro      |Tipo de dado              |Valor Padr\u00e3o   |\n|:-------------:|:------------------------:|:-------------:|\n|mach           | float                    |**Obrigat\u00f3rio**|\n|ground_effect  | float                    |**Obrigat\u00f3rio**|\n|reference_chord| float                    |**Obrigat\u00f3rio**|\n|reference_span | float                    |**Obrigat\u00f3rio**|\n|surfaces_list  | list                     |**Obrigat\u00f3rio**|\n|ref_point_x    | float                    | 0.0           |\n|ref_point_y    | float                    | 0.0           |\n|ref_point_z    | float                    | 0.0           |\n\nAl\u00e9m desses par\u00e2metros, a classe Aircraft possui m\u00e9todos Getters e Setters para todos eles, assim como outros m\u00e9todos que podem ser necess\u00e1rios para realizar as simula\u00e7\u00f5es.\n\n## 2.1. Gerar a geometria\nPara poder executar a simula\u00e7\u00e3o deve ser gerada a geometria para poder ser executada.\n```python\nAircraft().geometry(name:str)\n```\n## 2.2. Ferramenta de plotagem\nA ferramenta de plotagem para o m\u00f3dulo **Aircraft** \u00e9 totalmente compat\u00edvel com o m\u00f3dulo **Wing**, recebendo os mesmos par\u00e2metros.\n\nVerificar **1.1.**\n\n# aircraft_design.Session\n\nA classe Session \u00e9 respons\u00e1vel por realizar a execu\u00e7\u00e3o do c\u00f3digo no AVL. Para fazer isso, \u00e9 necess\u00e1rio que sejam fornecidos os seguintes par\u00e2metros:\n\n|Par\u00e2metro      |Tipo de dado              |Valor Padr\u00e3o   |\n|:-------------:|:------------------------:|:-------------:|\n|geometry       | Aircraft.geometry        |**Obrigat\u00f3rio**|\n|cases          | Case \\|None              |           None|\n|name           | str \\|None               |           None|\n\nA vari\u00e1vel `geometry` representa a geometria da aeronave, que ser\u00e1 utilizada pelo AVL para realizar as an\u00e1lises. A vari\u00e1vel `cases` \u00e9 opcional e representa os casos de simula\u00e7\u00e3o que ser\u00e3o executados no AVL. Por fim, a vari\u00e1vel `name` \u00e9 tamb\u00e9m opcional e representa o nome da sess\u00e3o que est\u00e1 sendo executada.\n\nCom esses par\u00e2metros em m\u00e3os, a classe Session \u00e9 capaz de realizar as simula\u00e7\u00f5es no AVL, gerando informa\u00e7\u00f5es valiosas sobre o comportamento da aeronave em diferentes condi\u00e7\u00f5es.\n\n# aircraft_design.MultiSession\n\nA classe MultiSession \u00e9 respons\u00e1vel por realizar a execu\u00e7\u00e3o de m\u00faltiplas sess\u00f5es no AVL utilizando uma abordagem paralela que aproveita a capacidade de processamento dos m\u00faltiplos n\u00facleos da CPU.\n\nPara fazer isso, a classe MultiSession possui o seguinte par\u00e2metro:\n\n|Par\u00e2metro      |Tipo de dado                        |Valor Padr\u00e3o   |\n|:-------------:|:----------------------------------:|:------------:|\n|session_array  | list[Session]                      |**Obrigat\u00f3rio**|\n\nA vari\u00e1vel `session_array` representa a lista de sess\u00f5es que ser\u00e3o executadas no AVL, que s\u00e3o objetos da classe `Session` com suas respectivas geometrias e casos de simula\u00e7\u00e3o.\n\nA classe MultiSession \u00e9 respons\u00e1vel por gerenciar os Workers, compartilhar a mem\u00f3ria entre eles e organizar as filas de execu\u00e7\u00e3o das sess\u00f5es. Dessa forma, a classe MultiSession permite que m\u00faltiplas sess\u00f5es sejam executadas em paralelo, aumentando a efici\u00eancia do processo de simula\u00e7\u00e3o.\n\nA utiliza\u00e7\u00e3o da classe MultiSession \u00e9 recomendada quando o n\u00famero de sess\u00f5es \u00e9 maior ou igual ao dobro do n\u00famero de n\u00facleos da CPU, para que seja poss\u00edvel obter o m\u00e1ximo aproveitamento da capacidade de processamento do hardware.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Condensed module for Aircraft Design",
    "version": "0.0.17",
    "project_urls": {
        "Homepage": "https://pypi.org/project/aircraft-design/",
        "Repository": "https://github.com/NisusAerodesign/aircraft-design"
    },
    "split_keywords": [
        "aircraft",
        "design",
        "vlm",
        "vortex lattice"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8b7117c45d06ee9697050ae712dc68c61cbf60ede1231069436b4f683e8bc8c1",
                "md5": "9701e1d422edb8eb5232189b1672c769",
                "sha256": "4976518f2fd8b9a1e0e2cba5ad3557c0e508a28f326e7098f957537ef3eba733"
            },
            "downloads": -1,
            "filename": "aircraft_design-0.0.17-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9701e1d422edb8eb5232189b1672c769",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<3.12",
            "size": 16372,
            "upload_time": "2023-09-19T16:01:15",
            "upload_time_iso_8601": "2023-09-19T16:01:15.283319Z",
            "url": "https://files.pythonhosted.org/packages/8b/71/17c45d06ee9697050ae712dc68c61cbf60ede1231069436b4f683e8bc8c1/aircraft_design-0.0.17-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ef88f8e9769c0e695aa7b9f3c4987efc77b24d600777279ae5d3cdb7d6d949cd",
                "md5": "6972db162dd2e92e2d024eb4885ac1e0",
                "sha256": "653336c813faff0a0fc8731117b3fedf931089c8a6d81092560d4aa891f7a21b"
            },
            "downloads": -1,
            "filename": "aircraft_design-0.0.17.tar.gz",
            "has_sig": false,
            "md5_digest": "6972db162dd2e92e2d024eb4885ac1e0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<3.12",
            "size": 16583,
            "upload_time": "2023-09-19T16:01:16",
            "upload_time_iso_8601": "2023-09-19T16:01:16.608810Z",
            "url": "https://files.pythonhosted.org/packages/ef/88/f8e9769c0e695aa7b9f3c4987efc77b24d600777279ae5d3cdb7d6d949cd/aircraft_design-0.0.17.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-19 16:01:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "NisusAerodesign",
    "github_project": "aircraft-design",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "aircraft-design"
}
        
Elapsed time: 0.11363s