Giter Site home page Giter Site logo

cfsengineering / ceasiompy Goto Github PK

View Code? Open in Web Editor NEW
60.0 6.0 36.0 52.06 MB

CEASIOMpy is a Python conceptual aircraft design environment

License: Apache License 2.0

Python 98.81% Shell 0.98% Batchfile 0.13% Dockerfile 0.08%
aircraft aircraft-design aerodynamics python su2

ceasiompy's Introduction

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 optimisation workflows for both conventional and unconventional aircraft configurations. Tools for various aircraft design disciplines are provided, but the aerodynamic tools are the most advanced. They allow automatic generation of aerodynamic meshes and CFD calculations.

CEASIOMpy is mostly written 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

Demo

CEASIOMpy GUI Video tutorial (Test case 2)

Test cases

These 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 verify that everything is installed and working as expected as they cover different possible ways of using CEASIOMpy. Be sure you finish the installation before you try them.

  • Test case 1 : Run a simple workflow
  • Test case 2 : Create and run a workflow with the Graphical User Interface (Video tutorial)
  • Test case 3 : Create and run a workflow with the Graphical User Interface
  • Test case 4 : Create and run a from a command line
  • Test case 5 : 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

Follow the test cases to discover the different way of using CEASIOMpy.

Examples of workflows

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

Available modules

There are many different modules available in CEASIOMpy that can be combined in different workflows. The list of available modules is shown below. The module status is marked as follows:

โœ”๏ธ : The module should work as expected. There may be some minor bugs, don't hesitate to report them (more details here).

warning: : The module does not work completely as expected. It is not a bug, but some features or data handling are not yet compatible with the new file structure. Check the Kanban Board to see planned and in-progress features.

โŒ : The module does not work at all. Some functions have been written, but need 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

Structure

  • AeroFrame โŒ

Contributing

CEASIOMpy is an open source project and we welcome contributions from everyone. Some CEASIOMpy modules have been developed by students as part of their internship or master thesis.

If you want to contribute to the development of CEASIOMpy, please read the document CONTRIBUTING.md.

More information

ceasiompy's People

Contributors

aarondettmann avatar aidanjungo avatar gbenedett avatar lverdier1 avatar vivtrif avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ceasiompy's Issues

Integration with RCE

I am new user to both CEASIOM and RCE, could somebody help me with RCE and how to integrate the modules of CEASIOMpy to RCE?

I understand that this really is not an issue, but would really love some assistance on this.

Error in Installation

When I try to set up the environment in conda the following error appears:

(base) C:\CEASIOMpy>conda env create -f environment.yml
Collecting package metadata (repodata.json): done
Solving environment: done
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
ERROR conda.core.link:_execute(700): An error occurred while installing package 'conda-forge::qt-5.9.7-h506e8af_3'.
Rolling back transaction: done

LinkError: post-link script failed for package conda-forge::qt-5.9.7-h506e8af_3
location of failed script: C:\Anaconda3\envs\ceasiompy\Scripts.qt-post-link.bat
==> script messages <==

==> script output <==
stdout: 1 file(s) copied.

stderr: 'chcp' is not recognized as an internal or external command,
operable program or batch file.
'chcp' is not recognized as an internal or external command,
operable program or batch file.
'chcp' is not recognized as an internal or external command,
operable program or batch file.

return code: 1

()

Problem with CodeCov

Get the error when CodeCov run with Github actions...

Run codecov/codecov-action@v2
  with:
    token: ***
    fail_ci_if_error: false
    verbose: true
  env:
    pythonLocation: /opt/hostedtoolcache/Python/3.7.12/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.7.12/x64/lib
