hbrs-cse/treeopt

Discuss user interface

Closed this issue · 1 comments

We should discuss the user interface, i.e. how would a user use the software? How does his/her workflow look like? Off the top of my head, here are some requirements:

A user needs to

  • Be able to flexibly define objective and constraint functions that can include external system calls to other simulation software, that will be used as a black box.
  • ideally, be able to start simulations on a cluster and assign MPI nodes to the simulation code one day. This should not be our highest priority, but something to keep in mind for later.
  • choose different combinations of optimization algorithms, analysis tools and surrogate models from a list of available algorithms and indiviudally set their meta-parameters
  • be able to evaulate the results with some post-processing features, such as convergence plots, sensitivity information, visualization of surrogate models etc.

For a start, I suggest to implement the software in such a way, that it can be used as a python library. E.g the user writes a script my_treeopt_analysis.py with an import treeopt and executes python my_treeopt_analysis.py from a command line.

What is the module structure and what are the function names/signatures that the user uses?

It probably also makes sense to be able to run analysis from a CLI interface, but this is also something to keep in mind for later.

Outdated