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.
I worked this draft out together with vector_calculus class but opening a separete PR. My intention is to finalise vector_calculus PR first and then work on this one. Opening a draft PR now so that we can discuss.
Initially I considered passing a case class to the solver class as an argument as we discussed in our hackaton last month, but it didn't work well because case specific postprocessing requires access to some of the vector calculus operations. These vector calculus operations require operators (tdsops instances), and we instantiate them inside the solver class. So ended up drafting this as a starting point where we have a case class that contains solver. This way we have access to tdsops instances solver class defines and can use them with postprocessing.
Alternative would be instantiating tdsops instances in the case class but I don't think its a good idea because solver needs them for example in
transeq
and the FFT based Poisson solver needs them for the modified wavenumber stuff.As this is suggesting a structural change in the codebase we should discuss this carefully considering the future support we want to add in x3d2 and think about alternative approaches.