Depends on !4318 (merged).
Many thanks to @bilke for assistance with library dependencies, testing and CI pipelines!
This MR enables the use of Python BCs and STs from OGS's Python wheels. This is a small step towards making OGS easy to use from Python, albeit a small step involving many changes.
What had to be changed?
- Ironically, not linking to Python libs in the Python wheel build
- Therefore, we cannot compile OGS as an executable in the wheel build. OGS will be used via @TomFischer's
- Accordingly, the embedded
OpenGeoSysmodule for BCs/STs does not exist. Python BCs/STs have to use the new
ogs.callbacksmodule, which has the same functionality, as a drop-in replacement.
- The global project directory variable has to be cleared after each OGS simulation.
- The global matrix and vector provider has to be cleared rather than destroyed.
- The TCLAP command line parser must not exit the application but report the wish to exit (due to error or
--help/--versionflag) in another way.
- Run the entire ctest test suite for the wheel builds.
- Getting rid of the global project directory variable.
- Making the
ogs.simulatormodule more robust. Currently it's very easy to get segfaults if you forget to check the status codes of that modules' functions.
- Removing the global matrix and vector provider, thereby enabling multithreaded OGS invokations from Python
- Add documentation to the user guide once the
ogs.simulatormodule has been made more robust.
Feature description was added to the changelog
Tests covering your feature were added?