Waveform interpolation, read direction for parallel implicit coupling#1187
Conversation
* Reduced version of precice#1029 * Don't support serial implicit coupling due to more difficult data initializatio * Add tests/serial/time/implicit/parallel-coupling with experimental="True" * Add src/time/Waveform and tests * Allow to configure waveform order in read-data, if experimental="True" * Add experimental API function readScalarData accepting a relativeReadTime
uekerman
left a comment
There was a problem hiding this comment.
Looks good overall, "only" cosmetics, main concept is good to go 👍
I did not yet look at the integration tests.
-
There are still a few refactoring things in this PR, which could easily go into separate PRs. Would make this monster easier to skim 😁
Subcycling is not supported.
Actually, on the reading side, this should already be supported, no?
-
General concern: We should be careful to not further pollute
SolverInterfaceImpl(andsrc/precice/...in general). It is already now hard to skim. Please only introduce new member variables and functions here if really necessary. And please move whatever possible into the time package. -
You have not yet added the new API methods to the C and Fortran bindings. Please do here or open an issue such that we don't forget.
-
There is still a naming inconsistency: "waveform order" or "interpolation order"?
…rallel-implicit-read-direction
…implicit-read-direction
* Make configuration files valid by adding participants. * Also provide participant configuration. * Refactor tests w.r.t readability.
Co-authored-by: Benjamin Uekermann <[email protected]>
* Create couple-your-code-waveform.md * Documentation for new feature introduced in precice/precice#1187 Co-authored-by: Benjamin Uekermann <[email protected]>
* Use experimental API. Related to precice/precice#1187. * Add missing API functions and fix tests. * Remove API mathods that are removed in preCICE v3.0.0.
Main changes of this PR
This PR adds experimental support for zeroth and first order waveform interpolation for parallel implicit coupling schemes. Waveforms are only supported in read direction. This means that the user can sample the waveform, but preCICE will only create the waveform based on data at the beginning and at the end of the window. Subcycling is not supported.
This PR is a subtask when solving #1174.
Motivation and additional information
This PR branched off from #1029, because serial implicit coupling requires additional steps for full support of waveforms. The implementation for parallel implicit coupling is simpler and closer to a state where it is ready to be merged.
Todos
readVectorData,readBlockScalarDataandreadBlockVectorDatainSolverInterface.readVectorData,readBlockScalarDataandreadBlockVectorData.Author's checklist
make changelogif there are user-observable changes since the last release.make formatto ensure everything is formatted correctly.Reviewers' checklist