==> linux OS detected
https://uploader.codecov.io/latest/linux/codecov.SHA256SUM
==> SHASUM file signed by key id 806bb28aed779869
==> Uploader SHASUM verified (cae21e490c24b05c3802c7001a1540a7f83d46cb4f1eadf14e76627094c65cb8  codecov)
==> Running version latest
==> Running version v0.2.0
/home/runner/work/_actions/codecov/codecov-action/v2/dist/codecov -n  -Q github-action-2.1.0 -C 7a7212b31519ab06ca66d7a62d7e6b41299dbb67 -v
[2022-04-25T11:53:56.793Z] ['verbose'] Start of uploader: 1650887636793...
[2022-04-25T11:53:56.794Z] ['info'] 
     _____          _
    / ____|        | |
   | |     ___   __| | ___  ___ _____   __
   | |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
   | |___| (_) | (_| |  __/ (_| (_) \ V /
    \_____\___/ \__,_|\___|\___\___/ \_/

  Codecov report uploader 0.2.0
[2022-04-25T11:53:56.802Z] ['info'] => Project root located at: /home/runner/work/CEASIOMpy/CEASIOMpy
[2022-04-25T11:53:56.802Z] ['info'] ->  Token found by environment variables
[2022-04-25T11:53:56.803Z] ['verbose'] Start of network processing...
[2022-04-25T11:53:56.803Z] ['verbose'] Searching for files in /home/runner/work/CEASIOMpy/CEASIOMpy
[2022-04-25T11:53:56.896Z] ['info'] Running coverage xml...
[2022-04-25T11:53:57.634Z] ['info'] Searching for coverage files...
[2022-04-25T11:53:57.691Z] ['info'] Warning: Some files located via search were excluded from upload.
[2022-04-25T11:53:57.691Z] ['info'] If Codecov did not locate your files, please review https://docs.codecov.com/docs/supported-report-formats
[2022-04-25T11:53:57.691Z] ['error'] There was an error running the uploader: No coverage files located, please try use `-f`, or change the project root with `-R`
[2022-04-25T11:53:57.692Z] ['verbose'] The error stack is: Error: No coverage files located, please try use `-f`, or change the project root with `-R`
    at main (/snapshot/repo/dist/src/index.js)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
[2022-04-25T11:53:57.692Z] ['verbose'] End of uploader: 899 milliseconds

Problem with GMSH on MacOS

On MacOS, when using CPACS2GMSH or running tests it did not work due to "segmentation fault" .

The error appear during:

gmsh.model.occ.synchronize()

ModuleNotFoundError: No module named 'tixi3'

Module Concerned
RCE module interface

Describe the bug
I am working on installing the UBUNTU version of CEASIOMpy. I have followed all the instruction addressed in the "readthedocs" and all went fine till the RCE integration.

(base) michele@michele-virtual-machine:~/CEASIOMpy$ python ceasiompy/utils/rce_integration.py
Traceback (most recent call last):
  File "ceasiompy/utils/rce_integration.py", line 20, in <module>
    from ceasiompy.utils.moduleinterfaces import get_module_list
  File "/home/michele/CEASIOMpy/ceasiompy/utils/moduleinterfaces.py", line 30, in <module>
    import ceasiompy.utils.cpacsfunctions as cpsf
  File "/home/michele/CEASIOMpy/ceasiompy/utils/cpacsfunctions.py", line 35, in <module>
    import tixi3.tixi3wrapper as tixi3wrapper
ModuleNotFoundError: No module named 'tixi3'

or pointing the "ceasiompy" environment I get:

(ceasiompy) michele@michele-virtual-machine:~/CEASIOMpy$ python ceasiompy/utils/rce_integration.py
Traceback (most recent call last):
  File "ceasiompy/utils/rce_integration.py", line 20, in <module>
    from ceasiompy.utils.moduleinterfaces import get_module_list
ModuleNotFoundError: No module named 'ceasiompy'

the same is found also if going to try "Test Case 1 : Simple workflow" calling "python workflowcreator.py -gui"

Desktop (please complete the following information):

  • Ubuntu 18.04 (bu the same happen with Ubuntu 20.04.02) - it is running on Virtual Machine powered by vmWare in mac osx 10.15.7
  • Python 3.8.8
  • CEASIOMpy version: the latest

Deal with half meshes

With GMSH it now possible to create half mesh (with a symmetry plan), when it is the case SU2Run module should take that into account to be sure we get the correct coefficients and wetted area.

SkinFriction: Add waring if value out of range

The SkinFriction module is base on some hypothesis:

  • Re (based on Swet): 35-390ยท106 [-]
  • Swet: 120-3400 [m2]
  • Sref: 20-580 [m2]
  • b: 10โ€“68 [m]

These hypothesis should be checked and at least raise a warning(s) when not respected!

Documentation generation halts due to open GUI window

Hi, I would like to make some minor improvements in the documentation. However, there is an issue with the documentation build process. When running make html in the doc folder, the build process halts due to a GUI window showing up. Can we avoid this?

gui

Also, in the screenshot there are deprecation warnings from Sphinx. It should be safe to upgrade Sphinx to the newest version (3.0.3). The version number should be changed in environment.yml and requirements.txt. (In an existing conda environment we can upgrade with conda upgrade Sphinx).

CPACScreator error during execution "Test Case 2 : Aerodynamic database with PyTornado"

Hi,

having success with the execution of "TEST Case 1 - simple workflow", I went on with Test Case 2 but I had the following error:

INFO - The following modules will be executed: ['CPACSCreator', 'SettingsGUI', 'PyTornado', 'PlotAeroCoefficients']
INFO -

INFO - ######################################################################################
INFO - Run module: CPACSCreator
INFO - ######################################################################################

Going to d:\ceasiom\ceasiompy\ceasiompy\CPACSCreator

INFO - ----- Start of cpacscreatorrun.py -----
INFO - "CPACSCreator" is intall at: C:\Users\raf\anaconda3\envs\ceasiompy\Library\bin\CPACSCreator.EXE
INFO - The /tmp directory has been cleared.
INFO - The input CPACS file has been copied in /tmp
Traceback (most recent call last):
File "cpacscreatorrun.py", line 140, in
launch_cpacscreator(cpacs_path,cpacs_out_path)
File "cpacscreatorrun.py", line 113, in launch_cpacscreator
raise OSError('OS not recognize!')
OSError: OS not recognize!
Traceback (most recent call last):
File "workflowcreator.py", line 327, in
wkf.run_subworkflow(Opt.module_pre, Opt.cpacs_path)
File "d:\ceasiom\ceasiompy\ceasiompy\utils\workflowfunctions.py", line 145, in run_subworkflow
raise ValueError('An error ocured in the module '+ module)
ValueError: An error ocured in the module CPACSCreator

Any advice that could help in solving the problem is appreciated.

Clcalculater error

Hi everyone,

I don't know anyone take that error but in Clcalculater module i had a type converting error. When module converting mass(str) to mass(float) an error occured. It happen because mass(str) includes ",". But it has to be "." for float(mass) function work well. So the solution is adding following code to Clcalculater.py:

hata2

Workflow Creator error

Module Concerned
The error appeared after running the test in workflow creator
Describe the bug
The following error appear:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\PedroTosin\AppData\Roaming\Python\Python37\site-packages\ceasiompy\WorkflowCreator\ToolInput\ToolInput.xml'

Screenshots
https://drive.google.com/file/d/1tFicFkrI8CNqxd1CUGZFFaUqpEAgSlbS/view?usp=sharing
Desktop (please complete the following information):

  • OS/Distribution: [Windows 10 Enterprise 2016 ltsb]

Additional context
Another error happened during pytornado install, i don't know if they are related or not

Update to Python 3.8

There is no real reason to keep Python 3.7, it is probably better to use the latest stable version of Python (e.i. 3.8).

Todo:

  • Try to create CEASIOMpy Conda environment with Python 3.10
  • Replace code that could by simplify with Python 3.8
  • Run test and run a few workflow to be sure everything is fine
  • Update Python version: >=3.7 in all files and setup.py

SUMO installation with Ubuntu18.04 instead of Ubuntu20.04

Installing Ceasiompy + Pytornado + SUMO did not work on Ubuntu20.04. I could not get it working (at least not the SUMO part). SUMO needs a downgrading of the g++ package and installing the libgfortran3, which I could not get done on ubuntu 20.04 due to incompatibility issues.

Therefore I downgraded the operating system to clean Ubuntu18.04 and get everything installed fine.

so to whomever is installing on Ubuntu, this is how I got it working on 18.04:

  1. install git
  2. install python 3.8 (although conda installs 3.7, not sure why...)
  3. install Miniconda
    >> bash Miniconda3-latest-Linux-x86_64.sh
  4. go to your preferred path and git clone https://github.com/cfsengineering/CEASIOMpy.git
  5. install g++:
    >> sudo apt get install g++
  6. install conda environment by
    >> conda env create -f environment.yml
  7. update the ".bashrc" file with:
    alias ceasiompy='source activate ceasiompy && cd /yourPathToCEASIOMPy/CEASIOMpy/ceasiompy' alias ceasiomgui='cd /yourPathToCEASIOMPy/CEASIOMpy/ceasiompy/WorkflowCreator && python workflowcreator.py -gui'
  8. activate environment through
    >> ceasiompy
  9. go one directory up to install
    >> pip install -e .
  10. You can check now the installation by
    >> cpacscreator
    the CPACs creator program should open up
  11. PyTornado: (see https://pytornado.readthedocs.io/en/latest/) so download this file: https://github.com/airinnova/pytornado/archive/master.zip and extract it where you want it.
    a. go to the folder pytornado-master and install pytornado through:
    b. >> pip install .
    c. test by typing >> pytornado (you will get some help)
  12. install libgfortran3 by
    >>sudo apt-get install libgfortran3
    N.B. this will not work with ubuntu20.04 and the reason I downgraded to ubuntu18.04
  13. download the libpng12 package and place it in the right folder by
    >> sudo cp libpng12.so.0 /usr/lib/x86_64-linux-gnu/.
  14. now SUMO (no documentation on installation :-( ):
    a. .download from https://www.larosterna.com/products/open-source
    b. go to the directory sumo-2.7.9/bin/
    c. open SUMO by
    >> ./dwfsumo
    d. now you can make an alias in the .bashrc file as before or type >> sudo ln -s /YourPathToSUMO/sumo-standalone-Qt4-2.7.9/sumo-2.7.9/bin/dwfsumo /usr/bin/sumo
  • OS/Distribution: [Ubuntu18.04.5]
  • Python version [3.8]
  • CEASIOMpy version [0.0.1]
  • PyTornado [0.5.4]
  • SUMO [2.7.9]

Cpac2Sumo module converting error

Module Concerned
Cpac2Sumo

Describe the bug
I try to make aerodynamic analysis on SU2. As you know i need mesh for that. but an error occurred when SumoAutomesh run. I check the code. The error occurred because of cpac2sumo module run without error but did not done properly. I use a simple wing which includes 2 segments, i create a cpac file for that. Then i use cpac2sumo module. Result is in attachments. on of the segments length or height is coded as zero i guess. That bug above my head :) i hope someone help me about that.

Expected behavior

cpacs
Basic wing with 2 segment cpacscreator version

sumo_error2
sumo_error
Cpack2Sumo result

cpac2sumo
That error happens when Cpac2sumo done and sumoautomesh starts.

Desktop (please complete the following information):

  • OS/Distribution: [Linux]
  • Python version [ 3.7]
  • CEASIOMpy version [latest]

Create a report automatically

We could create a module which generate a report automatically from the data save in the Results directory and in the CPACS file.

This module should be able to:

  • Create a markdown document, with:
    • Info about the aircraft (name, size, image)
    • Workflow that has been run, could be drawn with mermaid
    • For each module:
      • Input parameters used
      • Results obtained
  • Convert it to pdf with pandoc or something similar
  • Save the report in /Results and open it at the end of the workflow

cannot start CEASIOMpy

When I run python workflowcreator.py -gui, it told me:

D:/Program Files/METACOMP/mlib/tcltk8/lib/tk8.4/tk.tcl: version conflict for package "Tk": have 8.6.9, need exactly 8.4
version conflict for package "Tk": have 8.6.9, need exactly 8.4
while executing
"package require -exact Tk 8.4"
(file "D:/Program Files/METACOMP/mlib/tcltk8/lib/tk8.4/tk.tcl" line 16)
invoked from within
"source {D:/Program Files/METACOMP/mlib/tcltk8/lib/tk8.4/tk.tcl}"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $file]"

How can I fix it?

This probably means that tk wasn't installed properly.

Add integration tests

Create integration tests for some typical CEASIOMpy workflow, for example:

  graph LR;
      CPACS-->PyTornado;
      PyTornado-->ExportCSV;
  graph LR;
      CPACS-->WeightConventional;
      WeightConventional-->BalanceConventional;
      BalanceConventional-->Range;
  graph LR;
      CPACS-->CPACS2GMSH;
      CPACS2GMSH-->SU2Run;
      SU2Run-->SkinFriction;
      SkinFriction-->ExportCSV
  graph LR;
      CPACS-->CPACS2SUMO;
      CPACS2SUMO-->SU2AutoMesh;
      SU2AutoMesh-->SU2Run;
      SU2Run-->ExportCSV

For some of them, I am not sure it will be possible to include them in to the Github Action CI because of the installation it required (SUMO, SU2, etc.). It could still be useful to run them locally.

Create a GMSH module

Objective

  • Creation of a GMSH module to create 3d tetrahedral unstructured mesh from a CPACS file.

For now the only option to run a SU2 calculation from a CPACS file is to use the following workflow:

  graph LR;
      CPACS-->CPACS2SUMO;
      CPACS2SUMO-->SU2AutoMesh;
      SU2AutoMesh-->SU2Run;

The idea would be to have a second option that use GMSH, to have something like:

  graph LR;
      CPACS-->CPACS2SUMO;
      CPACS2SUMO-->SU2AutoMesh;
      SU2AutoMesh-->SU2Run;
      CPACS --> GMSHAutoMesh --> SU2Run

GMSH should allow more detailed geometry definition compared to SUMO, for example adding disk actuator or landing gear.

Input

  • CPACS file
  • Minimum of options that could be saved in the CPACS file (/Toolspecific)

Output

  • SU2 mesh (with BC marker)

File structure

โ”œโ”€โ”€ func <- Module subfunction import by the main one.
โ”‚ย ย  โ”œโ”€โ”€ exportbrep.py
โ”‚ย ย  โ””โ”€โ”€ generategmesh.py
โ”œโ”€โ”€ tests <- Test function for this module.
โ”‚ย ย  โ”œโ”€โ”€ test_generategmesh.xml
โ”‚ย ย  โ””โ”€โ”€ test_exportbrep.py
โ”œโ”€โ”€ __specs__.py <- Specification of the module.
โ”œโ”€โ”€ README.md <- For CEASIOMpy documentation.
โ””โ”€โ”€ cpacs2gmsh.py <- Main module of the module.

Work breakdown

  • Create file strucure
  • Write exportbrep.py
  • Write generategmesh.py
  • Write cpacs2gmsh.py
  • Write __specs__.py and define option
  • Run a simple workflow
  • Check several aircraft (no wing, no fuselage, not symmetric,...)
  • Possibility to create a symmetry plane
  • Add trailing and leading edge refinement option
  • Add a README.md (+ link from the home page)
  • Update do GMSH 4.10.0 and check everythings still works
  • Use uid when export .brep files
  • Use Pathlib of all file handling
  • Refactor wingclasification.py
  • Improve mesh size growth rate
  • Refine mesh at fuselage and wing tip
  • Add conversion of engine (beta)
  • Simplify code and tests when possible
  • Add disk actuator
  • Check README and comments (TODO) to be sure everything is well explained

TODO by @aidanjungo:

  • Add a testcase with GMSH
  • Add an integration test with engine and disc actuator

Remaining (will be treated separatly)

  • Add a Engine module to setup engine parameter (jet and propeller) #209
  • Run comparison GMSH vs SUMO #222
  • Add conversion of flaps #223

Install script for Windows

Batch script to simplify the installation CEASIOMpy on Windows

Scripts to write (could maybe be gather into one main script, with options):

  • Miniconda
  • CEASIOMpy
  • PyTornado
  • SUMO
  • SU2
  • MPICH
  • Paraview

Log everything in one log file

For now, every script create its own log file, it is not easy to trace back errors.

All the logs should be save in one log file by run, this file will be stored at the root of CEASIOMpy (ceasiompy.log) and erase at each new run. However, it will be copy in the workflow directory at the end of each workflow, to keep track of it.

Error while running Test Case 1: Simple workflow

Module Concerned
WorkflowCreator

Describe the bug
I just installed CEASIOMpy as specified in readthedosc page. While trying to ron the test case 1: Simple workflow the following error appears:

Traceback (most recent call last):
File "/home/alejandro/anaconda3/envs/ceasiompy/lib/python3.7/site-packages/tigl3/tigl3wrapper.py", line 306, in Tigl3
lib = ctypes.CDLL(os.path.join(sys.prefix, 'lib', 'libtigl3.so'))
File "/home/alejandro/anaconda3/envs/ceasiompy/lib/python3.7/ctypes/init.py", line 364, in init
self._handle = _dlopen(self._name, mode)
OSError: libtixi3.so.0: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "rce_integration.py", line 20, in
from ceasiompy.utils.moduleinterfaces import get_module_list
File "/home/alejandro/Documents/Github/CEASIOMpy/ceasiompy/utils/moduleinterfaces.py", line 30, in
import ceasiompy.utils.cpacsfunctions as cpsf
File "/home/alejandro/Documents/Github/CEASIOMpy/ceasiompy/utils/cpacsfunctions.py", line 36, in
import tigl3.tigl3wrapper as tigl3wrapper
File "/home/alejandro/anaconda3/envs/ceasiompy/lib/python3.7/site-packages/tigl3/tigl3wrapper.py", line 293, in
class Tigl3(object):
File "/home/alejandro/anaconda3/envs/ceasiompy/lib/python3.7/site-packages/tigl3/tigl3wrapper.py", line 309, in Tigl3
" 1) The PATH (Windows) / LD_LIBRARY_PATH (Linux) environment variable points to the library\n" +
Exception: Could not load the tigl3 library. Please check if:

  1. The PATH (Windows) / LD_LIBRARY_PATH (Linux) environment variable points to the library
  2. The architecture of the library matches the architecture of python (a 32 bit python needs a 32 bit shared library)

Expected behavior
I already installed CEASIOMpy before on my personal laptop and this error doesn't appear.

Screenshots

Desktop (please complete the following information):

  • OS/Distribution: Linux - Ubuntu 20.04 LTS
  • Python version (conda) 3.7.6
  • CEASIOMpy version: ceasiompy==0.0.1 (1.19.1)

Additional context
I'm using Anaconda3 to create the environment.

cpacscreator not launching from ceasiompy

hello,
i'm working on Ubuntu 20.04, and i installed ceasiompy following the directions on the installation page. after i activate the conda environment. i run the cpacscreator but unfortunately i get : command not found . i would appreciate it if someone could help me solve this issue fast.

Workflowcreator error with test case 1

Module Concerned
WorkflowCreator

Describe the bug
when i 'm trying to run Test case 1 from the activated ceasiompy environment, the following error occured:
Traceback (most recent call last):
File "workflowcreator.py", line 33, in
import ceasiompy.utils.workflowfunctions as wkf
ModuleNotFoundError: No module named 'ceasiompy'

Expected behavior
the gui would appear

Desktop (please complete the following information):

  • OS/Distribution: Linux 20.04.3
  • Python version : Python 3.7.11
  • CEASIOMpy version 0.1.1

Investigate the possibility to integrate AeroSandbox for VLM calculations

AeroSandbox is a Python package for design optimization of engineered systems such as aircraft. It can permorm VLM calculation from quite simple aircraft definition.

It could maybe use as an alternative/replacement to PyTornado in CEASIOMpy, some check must be perform first:

  • The license is compatible with CEASIOMpy
  • It could be installed and run easily (and automatically) on Linux, MacOS and Windows
  • Try to define a simple aircraft manually
  • It is possible to see and export results (data and figures)

Engine Performance Module

CEASIOMpy already includes modules for most of the "fundamental disciplines" in aircraft design like aerodynamics, flight mechanics, structures (in progress), etc. However, one important, basic part is still missing, namely a module for engine performance analyses.

It would be nice to add such a module. There are of course various aspects to consider, e.g.:

  • What should the input/output of the module be?
  • What paths does CPACS provide regarding engine data?
  • How do we integrate an engine module with the other existing modules? In particular, how does the additional engine data affect, for instance, the fight mechanics module?
  • Can we build upon previous models? Does SDSA [1] have any engine models?

[1] https://www.meil.pw.edu.pl/add/ADD/Teaching/Software/SDSA

Related keywords: Rubber engine
This issues is created on behalf of Prof. Arthur Rizzi.

Cannot start Workflowcreator GUI

Hi,

the following message appears:

(base) D:\CEASIOMpy\ceasiompy\WorkflowCreator>python workflowcreator.py -gui
Traceback (most recent call last):
File "workflowcreator.py", line 32, in
import ceasiompy.utils.workflowfunctions as wkf
File "d:\ceasiom\ceasiompy\ceasiompy\utils\workflowfunctions.py", line 29, in
import ceasiompy.utils.moduleinterfaces as mi
File "d:\ceasiom\ceasiompy\ceasiompy\utils\moduleinterfaces.py", line 30, in
import ceasiompy.utils.cpacsfunctions as cpsf
File "d:\ceasiom\ceasiompy\ceasiompy\utils\cpacsfunctions.py", line 35, in
import tixi3.tixi3wrapper as tixi3wrapper
ModuleNotFoundError: No module named 'tixi3'

Any advice is appreciated.
Thanks

Optimisation module fails to run

While trying to follow the steps for Test Case 4 : Optimizing the CL I am encountring some errors with optimsation module. Once the work flow is created in the Optim tab by adding "Weight Conventional" and "PyTornado" modules and giving the D150.xml file as input, I encounter the following error

INFO     - ----- Start of workflowcreator.py -----
INFO     - TIXI handle has been created./home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/WorkflowCreator/ToolInput/ToolInput.xml
ERROR    - /cpacs/toolspecific/CEASIOMpy/filesPath/wkdirPath cannot be found in the CPACS file
INFO     - Default value will be used instead
INFO     - Child "filesPath" has been added to branch "/cpacs/toolspecific/CEASIOMpy"
INFO     - Default value has been added to the cpacs file at: /cpacs/toolspecific/CEASIOMpy/filesPath/wkdirPath
INFO     -  NEW WKDIR 
INFO     - /home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/WKDIR/CEASIOMpy_Run_2021-07-28_18-05-04
INFO     - Output CPACS file has been saved at: /home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/WorkflowCreator/ToolInput/ToolInput.xml
INFO     - TIXI Handle has been closed.
INFO     - Copy CPACS from:/home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/WorkflowCreator/ToolInput/ToolInput.xml
INFO     - Copy CPACS to:/home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/Optimisation/ToolInput/ToolInput.xml
INFO     - TIXI handle has been created./home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/Optimisation/ToolInput/ToolInput.xml
INFO     - Value found at /cpacs/toolspecific/CEASIOMpy/filesPath/wkdirPath, default value will not be used
INFO     - Child "optimPath" has been added to branch "/cpacs/toolspecific/CEASIOMpy/filesPath"
INFO     - Output CPACS file has been saved at: /home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/Optimisation/ToolInput/ToolInput.xml
INFO     - TIXI Handle has been closed.
INFO     - Launching initialization workflow
INFO     - Copy CPACS from:/home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/Optimisation/ToolInput/ToolInput.xml
INFO     - Copy CPACS to:/home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/WeightConventional/ToolInput/ToolInput.xml
INFO     - The following modules will be executed: 
INFO     - Optimisation
INFO     - WeightConventional
INFO     - PyTornado
INFO     - ######################################################################################
INFO     - Run module: Optimisation
INFO     - ######################################################################################
INFO     - Going to /home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/Optimisation

INFO     - ----- Start of optimisation.py -----
INFO     - Impose the aeromap of the optimisation to all other modules
INFO     - TIXI handle has been created./home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/Optimisation/ToolInput/ToolInput.xml
ERROR    - /cpacs/toolspecific/CEASIOMpy/Optimisation/aeroMapUID cannot be found in the CPACS file
Traceback (most recent call last):
  File "optimisation.py", line 600, in <module>
    am_uid = cpsf.get_value(tixi, opf.OPTIM_XPATH+'aeroMapUID')
  File "/home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/utils/cpacsfunctions.py", line 363, in get_value
    raise ValueError(xpath + ' cannot be found in the CPACS file')
ValueError: /cpacs/toolspecific/CEASIOMpy/Optimisation/aeroMapUID cannot be found in the CPACS file

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "optimisation.py", line 602, in <module>
    raise ValueError('No aeromap found in the file')
ValueError: No aeromap found in the file
Traceback (most recent call last):
  File "workflowcreator.py", line 443, in <module>
    run_workflow(Opt)
  File "workflowcreator.py", line 344, in run_workflow
    routine_launcher(Opt)
  File "/home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/Optimisation/optimisation.py", line 568, in routine_launcher
    opf.first_run(Rt)
  File "/home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/Optimisation/func/optimfunctions.py", line 158, in first_run
    wkf.run_subworkflow(Rt.modules)
  File "/home/okulo/Desktop/Software/CEASIOMpy/ceasiompy/utils/workflowfunctions.py", line 146, in run_subworkflow
    raise ValueError('An error ocured in the module '+ module)
ValueError: An error ocured in the module Optimisation

I am using CEASIOMpy on Ubuntu 20.04 installed to a venv on miniconda. What inputs do I need to give for the Optimisation loop? do I give the D150.xml file as an input or should I give some other file as an input? Please help me sort this issue out.

Thank you

Surrogate modules must be refactored

Module Concerned

Those modules shared some common functions.

  • SMTrain
  • SMUse

Task to do

  • Update to latest version of SMT
  • Modif the code to accept only one output by surrogate
  • Add tests functions
  • Save results in the Working directory
  • Check that modules works in workflow (also with Optim and DoE)

Getting Started page needs polishing

I am trying to work through the Getting Started page. There are a number of improvement that can be made here.

  • It would be really good to provide at least one example CPACS aircraft file which will work with the instructions. A download link for such a file could be included directly on the page.
  • If an example CPACS file is provided, it would be good to have a test case for the suggested workflows. I have tested the first two workflows which are mentioned. Both results in an error for me (one has an error in the WeightConventional module and the other in the PyTornado module).
  • The page also needs to be updated in general. There are a number of TODOs still.

Let me know if I can help out with some parts of this.

Update and improve documenation

To simplify the writing, updating and the understanding of CEASIOMpy documentation, it has been decided to write it only as Markdown file in the Gihhub repo with correct links and references.
The ReadTheDocs will be remove, it became a bit to complex to maintain a mix of RST and MD file

TODO:

  • Re-write the README in MD
  • How to contribute page should be sync with CONTRIBUTING.md
  • Installation link to README
  • Update test case examples
    • Test case 1
    • Test case 2
    • Test case 3
    • Test case 4
    • Test case 5
  • Move documentation of each module in the module directory
  • Add explanation for __specs__.py
  • Save the libpng12 file and other documents (like pfd's) in a new documents folder at the root of CEASIOMpy
  • Check that all the info from the old doc has been include.
  • Remove old doc
  • Remove dependencies for the doc from environment.yml
  • Remove ReadTheDoc building
  • Remove link to the doc from Github
  • Remove doc Badge from README
  • Remove link to the doc from CEASIOMpy website

Create SU2SetBC module

Create a module to set the boundary condition of SU2 mesh. The module should be used as follow:

  graph LR;
      CPACS-->CPACS2GMSH;
      CPACS2GMSH-->SU2SetBC
      SU2SetBC-->SU2Run;
  graph LR;
      CPACS-->CPACS2SUMO;
      CPACS2SUMO-->SU2AutoMesh;
      SU2AutoMesh-->SU2SetBC
      SU2SetBC-->SU2Run;

It should be possible to set engine BC with this module (inlet/outlet pressure, temp, etc)

SUMOAutoMesh Error

INFO - TIXI Handle has been closed.
INFO - Your OS is Linux
INFO - Your OS is Linux
INFO - sumo is intalled at: /usr/bin/sumo
Using 4 threads.
"/home/show/SUMO/sumo-2.7.9/lib"
"/home/show/SUMO/sumo-2.7.9/bin"
Batch mode active, writing log to '/home/show/CEASIOMpy/ceasiompy/WKDIR/CEASIOMpy_Run_2020-07-21_19-43-51/SUMO/ToolOutput_sumolog.txt'
INFO - Value found at /cpacs/header/name, default value will not be used
INFO - The name of the aircraft is : D150
Traceback (most recent call last):
File "sumoautomesh.py", line 330, in
create_SU2_mesh(cpacs_path,cpacs_out_path)
File "sumoautomesh.py", line 303, in create_SU2_mesh
shutil.copyfile(su2_mesh_path, su2_mesh_new_path)
File "/home/show/anaconda3/envs/ceasiompy/lib/python3.7/shutil.py", line 120, in copyfile
with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/home/show/CEASIOMpy/ceasiompy/WKDIR/CEASIOMpy_Run_2020-07-21_19-43-51/SUMO/ToolOutput.su2'
Traceback (most recent call last):
File "workflowcreator.py", line 336, in
wkf.run_subworkflow(Opt.module_pre, Opt.cpacs_path)
File "/home/show/CEASIOMpy/ceasiompy/utils/workflowfunctions.py", line 147, in run_subworkflow
raise ValueError('An error ocured in the module '+ module)
ValueError: An error ocured in the module SUMOAutoMesh

I'm getting an error when I am running SUMOAutoMesh.

Weight&Balance modules must be refactored

Module Concerned

Those modules shared some common functions.

  • WeightConventional
  • WeightUnconventional
  • BalanceConventional
  • BalanceUncventional
  • Range

Task to do

  • Simplify code when possible
  • Rename variable to make them more explicit
  • Use common functions an classes
  • Save results in the Working directory
  • If #148 has been done, add these module to the automatic reporting
  • Add unit tests
  • Add integration tests
  • Add README.md file for each module
  • Add test cases with these modules
  • Check that modules works in workflow (also with Optim and DoE)

Error in Test Case 2 : Aerodynamic database with PyTornado

Module Concerned
CPACSCreator

Describe the bug
Traceback (most recent call last):
File "cpacscreatorrun.py", line 141, in
launch_cpacscreator(cpacs_path,cpacs_out_path)
File "cpacscreatorrun.py", line 80, in launch_cpacscreator
raise RuntimeError('"CPACSCreator" is not install on your computer or you are not running this script from your Conda environment!')
RuntimeError: "CPACSCreator" is not install on your computer or you are not running this script from your Conda environment!
Traceback (most recent call last):
File "workflowcreator.py", line 443, in
run_workflow(Opt)
File "workflowcreator.py", line 330, in run_workflow
wkf.run_subworkflow(Opt.module_pre, Opt.cpacs_path)
File "c:\users\danie\downloads\ceasiompy\ceasiompy\utils\workflowfunctions.py", line 146, in run_subworkflow
raise ValueError('An error ocured in the module '+ module)
ValueError: An error ocured in the module CPACSCreator

Expected behavior
I think that I have installed the CPACSCreator

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS/Distribution: Windows
  • Python version [e.g. 3.6]
  • CEASIOMpy version [e.g. 0.1.1]

Additional context
Add any other context about the problem here.

Create a Paraview module

This module will be used in workflow after SU2Run and should be able to perform two main task:

  • Open Paraview with pre-define layers, slices, stream tracers, ...
  • Save some screenshots (if possible also without opening paraview) in the workflow results folder

SU2RUN Module error

Module Concerned
SU2RUN

Describe the bug
Hello,

while running Test case 3, everything went well till the SU2_CFD start time as shown in the text :

**INFO - >>> SU2_CFD Start Time
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0
[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=1
:
system msg for write_line failure : Bad file descriptor

Primary job terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.


mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:

Process name: [[25663,1],0]
Exit code: 1

INFO - >>> SU2_CFD End Time
INFO - TIXI handle has been created./home/mohannad/CEASIOMpy/ceasiompy/SU2Run/ToolInput/ToolInput.xml
WARNING - No value has been found for the wetted area!
INFO - Value found at /cpacs/toolspecific/CEASIOMpy/aerodynamics/su2/results/extractLoads, default value will not be used
INFO - The aeroMap to check as been found
INFO - Value found at /cpacs/vehicles/aircraft/model/analyses/aeroPerformance/aeroMap[2]/name, default value will not be used
INFO - Value found at /cpacs/vehicles/aircraft/model/analyses/aeroPerformance/aeroMap[2]/description, default value will not be used
INFO - Value found at /cpacs/vehicles/aircraft/model/analyses/aeroPerformance/aeroMap[2]/boundaryConditions/atmosphericModel, default value will not be used
WARNING - No /cl values have been found in the CPACS file
WARNING - An empty list will be returned.
WARNING - No /cd values have been found in the CPACS file
WARNING - An empty list will be returned.
WARNING - No /cs values have been found in the CPACS file
WARNING - An empty list will be returned.
WARNING - No /cml values have been found in the CPACS file
WARNING - An empty list will be returned.
WARNING - No /cmd values have been found in the CPACS file
WARNING - An empty list will be returned.
WARNING - No /cms values have been found in the CPACS file
WARNING - An empty list will be returned.
Traceback (most recent call last):
File "su2run.py", line 217, in
get_su2_results(cpacs_path,cpacs_out_path,wkdir)INFO - >>> SU2_CFD Start Time
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0
[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=1
:
system msg for write_line failure : Bad file descriptor

Primary job terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.


mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:

Process name: [[25663,1],0]
Exit code: 1

INFO - >>> SU2_CFD End Time
INFO - TIXI handle has been created./home/mohannad/CEASIOMpy/ceasiompy/SU2Run/ToolInput/ToolInput.xml
WARNING - No value has been found for the wetted area!
INFO - Value found at /cpacs/toolspecific/CEASIOMpy/aerodynamics/su2/results/extractLoads, default value will not be used
INFO - The aeroMap to check as been found
INFO - Value found at /cpacs/vehicles/aircraft/model/analyses/aeroPerformance/aeroMap[2]/name, default value will not be used
INFO - Value found at /cpacs/vehicles/aircraft/model/analyses/aeroPerformance/aeroMap[2]/description, default value will not be used
INFO - Value found at /cpacs/vehicles/aircraft/model/analyses/aeroPerformance/aeroMap[2]/boundaryConditions/atmosphericModel, default value will not be used
WARNING - No /cl values have been found in the CPACS file
WARNING - An empty list will be returned.
WARNING - No /cd values have been found in the CPACS file
WARNING - An empty list will be returned.
WARNING - No /cs values have been found in the CPACS file
WARNING - An empty list will be returned.
WARNING - No /cml values have been found in the CPACS file
WARNING - An empty list will be returned.
WARNING - No /cmd values have been found in the CPACS file
WARNING - An empty list will be returned.
File "/home/mohannad/CEASIOMpy/ceasiompy/SU2Run/func/su2results.py", line 203, in get_su2_results
raise OSError('No result force file have been found!')
OSError: No result force file have been found!
Traceback (most recent call last):
File "workflowcreator.py", line 443, in
run_workflow(Opt)
File "workflowcreator.py", line 330, in run_workflow
wkf.run_subworkflow(Opt.module_pre, Opt.cpacs_path)
File "/home/mohannad/CEASIOMpy/ceasiompy/utils/workflowfunctions.py", line 146, in run_subworkflow
raise ValueError('An error ocured in the module '+ module)
ValueError: An error ocured in the module SU2Run**

any suggestions please ????

Desktop (please complete the following information):**

  • OS/Distribution: Ubuntu 20.04.3
  • Python version: 3.7.12
  • CEASIOMpy version [0.1.1]

Additional context
Add any other context about the problem here.

Save all common paths in on file and use Pathlib everywhere

Paths that refer to some CEASIOMpy directory should be save in one file (e.g /ceasiompy/utils/path.py) and imported when needed, it will be easier to update in the future. Also pahtlib should be used.

It concerns:

CEASIOMPY_PATH = Path(ceasiompy.__init__.__file__).parents[1]
MODULES_DIR_PATH = Path(ceasiompy.__init__.__file__).parent
TEST_FILE_PATH = Path(CEASIOMPY_PATH, "test_files", "CPACSfiles")
TEST_CASES_PATH = Path(CEASIOMPY_PATH, "test_cases")

Detect SU2 version to use the correct config file

Generally when SU2 change in version there are some modification in the default configuration file. It would be good to have either:

  • Several available config file from the 3-4 latest version
  • Get automatically online the config file corresponding to the install version of SU2

Stability modules must be refactored

Module Concerned

Those modules shared some common functions.

  • StabilityStatic
  • StabilityDynamic (not really working, should be improved or removed for now)

Task to do

  • Remove Stability Dynamic module
  • Implement some basic static stability function directly in cpacspy
  • Simplify code and use cpacspy function in it
  • Add tests functions
  • Save results in the Result directory
  • Add a README.md to this modules

Error handling in SU2Run

Currently the SU2 module (SU2Run) directly calls the SU2 executable files using os.system() (see the file ceasiompy/SU2Run/su2run.py). We have to call 1st SU2_DEF (opt.), 2nd SU2_CFD and 3rd SU2_SOL. However, we do not currently check if any of the calls fail...

Suggestion 1) The Python standard library recommends to use subprocess.run() instead of os.system(). (see https://docs.python.org/3.7/library/subprocess.html). At least on my system (Ubuntu 18.04) and with SU2 (6.2.0) non-zero return codes are produced if an error occurred. I.e. we can try to exit early if, say, the first SU2 call failed. (*)

(*) I know, there is already a comment for this in the su2run.py file :)

Suggestion 2) Does SU2 provide a Python API to call functionality from SU2_DEF, SU2_CFD and SU2_SOL? If so, we could perhaps try to use the Python API instead, as error handling etc. would probably be easier/cleaner.

I am not familiar with any SU2 Python APIs (i.e. I cannot help with suggestion 2), but I could help with suggestion 1.

Minor issues with WorkFlowCreator module

Module Concerned
I am testing the Getting started example with the WorkFlowCreator.

Describe the bug
When I run the workflowcreator.py as described, I get the following error:

(ceasiompy) ... $ python3 workflowcreator.py -gui
Unable to import mpi4py. Parallel processing unavailable.
INFO     - ----- Start of workflowcreator.py -----
Traceback (most recent call last):
  File "workflowcreator.py", line 298, in <module>
    Opt = create_wf_gui()
  File "workflowcreator.py", line 267, in create_wf_gui
    my_gui = WorkFlowGUI()
  File "workflowcreator.py", line 216, in __init__
    self.TabPre = Tab(self, 'Pre')
  File "workflowcreator.py", line 83, in __init__
    self.modules_list.remove('WKDIR')
ValueError: list.remove(x): x not in list

(I noted that the first warning Unable to import mpi4py. Parallel processing unavailable. is not critical, and not part of the error here). Line 83 is causes the issue. In my case, I could resolve it with commenting out the line.

Also, at first, when I tried to run this script, I forgot to add the -gui argument. This also resulted in an error. Perhaps, a "nicer" error behaviour could be implemented!? Currently, it looks like this:

(ceasiompy) ... $ python3 workflowcreator.py
Unable to import mpi4py. Parallel processing unavailable.
INFO     - ----- Start of workflowcreator.py -----
Traceback (most recent call last):
  File "workflowcreator.py", line 318, in <module>
    shutil.copy(Opt.cpacs_path, cpacs_path)
  File "... .miniconda3/envs/ceasiompy/lib/python3.6/shutil.py", line 245, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "... .miniconda3/envs/ceasiompy/lib/python3.6/shutil.py", line 120, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: ''

Desktop (please complete the following information):

  • OS/Distribution: Ubuntu 20.04
  • Python version: 3.6.10
  • CEASIOMpy version: 0.0.1

Pip install fails

pip install -e . fails during the CEASIOMpy installation.

       File "C:\XXX\miniconda3\envs\ceasiompy\lib\distutils\util.py", line 127, in convert_path
    raise ValueError("path '%s' cannot end with '/'" % pathname)
ValueError: path './' cannot end with '/'
----------------------------------------

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

OS: Windows 10, python 3.7 in Miniconda 3

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.