Skip to content

End of time window assertion fails when a large number of substeps are used #1776

@NiklasKotarsky

Description

@NiklasKotarsky

Describe your setup

Operating system (e.g. Linux distribution and version): Ubuntu Ubuntu 22.10
preCICE Version: develop f7289a6

Describe the problem
If one uses more than 500 equally spaced substeps in the time window then the assertion PRECICE_ASSERT(math::equals(timesAscending(nTimeSteps - 1), time::Storage::WINDOW_END)) and PRECICE_ASSERT(math::equals(data->stamples().back().timestamp, time::Storage::WINDOW_END)) are triggered by the numerical accuracy inside BaseCouplingScheme.cpp and SerializedStamples.cpp.

Step To Reproduce
1.The code to reproduce the error is in the repository
https://github.com/NiklasKotarsky/precice/tree/Err-assertion-end-of-timeWindow
2. The failing test: Integration/Serial/Time/Implicit/SerialCoupling/ManySubstepsReadMapping

Expected behaviour
The assertion should not be triggered from only using more than 500 substeps.

Additional context
Add any other context about the problem here.
Attach relevant logs and files to this issue.
Format your text (and especially any output/error messages) (see the GitHub Markdown guide

Metadata

Metadata

Labels

bugpreCICE does not behave the way we want and we should look into it (and fix it if possible)

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions