Skip to content

Waveform interpolation, read direction for parallel implicit coupling#1187

Merged
BenjaminRodenberg merged 76 commits intoprecice:developfrom
BenjaminRodenberg:waveform-parallel-implicit-read-direction
Apr 24, 2022
Merged

Waveform interpolation, read direction for parallel implicit coupling#1187
BenjaminRodenberg merged 76 commits intoprecice:developfrom
BenjaminRodenberg:waveform-parallel-implicit-read-direction

Conversation

@BenjaminRodenberg
Copy link
Copy Markdown
Contributor

@BenjaminRodenberg BenjaminRodenberg commented Feb 17, 2022

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

Author's checklist

  • I added a changelog file with make changelog if there are user-observable changes since the last release.
  • I ran make format to ensure everything is formatted correctly.
  • I sticked to C++14 features.
  • I sticked to CMake version 3.10.
  • I squashed / am about to squash all commits that should be seen as one.

Reviewers' checklist

  • Does the changelog entry make sense? Is it formatted correctly?
  • Do you understand the code changes?

* 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
@BenjaminRodenberg BenjaminRodenberg self-assigned this Feb 17, 2022
BenjaminRodenberg added a commit to BenjaminRodenberg/python-bindings that referenced this pull request Feb 18, 2022
@BenjaminRodenberg BenjaminRodenberg added this to the Version 2.4.0 milestone Mar 9, 2022
Copy link
Copy Markdown
Member

@uekerman uekerman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 (and src/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"?

* Make configuration files valid by adding participants.
* Also provide participant configuration.
* Refactor tests w.r.t readability.
@BenjaminRodenberg BenjaminRodenberg mentioned this pull request Mar 22, 2022
7 tasks
BenjaminRodenberg added a commit to precice/precice.github.io that referenced this pull request Apr 24, 2022
* Create couple-your-code-waveform.md
* Documentation for new feature introduced in precice/precice#1187

Co-authored-by: Benjamin Uekermann <[email protected]>
@BenjaminRodenberg BenjaminRodenberg merged commit 65f6cb0 into precice:develop Apr 24, 2022
@BenjaminRodenberg BenjaminRodenberg deleted the waveform-parallel-implicit-read-direction branch April 24, 2022 16:10
BenjaminRodenberg added a commit to BenjaminRodenberg/precice that referenced this pull request Apr 24, 2022
IshaanDesai pushed a commit to precice/python-bindings that referenced this pull request Dec 2, 2022
* 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants