Skip to content
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

Merged
merged 49 commits into from
Jun 18, 2019

Conversation

BenjaminRodenberg
Copy link
Member

This PR is strongly related to the features introduced in precice/fenics-adapter#35.

  • heat.py is modified such that waveform relaxation is used.
  • Adapter and preCICE configuration files are modified correspondingly.

@BenjaminRodenberg
Copy link
Member Author

Possibly, we can remove all the waveform relaxation specific config files (precice-config-WRXX.xml, precice-adapter-config-D/N-WRXX) and provide instructions on how to generate them using the script in tools.

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.

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.
Copy link
Member

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.

Copy link
Member Author

Choose a reason for hiding this comment

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

Thanks for the hint!

HT/partitioned-heat/fenics-fenics/README.md Show resolved Hide resolved
@@ -5,5 +5,8 @@
"coupling_mesh_name": "DirichletNodes",
"write_data_name": "Flux",
"read_data_name": "Temperature"
},
"waveform": {
"n_substeps": 1
Copy link
Member

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?

Copy link
Member Author

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.

HT/partitioned-heat/fenics-fenics/heat.py Show resolved Hide resolved
BenjaminRodenberg added a commit to precice/fenics-adapter that referenced this pull request Jun 18, 2019
* 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.
@BenjaminRodenberg BenjaminRodenberg merged commit 116bac4 into CoupledProblems2019 Jun 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants