Giter VIP home page Giter VIP logo

openlego's Introduction

OpenLEGO

Codacy Badge

Welcome to the Git repo of OpenLEGO!

OpenLEGO stands for "Open-source Link between AGILE and OpenMDAO", which is just what it does. It links together two major efforts in the field of Multidisciplinary Design Analysis and Optimization (MDAO) which are both aming to make MDAO more readily applicable in the engineering industry.

Outline

OpenLEGO enables to user to combine the strengths of KADMOS and OpenMDAO. By using OpenLEGO the user can manipulate MDAO problems from a high, abstract level using KADMOS and then automatically generate and run an OpenMDAO problem from it.

Installation

The OpenLEGO package can be installed using the setup.py file provided in the root of this repo. Any required packages should automatically be installed alongside it.

The following packages are required by OpenLEGO:

OpenLEGO is also on PyPi, so it can also be installed simply using pip install openlego.

Usage

Check out the test cases in the openlego.test_suite.test_examples package included in this repo test get an idea of how OpenLEGO can be used.

Credits

OpenLEGO was originally developed by Daniël de Vries as part of his MSc thesis at the TU Delft. Feel free to post any feedback on the code, suggestions for new features, and general ideas.

openlego's People

Contributors

codacy-badger avatar daniel-de-vries avatar danieldevriesdarcorp avatar jbussemaker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

openlego's Issues

Partials are not working anymore for SSBJ case

The update from 1.3.4 to 1.3.5 has broken all the test of the SSBJ case. Note that version 0.1.6 of the ssbjkadmos package is required to test this.

I will add more information later.

Update existing MDF and IDF implementation

These architectures need some minor updates, such as:

  • Inclusion of mathematical functions and testing for correct behaviour.
  • Take the function order not from the problemFormulation element in CMDOWS, but from a (to be created) element in the workflow.

AbstractDiscipline deploy failing

Tested with Anaconda Python 3.6.

When running the Sellar test problem, the AbstractDiscipline deploy function is failing because the XML files are opened in w-mode while the etree.tostring methods as used by the Sellar problem disciplines are returning byte arrays.

The reason for this is a well-known Python bug (or can we call it a feature?):
https://bugs.python.org/issue10942
https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostring

Suggest to resolve it by writing a new XML-utils function that makes sure that the output of etree.tostring always is of string type.

List is unhashable

In the XMLComponent.read_partials_file function, the tuple key should just be that: a tuple. Currently it is a list, resulting in an "unhashable type: list" error.

Recorders are broken

With the new OpenMDAO version 2.3.0 the special recorders developed in OpenLEGO are not working anymore.

Add driver and other problem characteristics to OpenLEGO

At the moment OpenLEGO provides a LEGOmodel, but does not yet add the driver (optimizer, doe) to the model. A new module in OpenLEGO should take a LEGOmodel and be able to add the driver (and possibly some other options) to the model based on the specifications in the CMDOWS file.

Add SSBJ example to test cases

The SSBJ database has been used to create different MDO workflows (by Imco). This is a nice benchmark case for all packages involved (KADMOS, CMDOWS, OpenLEGO, OpenMDAO) and should be added to the OpenLEGO test cases.

Update expected and required files and knowledge base structure

Some changes to be incorporated:

  • The json file with info on the design competence is not required anymore.
  • A MDO workflow could be specified completely using a single CMDOWS file (in case only mathematical functions are used).
  • Therefore the knowledge base directory is optional.

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.