Skip to content

Waveform interpolation, read direction for serial implicit coupling#1352

Merged
BenjaminRodenberg merged 139 commits intoprecice:develop-v3.0.0from
BenjaminRodenberg:waveform-serial-implicit-read-direction
Jul 12, 2022
Merged

Waveform interpolation, read direction for serial implicit coupling#1352
BenjaminRodenberg merged 139 commits intoprecice:develop-v3.0.0from
BenjaminRodenberg:waveform-serial-implicit-read-direction

Conversation

@BenjaminRodenberg
Copy link
Copy Markdown
Contributor

@BenjaminRodenberg BenjaminRodenberg commented Jul 3, 2022

Main changes of this PR

Implements waveform interpolation for serial coupling. Related to #1187

This PR in combination with #1187 closes #1174.

Motivation and additional information

See #1029. Implements waveform interpolation for serial coupling. Main obstacle here is to allow the second participant to receive two pieces of data in initialize(): 1) the initial data from first and 2) the result from the first time window of first send by calling advance.

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.16.3.
  • 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?

fsimonis and others added 30 commits March 10, 2022 18:19
…ce/precice into 1149-restructure-integration-tests
…ce/precice into 1149-restructure-integration-tests
…ce/precice into 1149-restructure-integration-tests
…ce/precice into 1149-restructure-integration-tests
@BenjaminRodenberg BenjaminRodenberg marked this pull request as ready for review July 8, 2022 11:01
BenjaminRodenberg and others added 2 commits July 11, 2022 13:39
* Merge initialize and initializeData in SolverInterfaceImpl.
* Merge initialize and initializeData in CouplingScheme.
* Update tests correspondingly
* Allow to check actions before initialize, especially checking whether initial data has to be written
* Check for sending and receiving of initial data during coupling scheme configuration
* Code simplification w.r.t waveform.
* Use dt=0.0 in actions in initialize.

Co-authored-by: Benjamin Uekermann <[email protected]>
Co-authored-by: Frédéric Simonis <[email protected]>
Copy link
Copy Markdown
Contributor Author

@BenjaminRodenberg BenjaminRodenberg left a comment

Choose a reason for hiding this comment

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

From my perspective ready to review. The only part that might be something we want to deal with before merging this PR is the one related to #1367, where I put a comment.

Comment on lines +993 to +998
if (not _experimental) {
PRECICE_CHECK(scheme.doesFirstStep(),
"In serial coupling only first participant can receive initial data. "
"Please check the <exchange data=\"{}\" mesh=\"{}\" from=\"{}\" to=\"{}\" initialize=\"{}\" /> tag in the <coupling-scheme:... /> of your precice-config.xml. You can bypass this restriction by activating the experimental interface for time interpolation. Please refer to the documentation for more details.",
dataName, meshName, from, to, requiresInitialization);
}
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This part is related to #1367

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.

Very clean and readable implementation, nice job 👍
(I did not check all details of the integration tests)

@BenjaminRodenberg BenjaminRodenberg merged commit 8e42849 into precice:develop-v3.0.0 Jul 12, 2022
BenjaminRodenberg added a commit that referenced this pull request Jul 29, 2022
…1352)

* Get tests and configs for serial implicit waveform interpolation from #1029.
* Differentiate between received initial data and data (from advance).
* Split data communication for SerialCouplingScheme and store initial data in waveform.
* Move common functionality of serial and parallel coupling scheme into BiCouplingScheme.

Co-authored-by: Benjamin Uekermann <[email protected]>
BenjaminRodenberg added a commit that referenced this pull request Aug 5, 2022
…1352)

* Get tests and configs for serial implicit waveform interpolation from #1029.
* Differentiate between received initial data and data (from advance).
* Split data communication for SerialCouplingScheme and store initial data in waveform.
* Move common functionality of serial and parallel coupling scheme into BiCouplingScheme.

Co-authored-by: Benjamin Uekermann <[email protected]>
BenjaminRodenberg added a commit that referenced this pull request Aug 5, 2022
…1352)

* Get tests and configs for serial implicit waveform interpolation from #1029.
* Differentiate between received initial data and data (from advance).
* Split data communication for SerialCouplingScheme and store initial data in waveform.
* Move common functionality of serial and parallel coupling scheme into BiCouplingScheme.

Co-authored-by: Benjamin Uekermann <[email protected]>
BenjaminRodenberg added a commit that referenced this pull request Aug 11, 2022
…1352)

* Get tests and configs for serial implicit waveform interpolation from #1029.
* Differentiate between received initial data and data (from advance).
* Split data communication for SerialCouplingScheme and store initial data in waveform.
* Move common functionality of serial and parallel coupling scheme into BiCouplingScheme.

Co-authored-by: Benjamin Uekermann <[email protected]>
BenjaminRodenberg added a commit that referenced this pull request Aug 22, 2022
…1352)

* Get tests and configs for serial implicit waveform interpolation from #1029.
* Differentiate between received initial data and data (from advance).
* Split data communication for SerialCouplingScheme and store initial data in waveform.
* Move common functionality of serial and parallel coupling scheme into BiCouplingScheme.

Co-authored-by: Benjamin Uekermann <[email protected]>
BenjaminRodenberg added a commit that referenced this pull request Sep 15, 2022
…1352)

* Get tests and configs for serial implicit waveform interpolation from #1029.
* Differentiate between received initial data and data (from advance).
* Split data communication for SerialCouplingScheme and store initial data in waveform.
* Move common functionality of serial and parallel coupling scheme into BiCouplingScheme.

Co-authored-by: Benjamin Uekermann <[email protected]>
BenjaminRodenberg added a commit that referenced this pull request Nov 2, 2022
…1352)

* Get tests and configs for serial implicit waveform interpolation from #1029.
* Differentiate between received initial data and data (from advance).
* Split data communication for SerialCouplingScheme and store initial data in waveform.
* Move common functionality of serial and parallel coupling scheme into BiCouplingScheme.

Co-authored-by: Benjamin Uekermann <[email protected]>
BenjaminRodenberg added a commit that referenced this pull request Nov 4, 2022
…1352)

* Get tests and configs for serial implicit waveform interpolation from #1029.
* Differentiate between received initial data and data (from advance).
* Split data communication for SerialCouplingScheme and store initial data in waveform.
* Move common functionality of serial and parallel coupling scheme into BiCouplingScheme.

Co-authored-by: Benjamin Uekermann <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change Breaks backwards compatibility and users need to act enhancement A new feature, a new functionality of preCICE (from user perspective)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow to read data from interpolant in time

4 participants