Skip to content

CEASIOMpy is a Python conceptual aircraft design environment

License

Notifications You must be signed in to change notification settings

GovoniT/CEASIOMpy

 
 

Repository files navigation

Unittest Integration tests Codecov Codacy Badge Black code style License

CEASIOMpy

CEASIOMpy is an open source conceptual aircraft design environment. CEASIOMpy can be used to set up complex design and optimization workflows, both for conventional and unconventional aircraft configurations. Tools for various disciplines in aircraft design are provided, however, the aerodynamic tools are the most developed. They allow to automatically generate aerodynamic meshes and perform CFD calculation.

CEASIOMpy is written mostly in Python but it also depends on third-party libraries and software (like SU2 for the CFD calculation).

CEASIOMpy is based on the open-standard format CPACS, a Common Parametric Aircraft Configuration Schema. It is a data definition for the air transportation system which is developed by the German Aerospace Center DLR. CPACS enables engineers to exchange information between their tools.

📜 CEASIOMpy is maintained by CFS Engineering and Airinnova. CEASIOMpy is under the Apache License 2.0.

📖 The Documentation of CEASIOMpy is integrated in this repository and can be read in documents like this one. Follow links to find the information that you are looking for.

Table of contents

Installation

To install CEASIOMpy, please refer to the installation page, it will guide you through the installation process depending on your system.

Usage

Test cases

Theses test cases are there to learn how to use CEASIOMpy. You will probably also learn a few things about the CPACS format. You can also run these tests to check that everything is installed and works as expected as they cover different possibilities of use of CEASIOMpy.

  • Test case 1 : Run a simple workflow ✔️
  • Test case 2 : Create and run a workflow with the Graphical User Interface ✔️
  • Test case 3 : Create and run a from a command line ❌
  • Test case 4 : Create and run a from a configuration file ❌

Run CEASIOMpy

  • Run CEASIOMpy with a GUI to build the workflow

    If you run CEASIOMpy with the following command, you can build the workflow with a graphical user interface.

    ceasiompy_run --gui
  • Run CEASIOMpy with a command line to build the workflow

    If you run CEASIOMpy with the following command, you can build the workflow directly by defining the CPACS files and the modules you want to use.

    cd WKDIR
    ceasiompy_run -m ../test_files/CPACSfiles/D150_simple.xml PyTornado SaveAeroCoefficients
  • Run CEASIOMpy with an existing configuration file

    You can run an existing configuration file (e.g. from the test cases) with the following command.

    cd WKDIR
    ceasiompy_run --cfg ../test_cases/config_test_case_1.cfg
  • Write a CEASIOMpy configuration file

    A CEASIOMpy configuration file is a text file (saved as *.cfg) which contains the information necessary to run CEASIOMpy. You can write a configuration file by following the example.

    % CEASIOMpy configuration file
    
    % Input CPACS files (required) which contain the aircraft geometry
    CPACS_TOOLINPUT = /users/disk10/jungo/github/CEASIOMpy/test_files/CPACSfiles/D150_simple.xml
    
    # Modules which will be used in the workflow (in order)
    
    MODULE_TO_RUN = ( PyTornado, SaveAeroCoefficients )
    

    You can save this file as my_config_file.cfg in your WKDIR. Then, you can run it with the following commands:

    cd WKDIR
    ceasiompy_run --cfg ./my_config_file.cfg

Examples of workflows

  • Simple workflow with PyTornado (Vortex Lattice Method)
  graph LR;
      PyTornado-->SaveAeroCoefficients;
Loading
  • Workflow with SU2 (CFD) at fixed CL
  graph LR;
      CLCalculator-->CPACS2SUMO;
      CPACS2SUMO-->SUMOAutoMesh;
      SUMOAutoMesh-->SU2Run;
      SU2Run-->ExportCSV;
Loading

Available modules

A lot of different modules are available in CEASIOMpy, they can be assembled in various workflows. You can find below the list of available modules. The module status is marked as follows:

✔️ : The module should be working as expected. Some small bugs may be present, don't hesitate to report them (more details here).

⚠️ : The module is not working fully as expected. It is not a bug, but some features or data handling are yet compatible with the new file structure. Check the Kanban board to see planned and in progress features.

❌ : The module is not working at all. Some functions have been written but requires a lot of changes to be compatible with the rest of CEASIOMpy.

General modules

Geometry and Mesh

Aerodynamics

Weight and Balance

  • BalanceConventional ⚠️
  • BalanceUnconventional ⚠️
  • WeightConventional ✔️
  • WeightUnconventional ⚠️

Mission Analysis

  • Range ⚠️
  • StabilityStatic ⚠️
  • StabilityDynamic ❌

Structure

  • AeroFrame ❌

Contributing

CEASIOMpy is an open source project and we welcome contributions from everyone. Some CEASIOMpy modules have been developed by students during their internship or master thesis. If you want to contribute to the development of CEASIOMpy , please refer to the CONTRIBUTING.md document.

More information

About

CEASIOMpy is a Python conceptual aircraft design environment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.7%
  • Shell 1.1%
  • Other 0.2%