I’ve been exploring GEMSEO lately and really want to start introducing it in engineering projects I work in, but one of the pain points I’ve come across is that a lot of “boilerplate” code is needed in order to configure the study (variable names, grammars, defaults, constraints, etc). This also makes maintaining consistency tricky whenever iterating on the study design.
Is anyone aware of any open-source efforts in setting up auto-code for this kind of thing? It seems to me like it would also be an enabler for integrating GEMSEO with an external technical parameter database (such as an MBSE model).
For the first part of your post you can have a look at the GEMSEO study tool. It allows you to create the xDSM and N2 diagrams of an MDO process without coding the disciplines themselves. This is a good way of prototyping in the early stages of a project and allows you to explore different formulations, adding or removing disciplines, changing constraints, objectives, etc. However, it does not create the code for you, it only shows a preview of how the workflow and dataflow.
You can either use it via the command line in an environment where GEMSEO is installed, providing the details of the scenario in a spread sheet. Or using the web interface.
I am not aware of any existing project to generate the code automatically, but I see how it could be useful.
Could you be more specific when you refer to ‘code generation’? Is it code generation per se, meaning that you have at the end some code generation from an input (yaml, JSON, SysMLv2, you name it…) that would be executed later on? Or is it some logic that creates on the fly GEMSEO objects, again based on a input?
I did indeed mean code generation, as in producing JSON files with input and output grammars for each discipline, CSV file with the design space, etc. Construction of GEMSEO objects directly in memory could of course work as well, though since there are input file formats defined for a lot of things, that’s where my thoughts went first.
Additionally I was thinking that if the initial setup of a GEMSEO study (and maintenance, e.g., when changing variable names or the I/O of disciplines) was made trivially simple, then it may lower the barrier to entry for those currently not using any MDAO frameworks in their work.
For context: I’m trying to figure out how best to integrate GEMSEO into existing engineering environments, and particularly how to allow some external data source to be the single source of truth for parameter names and values, design space, constraints, discipline defaults and in/out, and maybe even what disciplines or sub-scenarios compose the main scenario. As I see it, this would ideally be done without hiding GEMSEO from the end user behind a wrapper which would inevitably fail to expose the library’s full functionality.
Since it sounds like this isn’t anything which currently exists, I might take a shot at making something myself. Any thoughts or suggestions you might have are very welcome!
I would not say that nothing exists, as we have several projects on MBSE to MDAO link, and the best solution certainly depends a lot on your constraints, and on technological choices on the MBSE side. Maybe we could arrange a meeting to discuss it ?