Giter VIP home page Giter VIP logo

whatsopt's Introduction

Tests Documentation Status Coverage Status Codacy Badge WhatsOpt/dashboard?utm_source=github.com&utm_medium=referral&utm_content=OneraHub/WhatsOpt&utm_campaign=Badge_Grade) License: AGPL v3

WhatsOpt WhatsOpt

WhatsOpt is a Ruby on Rails web application allowing to define and share multi-disciplinary analyses in terms of disciplines and data exchange. It was developed to support overall vehicle design activities at ONERA.

From this high-level modeling, users can generate source code skeleton required to plug the actual implementation of their disciplines and get an actual executable model of the vehicle concept under study. Users can also generate code to run numerical methods such as sensitivity analysis, design of experiments, metamodel construction and optimizations.

User resources

Developper resources

Citation

If you happen to find WhatsOpt useful for your research, it will be appreciated if you cite us with:

Lafage, R., Defoort, S., & Lefebvre, T. (2019). WhatsOpt: a web application for multidisciplinary design analysis and optimization. In AIAA Aviation 2019 Forum (p. 2990).

or if you use Bibtex, you can use the following entry:

@inproceedings{lafage2019whatsopt,
  title={WhatsOpt: a web application for multidisciplinary design analysis and optimization},
  doi={10.2514/6.2019-2990},
  url={https://doi.org/10.2514/6.2019-2990}
  author={Lafage, R{\'e}mi and Defoort, Sebastien and Lefebvre, Thierry},
  booktitle={AIAA Aviation 2019 Forum},
  pages={2990},
  year={2019}
}

Contact

WhatsOpt was created by Rémi Lafage for and thanks to the MDO and Integrated Concepts team at ONERA, the French Aerospace Lab.

Contact: remi [dot] lafage [at] onera [dot] fr

whatsopt's People

Contributors

colaspinson avatar dependabot[bot] avatar relf avatar sverley 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

Watchers

 avatar  avatar  avatar  avatar  avatar

whatsopt's Issues

Optimization removal

Given I've a list of optimizations
When I select one or several optimizations, and ask for deletion
Then selected optimizations are removed and I see feedback on the list

Optimization UI improvements

  • Enable sharing the optimization problem to other people (e.g. for inspection or feedback)
  • Allow removing or stopping/killing of optimization problems
  • Improve insight in infill points generated by the optimizer
    • Display infilled points in a different color in the plots
    • Highlight hovered points in all points (e.g. I'm hovering over a point in one of the scatter plots --> I want to see the same point highlighted in the other plots)
  • Better documentation of optimizer settings

Search analysis feature

With the number of analyses increasing and the pagination of the analyses list, there is a need for a searching feature.
Typically the user should be able to input some substring which will be matched against at least the id/name of the analysis or the name of the owner or a tag

MetaModeling REST API: metamodel spec retrieval

In order to allow the proper automated usage of metamodels through the REST API, the user should be able to retrieve information about meta models through the REST API:

  • list of available metamodels: ids
  • for a metamodel, the input and output dimensions and information about the columns (variable names)

Optimization context creation

Given I've access to the list of optimizations
When I ask for an optimization with given parameters: optimizer type, xtypes, options, ...
Then an optimization is created in 'pending' status is added to the list

Optimization plotting

Given I've an optimization with points,
When I am on the optimization list and click on the given optimization,
Then I get to the detailed information page where I see plots of optimization data

Optimization data export

Given I've an optimization
When I am on the detailed information page
Then I can get data from optimization in a csv format datafile.

GUI: Variable table: order is reset after each modification

The variable table can be ordered according to any column, in ascending and descending order. And that is very useful when having a lot of variables.

Nevertheless, during edition, modifying any field (role, lower/upper value...) resets immediately the order to default, which can be a bit annoying 😅.

Optimization limit

Given I've made 20 optimizations,
When I create an Optimization
Then I get an error message 'Too many optimizations' and an information on how to solve the problem

CI Maintainance

Should move from travis and use Github Actions to run CI tests.

Test broken with openturns 1.21

> rails test test/lib/whats_opt/surrogate_proxy_test.rb:38
Failure:
SurrogateProxyTest#test_should_get_sobol_indices_with_openturns_surrogate [/home/rlafage/workspace/WhatsOpt/test/lib/whats_opt/surrogate_proxy_test.rb:46]:
Expected: [1.0]
  Actual: [0.0]

Lack of documentation

Should add documentation related to:

  • architecture: main components, mechanism, API interfaces, GUI
  • administration: user creation, authentication, authorization
  • ...

Optimizer log

Given I've a terminated an optimization,
When I ask for the log of the run
Then I get a text file with the traces of the optimizer run

Generated code: duplication of create_*() methods

Considering the analysis Foo with the Bar discipline, in the code that WhatsOpt 1.14.3 generates, we have:

class FooBase(Group):
    ...
    def create_bar(self):
        return Bar()

and

class FooFactoryBase(object):
    ...
    def create_bar(self):
        return Bar()

Therefore, one that would want to overload create_bar() should do it twice, in Foo and FooFactory, which is not DRY.

PEP8 compliancy

Generated python files doesn't respect totally the PEP8 recommendations. Since WOP use a code generator, it should be great to have PEP8 compliant files in order to promote the PEP8.

Optimization execution

Given I've an optimization in 'pending' status
When I ask for running it
Then the optimization is started in 'running' status and I see the optimization progress (nb iterations)

Optimization creation info

Given I've made no optimization,
When I browse the Optimizations page
Then I see an information message (links to optimization tutorial, optimization REST API)

run_doe.py does not initialize values

Unlike other generated run_*.py files, run_doe.py, generated by WhatsOpt 1.14.3, does not have a line with initialize(pb) after the problem setup.

Optimizations list

Given I've made optimizations through wop Python API
When I click on Optimizations item on WhatsOpt navbar
Then I see the list of my optimizations: id, status, creation date, number of points

Conflict filenames between analysis and disciplinary

When you creates an analysis with a disciplinary with the same name, the generated code doesn't provide the disciplinary file since it should have the same name than the analysis.

I suggest to export filenames with suffix for one of analysis or disciplinary files.

Generated code: specification of units

Hello,
in generated code for OpenMDAO, I would greatly appreciate if units could be specified in following methods:

  • set_input_defaults()
  • add_design_var()
  • add_objective()
  • add_constraint()

Generated code: removing creation of IndepVarComp

In the setup() of the problem.model, WhatsOpt creates an IndepVarComp instance to fill problem inputs.

Such IndepVarComp is no more needed since OpenMDAO 3.2.

And in some cases (that indeed do not fully respect the convention to have all variables promoted), WhatsOpt may wrongly identify a variable as an input, needed in the IVC.

Therefore I kindly suggest to remove this IndepVarComp from the generated code.

Optimizations comparison

Given I 've several optimizations
When I select at least two optimizations and click 'Plot'
Then I see a plot comparison with data from the selected optimizations

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.