Skip to content

v3: Make dt mandatory in documentation #257

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 47 commits into from
Feb 8, 2024
Merged

Conversation

BenjaminRodenberg
Copy link
Member

@BenjaminRodenberg BenjaminRodenberg commented Apr 21, 2023

@BenjaminRodenberg BenjaminRodenberg added the breaking change A change will break backwards compatibilty label Apr 21, 2023
@BenjaminRodenberg BenjaminRodenberg added this to the Version 3.0.0 milestone Apr 21, 2023
@BenjaminRodenberg BenjaminRodenberg self-assigned this Apr 21, 2023
* change precice_dt to preciceDt and solver_dt to solverDt to follow
conventions.
@BenjaminRodenberg
Copy link
Member Author

This implements the changes from precice/precice#1622 in the documentation.

@BenjaminRodenberg BenjaminRodenberg marked this pull request as ready for review April 24, 2023 10:40
Copy link
Member

@fsimonis fsimonis left a comment

Choose a reason for hiding this comment

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

There are some contextual changes that are missing. Especially the way we handle the max time step size has changed.

void readBlockVectorData(int dataID, int size, const int* valueIndices, double relativeReadTime, double* values) const;
```

`relativeReadTime` describes the time relatively to the beginning of the current time step. This means that `relativeReadTime = 0` gives us access to data at the beginning of the time step. By choosing `relativeReadTime > 0` we can sample data at later points. The maximum allowed `relativeReadTime` corresponds to the remaining time until the end of the current time window. Remember that the remaining time until the end of the time window is always returned when calling `preciceDt = precice.getMaxTimeStepSize()` as `preciceDt`. So `relativeReadTime = preciceDt` corresponds to sampling data at the end of the current time window.
In the previous sections of the step-by-step guide we always used `relativeReadTime = preciceDt` where `preciceDt = precice.getMaxTimeStepSize()` points to the end of the current time window (see, for example ["Step 5 - Non-matching time step sizes"](couple-your-code-time-step-sizes.html)). However, the original purpose of `relativeReadTime` is exactly to offer the user an interface for sampling from waveforms. The figure below illustrates how providing different values `dt` for `relativeReadTime` allows to sample interpolated values at different points in time:
Copy link
Member

Choose a reason for hiding this comment

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

I don't think that this is a good strategy (see also above): To tell users first how to do it the wrong way, and then the right way. Maybe we need to re-order our steps?

Copy link
Member Author

Choose a reason for hiding this comment

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

Now that the waveform API is not experimental anymore but the default, let's put some information from here into "Step 5 - Non-matching time step sizes". I think this section needs some updates and refinement anyway. Additionally, I think that the topics that we currently explain in "Step 5 - Non-matching time step sizes" are definitely more advanced and exotic than some of the basic topics that we explain here. So yes: let's reorder some things.

We should still keep the more advanced background information (interpolation degree, higher-order time stepping) here to not provide too much information too early.

Copy link
Member Author

Choose a reason for hiding this comment

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

There is a $\tau_n$ here. The point about the $\tau$ is the following: Actually it can refer to any point in time. So $\tau$ could be $t_n$, if we are at the beginning of the window, but also any arbitrary point in time between $t_n$ and $t_{n+1}$.

Copy link
Member

@uekerman uekerman Jun 2, 2023

Choose a reason for hiding this comment

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

I didn't get this from the picture, seems like you use $t_n$ and $\tau_n$ for the same thing.
Above you write

... relatively to the beginning of the current time step starting at $\tau_n$

This should be $t_n$, no?

@BenjaminRodenberg BenjaminRodenberg removed the stuck Depends on other PRs or issues label Nov 15, 2023
Copy link
Member

@fsimonis fsimonis left a comment

Choose a reason for hiding this comment

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

Some of these pages also still refer to waveform-order instead of waveform-degree.

@fsimonis fsimonis mentioned this pull request Dec 11, 2023
Copy link
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.

I would suggest to merge here and improve later.

@uekerman uekerman merged commit b08776c into precice-v3 Feb 8, 2024
@uekerman uekerman deleted the v3-make-dt-mandatory branch February 8, 2024 14:53
uekerman added a commit that referenced this pull request Feb 12, 2024
* Fix whitespace.

* Update action config docs to v3 (#254)

* Update Roadmap

* Update fundamentals-roadmap.md

* Use time step, not timestep. (#259)

* v3: Update documentation w.r.t getMaxTimeStep(). (#258)

* Update documentation w.r.t getMaxTimeStep().
* Implements changes from precice/precice#1623

---------

Co-authored-by: Benjamin Uekermann <[email protected]>

* Minor follow-up for #258.

* Update documentation for initialize (#186)

* Documentation for data initialization changes introduced in v3.0.0.
* Cleanup initializeData.

---------

Co-authored-by: Benjamin Uekermann <[email protected]>
Co-authored-by: Benjamin Uekermann <[email protected]>

* Update profiling section (#266)

* Update profiling section

* Update examples in profiling section

* Apply suggestions from code review

Co-authored-by: Benjamin Uekermann <[email protected]>

* Add motivation for custom tool

* Wording tweaks

* More rewording

* Update event files in output files

---------

Co-authored-by: Benjamin Uekermann <[email protected]>

* Fix typo in profiling

* Update profiling info in guide

* Update CMake variables to new names (#289)

* Clarify some instructions in porting guide (#287)

Co-authored-by: Gerasimos Chourdakis <[email protected]>

* Fix minor issues in tooling/performance-analysis (#272)

* Rename events to profiling

according to precice/precice #1787

* Mention where to find the precice-profiling

* Add hint regarding the event flag in precice-profiling

* Add recommendation for `imvj-restart-mode` in configuration of acceleration (#296)

* Update configuration-acceleration.md

Add recommendation to use restart mode in `IQN-IMVJ` method for large-scale simulations.

* Update pages/docs/configuration/configuration-acceleration.md

Improve descriptive accuracy

Co-authored-by: Benjamin Uekermann <[email protected]>

---------

Co-authored-by: Benjamin Uekermann <[email protected]>

* Apply trivial renaming changes.

* Fix naming.

* Add note.

* Update breaking API changes (#299)

---------

Co-authored-by: Gerasimos Chourdakis <[email protected]>

* Fix token

* Fix arg

* Bump preCICE version

* Update hint on formatting configuration files

* Refer to precice.hpp instead of participant.hpp

* Update version in docs sidebar

* Rewrite mapping docs (#308)

* Add overview figure

* Work in progress

* Fix links

* Transform pdfs to svgs

* Update kernel method section

* Also write about GPU executors

* Language edits by Benjamin and Makis

Co-authored-by: Gerasimos Chourdakis <[email protected]>
Co-authored-by: Benjamin Uekermann <[email protected]>

* Review updates

* Makis language edits

Co-authored-by: Gerasimos Chourdakis <[email protected]>

* Fix typos via aspell

---------

Co-authored-by: Gerasimos Chourdakis <[email protected]>
Co-authored-by: Benjamin Uekermann <[email protected]>

* Fix some outdated solver-interface and dimensions (#314)

* Migrate use-mesh to provide/receive-mesh

* Migrate binprecice to precice-tools

* Update config-visualizer page

* Include instructions to remove .data() in readData function (#313)

* Include instructions to remove .data() in readData function
* Mention span replacing raw pointers
* Remove raw pointers from general porting example

* Cleanup porting guide example

* Update couple your code

* Remove obsolete section regarding IDs

* Apply suggestions from code review

Co-authored-by: Ishaan Desai <[email protected]>

* This PR adds C++ STL linking from Doxygen to cppreference

* Fix WD

* Link to porting guides from the source docs

* Add list of porting guides to overview

* Add new solid solver to Nutils adapter overview page (#325)

* Geometric Multiscale Documentation (#205)

Co-authored-by: Gerasimos Chourdakis <[email protected]>

* Update submodules

* Ignore tooling in images

* Update xmlreference to v3.0.0

* Cleanup porting guide API+Config (#317)

Co-authored-by: Ishaan Desai <[email protected]>
Co-authored-by: Gerasimos Chourdakis <[email protected]>

* Update the rust bindings page

* Fix link

* Make dt in readData mandatory in documentation (#257)

* v3: Make dt mandatory in documentation

* Update read data functions to use relativeReadTime.

* change precice_dt to preciceDt and solver_dt to solverDt to follow
conventions.

* Add missing.

* Shorten a bit.

* Minor follow-up for #258.

* Add figure.

* Remove outdated note.

* Use dt properly.

* Remove unnecessary pdf.

* Partial update of documentation w.r.t breaking changes.

* Redice diff.

* Redice diff.

* Reduce diff.

* Fix some more breaking changes.

* Add how dt is computed. See #257.

* Apply suggestions from code review

Co-authored-by: Gerasimos Chourdakis <[email protected]>

* Remove unneeded.

* Add pointer to interpolation section.

* Fix format.

* Add advice on precice/precice#1866.

* Apply suggestions from code review

* Update some minor, obviously outdated points.

* Update png.

* Update pages/docs/couple-your-code/couple-your-code-mesh-and-data-access.md

Co-authored-by: Frédéric Simonis <[email protected]>

* Update heading.

* Moved changes to #326.

* Update pages/docs/couple-your-code/couple-your-code-mesh-and-data-access.md

* Update pages/docs/couple-your-code/couple-your-code-waveform.md

---------

Co-authored-by: Gerasimos Chourdakis <[email protected]>
Co-authored-by: Frédéric Simonis <[email protected]>
Co-authored-by: Benjamin Uekermann <[email protected]>

* Update submodules

* Remove v3 tip from roadmap

* Add rust bindings to installation overview

* Update libprecice2 to libprecice3 on Ubuntu packages page

* Update header names in installation-linking

* Update porting information on configuration overview page

* Update several things on configuration basics page

* Update configuration communication page

* Revert tweaks in configuration basics page

Previously, I changed from precice to participant as name for the preCICE handle and I used "Force" instead of "Forces" to be consistent with the tutorial guidelines. But both changes would also need updates on many other pages. Thus, I left them for the moment for consistency.

* Refer to QN default values on acceleration configuration

* Update porting info and mention Rust on couple your code start

* Change global dim to mesh dim in step 3

* Remove dim handling from step 6

* Fix getDataDim arguments in step 3

* Fix dim handling in step 9

* Fix dim in direct access

* Fix and tweak porting guide

* Make linter happy

* Make linter happier

* Add missing tutorials in the sidebar and overview (#334)

* Add partitioned-pipe-two-phase to sidebar and overview

* Add oscillator overlap in sidebar and overview

* Add partitioned-heat-conduction-overlap to the sidebar and overview

* Add volume-coupled-flow to sidebar and overview

* Add two-scale-heat-conduction to sidebar and overview

* Update pages/tutorials/tutorials.md

Co-authored-by: Ishaan Desai <[email protected]>

* Update pages/tutorials/tutorials.md

---------

Co-authored-by: Benjamin Uekermann <[email protected]>
Co-authored-by: Ishaan Desai <[email protected]>

* Update bindings overview picture (#333)

* Update bindings overview picture

* Move arrow of Python bindings to precice.hpp

* Add Rust bindings

---------

Co-authored-by: Benjamin Rodenberg <[email protected]>
Co-authored-by: Gerasimos Chourdakis <[email protected]>
Co-authored-by: Benjamin Rodenberg <[email protected]>
Co-authored-by: Frédéric Simonis <[email protected]>
Co-authored-by: David Schneider <[email protected]>
Co-authored-by: carme-hp <[email protected]>
Co-authored-by: June <[email protected]>
Co-authored-by: homspons <ge35joj>
Co-authored-by: Ishaan Desai <[email protected]>
Co-authored-by: Elia Zonta <[email protected]>
Co-authored-by: precice-bot <[email protected]>
Co-authored-by: Ishaan Desai <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking change A change will break backwards compatibilty
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants