A stable input file for end-users? #1911
Replies: 3 comments 5 replies
-
@TotoGaz - This is interesting, thanks for putting it together! A couple of initial thoughts:
|
Beta Was this translation helpful? Give feedback.
-
@TotoGaz @cssherman would you agree that this translation layer would be easier to implement in Python than in C++? Perhaps it could be part of the preprocessing workflow, and would benefit simultaneously from other preprocessor features (parameters, units, symbolic math) so long as they are syntactically compatible with YAML? |
Beta Was this translation helpful? Give feedback.
-
Would it be worth having a fully typed configuration language like dhall ? (instead of yaml) |
Beta Was this translation helpful? Give feedback.
-
Hello there!
I've just posted PR #1910, which is not for merge but is here as a proof of concept (the code is 🙈).
experimental: true
options).What is done is quite straightforward as explained by the diagram
The idea is that the end user builds its input file in a way which is somehow unrelated to the GEOSX current
xmls
, but really related to what he wants to achieve.Then a module of GEOSX understands the needs and builds the appropriate tree representation. (Basically what this PR poorly does admittedly).
This "on-the-fly" tree representation can by design be on sync with GEOSX because shipped inside of GEOSX 🤷
(Who writes and maintains such a module is another discussion.)
For instance, I’ve been able to hack (there is some hard code) and run the following Laplace simulation.
Note that the tedious and unnecessary definitions of (some)
names
andevents
have been handled automatically by GEOSX. And when there is just one name (e.g. forregions
orFEM
), then it was possible to deduce it (I’m not sure it’s a good idea, but it’s possible).Also I've tried to provide more colorful sections.
This surely is a wasted attempt, but it may generate ideas.
At some moment, if an existing options is required but not production grade, we can intercept it and tell the user (e.g. kill the simulation unless the
--caution-thin-ice
options is entered explicitly 🤣 )Another example could be the way we do
TimeHistory
.while the meaningful information is
(I know that there are options that can be added here and there, but they can also be added in the
yaml
).I personally strongly believe that it’s more valuable to work on this module, in order to define stable inputs and only after provide GUI/IDE over something stable. This looks like the right order to me.
Any comments?
Beta Was this translation helpful? Give feedback.
All reactions