Package: aircraft-design
aircraft_designPara 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:pipinstallaircraft-designAssim, 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:pipinstallgit+https://github.com/NisusAerodesign/aircraft-design.gitFeito isso, já é possível importar e utilizar a biblioteca nas suas aplicações.0.1. Como instalarPara instalar basta acessar pelo repositório da própria pipy*e já estará pronto para uso.Projeto de Design de Aeronaves NISUS-aerodesignO projeto aircraft-design é um esforço desenvolvido por membros da equipe de competiçãoNISUS-aerodesigncom 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*, 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 GitHub1. aircraft_design.WingA 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âmetroTipo de dadoValor PadrãoairfoilPathObrigatóriowingspanfloatObrigatóriomean_chordfloatObrigatóriotaper_ratiofloat1.0transition_pointfloat0.0alpha_anglefloat0.0sweep_anglefloat0.0x_positionfloat0.0y_positionfloat0.0z_positionfloat0.0alignstr'LE'namestr'wing'controllist[None]panel_chordwiseint10panel_spanwiseint25Além disso, a classe Wing possui métodosGetterseSetterspara 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, comoWing().surface -> avl.SurfaceeWing().reference_area() -> float, que fornecem informações valiosas sobre a superfície da asa e sua área de referência.1.1. Ferramenta de plotagemA 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âmetroTipo de dadoValor Padrãofigurematplotlib.figure | NoneNoneaxismatplotlib.axis   | NoneNonelinewidthfloat1.0colorstr'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.AircraftA 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âmetroTipo de dadoValor PadrãomachfloatObrigatórioground_effectfloatObrigatórioreference_chordfloatObrigatórioreference_spanfloatObrigatóriosurfaces_listlistObrigatórioref_point_xfloat0.0ref_point_yfloat0.0ref_point_zfloat0.0Alé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 geometriaPara poder executar a simulação deve ser gerada a geometria para poder ser executada.Aircraft().geometry(name:str)2.2. Ferramenta de plotagemA ferramenta de plotagem para o móduloAircrafté totalmente compatível com o móduloWing, recebendo os mesmos parâmetros.Verificar1.1.aircraft_design.SessionA 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âmetroTipo de dadoValor PadrãogeometryAircraft.geometryObrigatóriocasesCase |NoneNonenamestr |NoneNoneA variávelgeometryrepresenta a geometria da aeronave, que será utilizada pelo AVL para realizar as análises. A variávelcasesé opcional e representa os casos de simulação que serão executados no AVL. Por fim, a variávelnameé 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.MultiSessionA 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âmetroTipo de dadoValor Padrãosession_arraylist[Session]ObrigatórioA variávelsession_arrayrepresenta a lista de sessões que serão executadas no AVL, que são objetos da classeSessioncom 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.