From 994fb6cc415479a53ba3dfc2dbba9940dd96db86 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 7 Feb 2024 16:10:25 +0100 Subject: [PATCH 1/9] Update contributing page with new tutorial structure rules As discussed in https://github.com/precice/tutorials/issues/228 and partially implemented in https://github.com/precice/tutorials/pull/459 Also updates minor aspects in the whole page (and introduces an intentional typo). --- .../community-contribute-to-precice.md | 51 ++++++++++++------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/pages/community/community-contribute-to-precice.md b/pages/community/community-contribute-to-precice.md index f4cc00d3f41..3a42c784174 100644 --- a/pages/community/community-contribute-to-precice.md +++ b/pages/community/community-contribute-to-precice.md @@ -15,7 +15,7 @@ Do you enjoy improving whatever you can? Did you find a bug in preCICE or one of ## Contributing documentation You (yes, you) have already found something that can be improved in this website: -maybe an unclear part, maybe a broken link, maybe even a small typo. +maybe an unclear part, maybe a broken link, maybe even a small tyypo. Click the `Edit me` button at the top of the respective page to see the source file of the page. You can then click `Edit this file` and submit your changes as a [Pull Request on GitHub](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/about-pull-requests). @@ -25,9 +25,6 @@ and merge them as soon as possible. These pages are written in [Markdown](https://guides.github.com/features/mastering-markdown/) (a very easy language) and we also have a [cheatsheet](docs-meta-cheatsheet.html) specifically for this website. -We [migrated](docs-meta-migration-guide.html) our documentation from multiple different sources to this website in December 2020 -and some topics may still be incomplete. This is a perfect opportunity to contribute! - ## Reporting issues After discussing a problem in one of our [community channels](community-channels.html), we may conclude that this is a bug @@ -71,23 +68,26 @@ First time working with Git? Watch a [short lecture on the GitHub workflow](http Our tutorials generally follow a file structure similar to this: ```bash -- / # e.g. perpendicular-flap/ - - README.md # description of the case - - precice.config.xml # a works-with-all preCICE configuration file - - clean-tutorial.sh # a symbolic link (see ../tools/) - - # gnuplot or simple Python scripts - - images/ # any images used by the documentation - - / # e.g. fluid-openfoam/ - - run.sh # a short script to run the solver1 case - - clean.sh # a short script to clean the solver1 case +- / # e.g. perpendicular-flap/ + - README.md # description of the case + - precice.config.xml # a works-with-all preCICE configuration file + - clean-tutorial.sh # a symbolic link (see ../tools/) + - # gnuplot or simple Python scripts + - images/ # any images used by the documentation + - solver- # any configurable, tutorial-specific code, e.g., solver-fenics + - / # e.g. fluid-openfoam/ + - run.sh # a short script to run the solver1 case + - clean.sh # a short script to clean the solver1 case - - - / # e.g. solid-dealii/ + - / # e.g. solid-dealii/ - run.sh - clean.sh - + - reference-results/ # results from different case combinations, used for regression tests + - .tar.gz # Git LFS objects, generated from GitHub Actions ``` -Your case may already fit into one of the existing tutorials. If not, feel free to start a new one! +Your case may already fit into one of the existing tutorials. If not, feel free to start a new one! A new case typically needs a new preCICE configuration file. ### Guidelines and hints @@ -98,15 +98,28 @@ Your case may already fit into one of the existing tutorials. If not, feel free - Which versions of preCICE, adapters, and solvers have you tried? - If it is a solver we don't already support, how can we get it? - How should the results look like? A screenshot would be very helpful. -- In the `README.md` file, document the scenario setup, the dependencies, how to run it, how to visualize the results, and an example picture or video of the results. Follow the general structure in the existing tutorials. Don't forget to adapt the `permalink:` field in the beginning of the file. -- The run scripts (`run.sh`) should be very short. You can probably reuse some of the scripts we already provide. -- For the `clean.sh` script, you can use the functions provided in `tools/cleaning-tools.sh` +- In the `README.md` file, following the general structure of the existing tutorials, document: + - the scenario setup, + - the dependencies, + - how to run the tutorial, + - how to visualize the results, and + - an example picture or video of the results. + - Don't forget to adapt the `permalink:` field in the beginning of the file. +- The run scripts (`run.sh`) should be very short. + - Try to reuse the scripts we already provide in `tools/` and in other tutorials. + - The run script itself must be executable for a default case without any arguments. + - Optional arguments can include `-parallel`, or anything that triggers a special case. +- For the `clean.sh` script, you can use the functions provided in `tools/cleaning-tools.sh` - If there is already a `precice-config.xml` for the case you are simulating, please use the same one (or contribute changes to that). We want that all solvers that can simulate a given case use the same preCICE configuration file. -- If you add a complete new tutorial case, the case also needs to be added to the [tutorials sidebar](https://github.com/precice/precice.github.io/blob/master/_data/sidebars/tutorial_sidebar.yml) on the [tutorials website section](tutorials.html). Please open a pull request to the [website repository](https://github.com/precice/precice.github.io). Please note that we will only merge this one with the next release of the tutorials, such that the list of tutorial cases on the website does not deviate from the list of released tutorial cases. + +{% note %} +If you add a complete new tutorial case, the case also needs to be added to the [tutorials sidebar](https://github.com/precice/precice.github.io/blob/master/_data/sidebars/tutorial_sidebar.yml) on the [tutorials website section](tutorials.html). Please open a pull request to the [website repository](https://github.com/precice/precice.github.io). Please note that we will only merge this one with the next release of the tutorials, such that the list of tutorial cases on the website does not deviate from the list of released tutorial cases. +{% endnote %} ### Naming conventions - Directories use `-` to separate words, not `_`, and only use lowercase. + - We use `_` for separating case combinations, e.g., in the reference results: `fluid-openfoam_solid-calculix.tar.gz`. - Data and mesh names should start with uppercase and use `-` as separator. - Data names are in singular, e.g. `Stress`, `Heat-Flux`. - Mesh names start with the participant/domain name, e.g. `Fluid-Mesh`. From 74194f91209d3b78ad52bab4b4f8259a5262b3bd Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 7 Feb 2024 16:33:15 +0100 Subject: [PATCH 2/9] Clarify solver-code directory and configuration files --- pages/community/community-contribute-to-precice.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pages/community/community-contribute-to-precice.md b/pages/community/community-contribute-to-precice.md index 3a42c784174..e77a7c910c1 100644 --- a/pages/community/community-contribute-to-precice.md +++ b/pages/community/community-contribute-to-precice.md @@ -109,7 +109,9 @@ Your case may already fit into one of the existing tutorials. If not, feel free - Try to reuse the scripts we already provide in `tools/` and in other tutorials. - The run script itself must be executable for a default case without any arguments. - Optional arguments can include `-parallel`, or anything that triggers a special case. -- For the `clean.sh` script, you can use the functions provided in `tools/cleaning-tools.sh` +- For the `clean.sh` script, you can use the functions provided in `tools/cleaning-tools.sh` +- In case a tutorial-specific code example is needed for this tutorial, and this can be reused among participants, add that in `solver-/`. + - You don't need to have a participant-specific configuration file in a participant case. A `run.sh` that provides the participant as parameter is enough. - If there is already a `precice-config.xml` for the case you are simulating, please use the same one (or contribute changes to that). We want that all solvers that can simulate a given case use the same preCICE configuration file. {% note %} From 1fa63a0b01017e7b78c115fb9adf5408f898af85 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Thu, 8 Feb 2024 16:32:07 +0100 Subject: [PATCH 3/9] Update pages/community/community-contribute-to-precice.md Co-authored-by: Benjamin Uekermann --- pages/community/community-contribute-to-precice.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/community/community-contribute-to-precice.md b/pages/community/community-contribute-to-precice.md index e77a7c910c1..3d6800b8c17 100644 --- a/pages/community/community-contribute-to-precice.md +++ b/pages/community/community-contribute-to-precice.md @@ -74,7 +74,7 @@ Our tutorials generally follow a file structure similar to this: - clean-tutorial.sh # a symbolic link (see ../tools/) - # gnuplot or simple Python scripts - images/ # any images used by the documentation - - solver- # any configurable, tutorial-specific code, e.g., solver-fenics + - solver-/ # any configurable, tutorial-specific code, e.g., solver-fenics - / # e.g. fluid-openfoam/ - run.sh # a short script to run the solver1 case - clean.sh # a short script to clean the solver1 case From 6c0e34ff088afc3198ac865d6029b6f1a636f708 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Fri, 9 Feb 2024 00:23:05 +0100 Subject: [PATCH 4/9] Revert intentional typo --- pages/community/community-contribute-to-precice.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/community/community-contribute-to-precice.md b/pages/community/community-contribute-to-precice.md index 3d6800b8c17..cbdaeaa7cde 100644 --- a/pages/community/community-contribute-to-precice.md +++ b/pages/community/community-contribute-to-precice.md @@ -15,7 +15,7 @@ Do you enjoy improving whatever you can? Did you find a bug in preCICE or one of ## Contributing documentation You (yes, you) have already found something that can be improved in this website: -maybe an unclear part, maybe a broken link, maybe even a small tyypo. +maybe an unclear part, maybe a broken link, maybe even a small typo. Click the `Edit me` button at the top of the respective page to see the source file of the page. You can then click `Edit this file` and submit your changes as a [Pull Request on GitHub](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/about-pull-requests). From 208bec753a1786f2bb9880e0e70e7e4ad2cc0aaa Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Fri, 9 Feb 2024 00:27:39 +0100 Subject: [PATCH 5/9] Clarify configuration via command-line argument --- pages/community/community-contribute-to-precice.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/community/community-contribute-to-precice.md b/pages/community/community-contribute-to-precice.md index cbdaeaa7cde..0acd82cb461 100644 --- a/pages/community/community-contribute-to-precice.md +++ b/pages/community/community-contribute-to-precice.md @@ -111,7 +111,7 @@ Your case may already fit into one of the existing tutorials. If not, feel free - Optional arguments can include `-parallel`, or anything that triggers a special case. - For the `clean.sh` script, you can use the functions provided in `tools/cleaning-tools.sh` - In case a tutorial-specific code example is needed for this tutorial, and this can be reused among participants, add that in `solver-/`. - - You don't need to have a participant-specific configuration file in a participant case. A `run.sh` that provides the participant as parameter is enough. + - You don't need to have a participant-specific configuration file in a participant case. Instead, you can hard-code the configuration of each participant in the code and select the respective participant via a command-line argument. A case-specific `run.sh` that provides the participant as command-line argument is enough. - If there is already a `precice-config.xml` for the case you are simulating, please use the same one (or contribute changes to that). We want that all solvers that can simulate a given case use the same preCICE configuration file. {% note %} From 05d1d1638957ae369a871e054fa1c66f4b7fabd9 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Fri, 9 Feb 2024 00:50:08 +0100 Subject: [PATCH 6/9] Split rules into sections --- .../community-contribute-to-precice.md | 65 ++++++++++++------- 1 file changed, 40 insertions(+), 25 deletions(-) diff --git a/pages/community/community-contribute-to-precice.md b/pages/community/community-contribute-to-precice.md index 0acd82cb461..761fad9e942 100644 --- a/pages/community/community-contribute-to-precice.md +++ b/pages/community/community-contribute-to-precice.md @@ -55,7 +55,7 @@ You can also use preCICE from the [develop branch](https://github.com/precice/pr After working on your new simulation case, you may want to share it with the community to use as a starting point, or to demonstrate a new feature. We welcome contributions to our [tutorials repository](https://github.com/precice/tutorials/) and we will discuss it with you over a few [review](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/reviewing-proposed-changes-in-a-pull-request) iterations. -If you roughly follow the guidelines in this section, your contribution could be merged very quickly. +If you roughly follow the guidelines in this section, your contribution could be merged very quickly. Since we aim to maintain and update all tutorials, it is important for us that every tutorial merged follows the same structure and conventions. {% tip %} Get in touch with us early and we will be very happy to help you with every step! Open a first draft Pull Request on GitHub and we can together bring it into a fitting shape. @@ -89,30 +89,36 @@ Our tutorials generally follow a file structure similar to this: Your case may already fit into one of the existing tutorials. If not, feel free to start a new one! A new case typically needs a new preCICE configuration file. -### Guidelines and hints +### What to contribute and where? -- Contribute only the files necessary for running the tutorial (no results or user-specific files). You can check this by looking at the "Files changed" tab on GitHub. -- Start a draft [pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) early on, so that people know that someone is working on this. In the description, gradually include everything we may need to review and run your tutorial: - - Why is this case a good fit for our tutorials? What is different from other tutorials? - - How did you create the setup? Do we need any additional tools? - - Which versions of preCICE, adapters, and solvers have you tried? - - If it is a solver we don't already support, how can we get it? - - How should the results look like? A screenshot would be very helpful. -- In the `README.md` file, following the general structure of the existing tutorials, document: - - the scenario setup, - - the dependencies, - - how to run the tutorial, - - how to visualize the results, and - - an example picture or video of the results. - - Don't forget to adapt the `permalink:` field in the beginning of the file. -- The run scripts (`run.sh`) should be very short. - - Try to reuse the scripts we already provide in `tools/` and in other tutorials. - - The run script itself must be executable for a default case without any arguments. - - Optional arguments can include `-parallel`, or anything that triggers a special case. -- For the `clean.sh` script, you can use the functions provided in `tools/cleaning-tools.sh` -- In case a tutorial-specific code example is needed for this tutorial, and this can be reused among participants, add that in `solver-/`. - - You don't need to have a participant-specific configuration file in a participant case. Instead, you can hard-code the configuration of each participant in the code and select the respective participant via a command-line argument. A case-specific `run.sh` that provides the participant as command-line argument is enough. -- If there is already a `precice-config.xml` for the case you are simulating, please use the same one (or contribute changes to that). We want that all solvers that can simulate a given case use the same preCICE configuration file. +Contribute only the files necessary for running the tutorial (no results or user-specific files). You can check this by looking at the "Files changed" tab on GitHub. + +If there is already a `precice-config.xml` for the case you are simulating, please use the same one (or contribute changes to that). We want that all solvers that can simulate a given case use the same preCICE configuration file. + +### The run.sh scripts + +Each run script must be executable for a default case without any arguments. Optional arguments can include `-parallel`, or anything that triggers a special case. Such a uniform interface not only makes the workflow more predictable, but it also facilitates automation, avoiding special cases. + +These scripts should generally be very short and not include too much automation that would obfuscate the main steps. Remember: The tutorials serve as examples to copy from and extend, most often by replacing one participant with another. + +There are several helper scripts and functions in `tools/`; using these will make your scripts simpler. + +### Tutorial-specific codes + +In case a tutorial-specific code example is needed for this tutorial, and this can be reused among participants, add that in `solver-/`. + +You don't need to have a participant-specific configuration file in a participant case (even though that would be nice). Instead, you can hard-code the configuration of each participant in the code and select the respective participant via a command-line argument. A case-specific `run.sh` that provides the participant as command-line argument is enough. + +### The README file + +In the `README.md` file, following the general structure of the existing tutorials, document: + +- the scenario setup, +- the dependencies, +- how to run the tutorial, +- how to visualize the results, and +- an example picture or video of the results. +- Don't forget to adapt the `permalink:` field in the beginning of the file. {% note %} If you add a complete new tutorial case, the case also needs to be added to the [tutorials sidebar](https://github.com/precice/precice.github.io/blob/master/_data/sidebars/tutorial_sidebar.yml) on the [tutorials website section](tutorials.html). Please open a pull request to the [website repository](https://github.com/precice/precice.github.io). Please note that we will only merge this one with the next release of the tutorials, such that the list of tutorial cases on the website does not deviate from the list of released tutorial cases. @@ -129,6 +135,15 @@ If you add a complete new tutorial case, the case also needs to be added to the - Watchpoint names should be describing the point, not be a generic name. - Images need to be named as `tutorials--.png` to be correctly displayed on the website. You can then refer to them as `![title](images/tutorials--.png)`. Subdirectories are not allowed. +### Open a pull request + +- Start a draft [pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) early on, so that people know that someone is working on this. In the description, gradually include everything we may need to review and run your tutorial: + - Why is this case a good fit for our tutorials? What is different from other tutorials? + - How did you create the setup? Do we need any additional tools? + - Which versions of preCICE, adapters, and solvers have you tried? + - If it is a solver we don't already support, how can we get it? + - How should the results look like? A screenshot would be very helpful. + ### Optional: Help us with some checks There are a few technical things to take care of before we can merge your contribution. If you find any of these steps to be complicated, we will be happy to directly edit your branch to apply them. @@ -184,7 +199,7 @@ After your PR gets reviewed, approved, and merged, the website will be built aut ## Sharing a simulation case -Did you create a nice simulation case that could be useful for more people, but is not simple enough to serve as a tutorial? You can alternatively share it in the [community projects](https://precice.discourse.group/c/community-projects/11) category of our forum. +Did you create a nice simulation case that could be useful for more people, but is not simple enough to serve as a tutorial, or you don't want to invest any more time shaping it into a tutorial? You can alternatively share it in the [community projects](https://precice.discourse.group/c/community-projects/11) category of our forum. ## Contributing code From 9e8ebece08d5a3b48e2e8622f7e861eb1dd3388d Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Fri, 9 Feb 2024 00:51:44 +0100 Subject: [PATCH 7/9] Fix formatting --- pages/community/community-contribute-to-precice.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pages/community/community-contribute-to-precice.md b/pages/community/community-contribute-to-precice.md index 761fad9e942..41dfb9dd2e1 100644 --- a/pages/community/community-contribute-to-precice.md +++ b/pages/community/community-contribute-to-precice.md @@ -137,12 +137,13 @@ If you add a complete new tutorial case, the case also needs to be added to the ### Open a pull request -- Start a draft [pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) early on, so that people know that someone is working on this. In the description, gradually include everything we may need to review and run your tutorial: - - Why is this case a good fit for our tutorials? What is different from other tutorials? - - How did you create the setup? Do we need any additional tools? - - Which versions of preCICE, adapters, and solvers have you tried? - - If it is a solver we don't already support, how can we get it? - - How should the results look like? A screenshot would be very helpful. +Start a draft [pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) early on, so that people know that someone is working on this. In the description, gradually include everything we may need to review and run your tutorial: + +- Why is this case a good fit for our tutorials? What is different from other tutorials? +- How did you create the setup? Do we need any additional tools? +- Which versions of preCICE, adapters, and solvers have you tried? +- If it is a solver we don't already support, how can we get it? +- How should the results look like? A screenshot would be very helpful. ### Optional: Help us with some checks From 9741240f64cf7fc08cbc1c136026748bfcbc1256 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Fri, 9 Feb 2024 00:54:10 +0100 Subject: [PATCH 8/9] Mention output directory --- pages/community/community-contribute-to-precice.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pages/community/community-contribute-to-precice.md b/pages/community/community-contribute-to-precice.md index 41dfb9dd2e1..1be96192bb3 100644 --- a/pages/community/community-contribute-to-precice.md +++ b/pages/community/community-contribute-to-precice.md @@ -109,6 +109,8 @@ In case a tutorial-specific code example is needed for this tutorial, and this c You don't need to have a participant-specific configuration file in a participant case (even though that would be nice). Instead, you can hard-code the configuration of each participant in the code and select the respective participant via a command-line argument. A case-specific `run.sh` that provides the participant as command-line argument is enough. +If you write any output, it would be very helpful to keep it tidy (e.g., in a dedicated `output/` directory). + ### The README file In the `README.md` file, following the general structure of the existing tutorials, document: From f84b8d33fab21db2f29e1acba8ac0f1a37e77cd1 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Mon, 12 Feb 2024 23:55:58 +0100 Subject: [PATCH 9/9] Split files list in two parts --- .../community-contribute-to-precice.md | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/pages/community/community-contribute-to-precice.md b/pages/community/community-contribute-to-precice.md index 825fb9fd152..46ed76226ce 100644 --- a/pages/community/community-contribute-to-precice.md +++ b/pages/community/community-contribute-to-precice.md @@ -63,6 +63,14 @@ Get in touch with us early and we will be very happy to help you with every step First time working with Git? Watch a [short lecture on the GitHub workflow](https://www.youtube.com/watch?v=kAqp2hhv-DU), or a [longer lecture on Git](https://missing.csail.mit.edu/2020/version-control/). +### What to contribute and where? + +Your case may already fit into one of the existing tutorials. If not, feel free to start a new one! A new case typically needs a new preCICE configuration file. + +Contribute only the files necessary for running the tutorial (no results or user-specific files). You can check this by looking at the "Files changed" tab on GitHub. + +If there is already a `precice-config.xml` for the case you are simulating, please use the same one (or contribute changes to that). We want that all solvers that can simulate a given case use the same preCICE configuration file. + ### Structure of a tutorial Our tutorials generally follow a file structure similar to this: @@ -72,9 +80,6 @@ Our tutorials generally follow a file structure similar to this: - README.md # description of the case - precice.config.xml # a works-with-all preCICE configuration file - clean-tutorial.sh # a symbolic link (see ../tools/) - - # gnuplot or simple Python scripts - - images/ # any images used by the documentation - - solver-/ # any configurable, tutorial-specific code, e.g., solver-fenics - / # e.g. fluid-openfoam/ - run.sh # a short script to run the solver1 case - clean.sh # a short script to clean the solver1 case @@ -83,17 +88,18 @@ Our tutorials generally follow a file structure similar to this: - run.sh - clean.sh - - - reference-results/ # results from different case combinations, used for regression tests - - .tar.gz # Git LFS objects, generated from GitHub Actions ``` -Your case may already fit into one of the existing tutorials. If not, feel free to start a new one! A new case typically needs a new preCICE configuration file. - -### What to contribute and where? +Other files you may encounter are the following: -Contribute only the files necessary for running the tutorial (no results or user-specific files). You can check this by looking at the "Files changed" tab on GitHub. - -If there is already a `precice-config.xml` for the case you are simulating, please use the same one (or contribute changes to that). We want that all solvers that can simulate a given case use the same preCICE configuration file. +```bash +- / + - # gnuplot or simple Python scripts + - images/ # any images used by the documentation + - solver-/ # any configurable, tutorial-specific code, e.g., solver-fenics + - reference-results/ # results from different case combinations, used for regression tests + - .tar.gz # Git LFS objects, generated from GitHub Actions +``` ### The run.sh scripts @@ -129,7 +135,7 @@ If you add a complete new tutorial case, the case also needs to be added to the ### Naming conventions - Directories use `-` to separate words, not `_`, and only use lowercase. - - We use `_` for separating case combinations, e.g., in the reference results: `fluid-openfoam_solid-calculix.tar.gz`. + - We use `_` for separating case combinations, e.g., in the reference results: `fluid-openfoam_solid-calculix.tar.gz`. - Data and mesh names should start with uppercase and use `-` as separator. - Data names are in singular, e.g. `Stress`, `Heat-Flux`. - Mesh names start with the participant/domain name, e.g. `Fluid-Mesh`.