-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat instrument catalyst #3459
Open
CharlesGueunet
wants to merge
31
commits into
GEOS-DEV:develop
Choose a base branch
from
CharlesGueunet:feat-instrument-catalyst
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Feat instrument catalyst #3459
CharlesGueunet
wants to merge
31
commits into
GEOS-DEV:develop
from
CharlesGueunet:feat-instrument-catalyst
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit introduces a new output class for running in-situ co-processing using the catalyst API. It also introduces a new `Catalyst` module in the fileIO folder with specific code for dealing with `conduit` collisions.
This commit onward should be compatible with `thirdPartyLibrary` commit acf1e3836ec1cc89996222fabe9458f1a56c1f52 and onward
…austy/GEOSX into feat-instrument-catalyst
Add fieldNames option to catalyst output
7 tasks
@CharlesGueunet Please migrate the description from #2250 into this PR |
Done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request should enable GEOS to perform in-situ and in-transit (co-/post-)processing using the catalyst library and notably its newest implementation based on ADIOS2.
A little about the catalyst library
Catalyst is an API specification developed for simulations (and other scientific data producers) to analyze and visualize data in situ.
The Catalyst API uses ‘C’ and is binary compatible with different implementations of the API making it easier to change the implementation at runtime.
Relationship with ParaView: Starting with 5.9, ParaView releases come with an implementation of the Catalyst API. This implementation can be used in lieu of the stub to analyze and visualize simulation results using ParaView’s data-processing and visualization capabilities
Development Steps
Add new dependencies into thirdPartyLibs repository:
GEOS-DEV/thirdPartyLibs#214
Changes:
When trying to input the
conduit::Node
used by GEOS into theconduit_cpp::Node
needed by catalyst we run into an incompatibility between the two conduit libraries which cannot coexist in the same translation unit. As of now and to my knowledge, catalyst does not have any ready-made solution for this type of collision with simulation codes.This has been remedied in GEOS with a facade design pattern in the Catalyst folder.
VTK compatibility with ParaView's Catalyst implementation
When trying to use the paraview implementation of catalyst (which can be found here: ParaViewCatalyst) there is a dlopen performed at runtime on the shared library where the implementation is compiled. This shared library has a dependence on the VTK that gets compiled with ParaView. However, when the program goes looking for VTK objects it finds the symbols in the native GEOS-VTK library before the ParaView VTK. This leads to crashes due to the version differences between the two loaded VTKs.
This has been soloved by mangling GEOS's VTK version to avoid collisions.