Simplify waveform class: Don't use data from old window, allow higher-order interpolation through BSplines #1422
Merged
BenjaminRodenberg merged 46 commits intoprecice:develop-v3.0.0from Sep 28, 2022
Conversation
* Remove mapReadDataTo and mapWriteDataFrom. * Remove tests using removed API.
* 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]>
…recice#1352) * Get tests and configs for serial implicit waveform interpolation from precice#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]>
* Add test Integration/Serial/InitializeData/ImplicitBoth where both participants initialize. * Allow initialize=true for both participants in serial-implicit coupling scheme. * Raise warning, if first participant in serial coupling scheme initializes data with waveform order zero. * Remove check for write data, because participant does not know about waveform order. Co-authored-by: Benjamin Uekermann <[email protected]>
Co-authored-by: Benjamin Uekermann <[email protected]>
* Make read mapping conditional to avoid unnecessary mappings. * Update corresponding tests. Co-authored-by: Benjamin Uekermann <[email protected]>
* Remove mapReadDataTo and mapWriteDataFrom. * Remove tests using removed API.
* 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]>
…recice#1352) * Get tests and configs for serial implicit waveform interpolation from precice#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]>
* Add test Integration/Serial/InitializeData/ImplicitBoth where both participants initialize. * Allow initialize=true for both participants in serial-implicit coupling scheme. * Raise warning, if first participant in serial coupling scheme initializes data with waveform order zero. * Remove check for write data, because participant does not know about waveform order. Co-authored-by: Benjamin Uekermann <[email protected]>
Co-authored-by: Benjamin Uekermann <[email protected]>
* Make read mapping conditional to avoid unnecessary mappings. * Update corresponding tests. Co-authored-by: Benjamin Uekermann <[email protected]>
* Get changes from precice#1414 into this independent Commit. * Simplifies Waveform by removing data from past windows and support for second-order interpolation by using data from old window. * Allow to store multiple samples within one window. * Reset all samples when window is repeated - except the sample at the beginning of the window. * Allow higher-order interpolation through B-Splines, if sufficiently many samples are available. * Update intergration tests for zeroth order interpolation for more consistent behavior with first order interpolation.
17 tasks
f3ef21d to
85c325a
Compare
uekerman
approved these changes
Sep 21, 2022
Member
uekerman
left a comment
There was a problem hiding this comment.
Looks good to me. I did not read through all tests.
Minor:
- It's a bit odd that the tests of
PiecewiseWaveformTestare not part ofWaveformTest. Usually, there should be a one-to-one match between class and test class. - We need unit tests for the
Storageclass.
Co-authored-by: Benjamin Uekermann <[email protected]>
Co-authored-by: Benjamin Uekermann <[email protected]>
8 tasks
BenjaminRodenberg
added a commit
that referenced
this pull request
Nov 2, 2022
…-order interpolation through BSplines (#1422) * Allow to store multiple samples within one window. * Allow higher-order interpolation through B-Splines, if sufficiently many samples are available. * Simplifies Waveform by removing data from past windows and support for second-order interpolation by using data from old window. * Reset all samples when window is repeated - except the sample at the beginning of the window. * Update intergration tests for zeroth order interpolation for more consistent behavior with first order interpolation. * Introduce time::Storage Co-authored-by: Benjamin Uekermann <[email protected]>
BenjaminRodenberg
added a commit
that referenced
this pull request
Nov 4, 2022
…-order interpolation through BSplines (#1422) * Allow to store multiple samples within one window. * Allow higher-order interpolation through B-Splines, if sufficiently many samples are available. * Simplifies Waveform by removing data from past windows and support for second-order interpolation by using data from old window. * Reset all samples when window is repeated - except the sample at the beginning of the window. * Update intergration tests for zeroth order interpolation for more consistent behavior with first order interpolation. * Introduce time::Storage Co-authored-by: Benjamin Uekermann <[email protected]>
25 tasks
This file contains hidden or 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
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.
Main changes of this PR
Closes #1421.
Motivation and additional information
This implements an important feature needed for #1171. Multiple samples can now be stored in the waveform and higher-order interpolation is possible. Note that this feature is not yet available to the user and only implemented for the Waveform class.
Author's checklist
make changelogif there are user-observable changes since the last release.make formatto ensure everything is formatted correctly.Reviewers' checklist