-
Notifications
You must be signed in to change notification settings - Fork 24
Description
From the point of view of the user only the model configuration and output should be considered. Everything else should remain under the hood.
The user-relevant parts are:
- the
*.configand*.parametersfiles inmodel/configuration/. - the chemical mechanism (
.fac) andcustomRateFuncs.f90(optional) which are pre-compiled into a shared library (mechanism.so). - the ``model/constraints/` directory.
- the ``model/output` directory.
The problem is with point 2, because the mechanism file needs to be converted and this generates a bunch of fortran files which do not need to be touched by the user but currently end up inside model/configuration/, which creates some confusion and potential errors.
There are several possible solutions to this:
- in previous versions all the auto-generated files were going to
src/orobj/, and the build script was pointed there to find them. Reverting to this solutions seems a step back, however, as it mixes user-created and source files. - the auto-generated files can be in
model/configuration/or inmodel/configuration/include/(the latter is the case after merging PR Set shared library directory #535). This also contains the shared library and it is implicit that for a given configuration the shared library is in the same directory as the.configfiles. This is tidier, but means that some of the files inmodel/configuration/are not supposed to be edited by the user. - there could be a
model/include/directory where the auto-generated files are stored. The shared library andcustomRateFuncs.f90remain inmodel/configuration/and the content ofmodel/include/is all considered just temp files. - there could be a
model/mechanism/directory where the.facfile,customRateFuncs.f90and the shared library are stored, together with the temporary auto-generated fortran files.
Solutions 3 and 4 are the cleanest in my mind, but require reintroducing a 4th argument to the build script and re-introduce the --shared_lib flag (it still exists, but the user can't change the value from the default). The executable arguments should not be affected otherwise. Also, I am not sure if solution 4 would still create issue with the AtChem-tools (see AtChem/AtChem-tools#4).
It would be good to have some input from users, what are their preferences and how it would affect their workflow: @AlfredMayhew @willdrysdale @bsn502.