-
-
Notifications
You must be signed in to change notification settings - Fork 105
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
Partitioned heat equation scenario using waveform relaxation #30
Partitioned heat equation scenario using waveform relaxation #30
Conversation
…into WaveformBindingsDraft
Possibly, we can remove all the waveform relaxation specific config files ( |
…es wr substepping information from heat.py and manages everything using adapter configs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. There are only some doubts with the configuration. Does not mean that we need to change those, I merely want to understand them since they contradict my current understanding of the waveform relaxation layer.
|
||
## Waveform relaxation (experimental) | ||
|
||
This branch of the tutorial uses the fenics-adapter waveform bindings. If you want to run this tutorial, you have to install the version of the FEniCS-adapter that can be found on [this branch](https://github.com/precice/fenics-adapter/tree/WaveformBindingsDraft). Further information on waveform relaxation in the FEniCS-adapter can be found in issue https://github.com/precice/fenics-adapter/issues/16 and milestone https://github.com/precice/fenics-adapter/milestone/2. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't forget to update the branch here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the hint!
@@ -5,5 +5,8 @@ | |||
"coupling_mesh_name": "DirichletNodes", | |||
"write_data_name": "Flux", | |||
"read_data_name": "Temperature" | |||
}, | |||
"waveform": { | |||
"n_substeps": 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the technical reason for this config option if the information is already passed through the command line?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is indeed redundant. What I said above is actually true for the config file. This means that the adapter has to know both config files in order to know the complete WR setup.
* If subcycling is used, results that belong to the substeps may be exchanged, as well. * Exchange of additional data that is associated with the substeps is realized by introducing additional data in the precice-config. `Temperature` becomes `Temperature1`, `Temperature2`,... * Linear interpolation is used between substeps. Be aware that this approach is not compatible with the original preCICE API and experimental. In `waveform_bindings.py` API functions like `readBlockScalarData` are extended with the additional parameter `time` (see [here](https://github.com/precice/fenics-adapter/blob/14cef37ca902b96bc4ab2b22e03c879b9e0d5a8c/fenicsadapter/waveform_bindings.py#L72-L84)). For example usage of the modified adapter, refer to precice/tutorials#30.
This PR is strongly related to the features introduced in precice/fenics-adapter#35.
heat.py
is modified such that waveform relaxation is used.