diff --git a/.gitmodules b/.gitmodules index 0d55c48747..02e0f8763a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -18,3 +18,7 @@ path = imported/fmi-runner url = https://github.com/precice/fmi-runner branch = main +[submodule "imported/su2-adapter"] + path = imported/su2-adapter + url = https://github.com/precice/su2-adapter + branch = develop diff --git a/README.md b/README.md index ff927cf12c..850cff1edc 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,36 @@ Do not directly edit the content of the submodules from within the website repos If you would like to learn more about the preCICE documentation, a good start are the [documentation of the documentation pages](https://precice.org/docs-meta-overview.html). +## Changing the news banner + +Edit [`_includes/news_banner.html`](_includes/news_banner.html). + +A good starting point is the following: + +```html +
+``` + +Use the following to selectively change appearance. + +```html +{% if include.landing %} + Displayed on the landing page. +{% else %} + Displayed on other pages. +{% endif %} +``` + ## Common issues while building the site * If you get permission issues to install gems, resist the impulse of `sudo`: you can install the dependencies locally by running `bundle config set --local path 'vendor/bundle'` before `bundle install`. diff --git a/_config.yml b/_config.yml index a67dfd6f2c..774b45e798 100644 --- a/_config.yml +++ b/_config.yml @@ -174,6 +174,18 @@ defaults: topnav: topnav toc: true github_editme_path: https://github.com/precice/fmi-runner/edit/main/ # ends in / + - + scope: + path: "imported/su2-adapter/" + type: "pages" + values: + layout: "page" + comments: false + search: true + sidebar: docs_sidebar + topnav: topnav + toc: true + github_editme_path: https://github.com/precice/su2-adapter/edit/develop/ # ends in / - scope: path: "pages/community" @@ -252,6 +264,7 @@ subprojects: - imported/micro-manager/docs - imported/fmi-runner/docs - imported/aste/docs + - imported/su2-adapter/docs # We use these versions to centrally update links # and other version-specific information. diff --git a/_includes/news_banner.html b/_includes/news_banner.html index 0097126344..3b00f02b47 100644 --- a/_includes/news_banner.html +++ b/_includes/news_banner.html @@ -1,14 +1,6 @@ -{% comment %}{% raw %} - -For landing-only news use: {% if include.onlanding %} - -For news visible on all pages use: -{% if true %}. - -{% endraw %}{% endcomment %} - -{% if true %} +{% else %} +{% endif %} - -{% endif %} diff --git a/_layouts/landing_page.html b/_layouts/landing_page.html index 651720c929..4ba77b5bdb 100644 --- a/_layouts/landing_page.html +++ b/_layouts/landing_page.html @@ -12,7 +12,7 @@ {% include news_banner.html onlanding=true %} - + {{content}} diff --git a/imported/micro-manager b/imported/micro-manager index 6d26f1645e..7ce6b34b47 160000 --- a/imported/micro-manager +++ b/imported/micro-manager @@ -1 +1 @@ -Subproject commit 6d26f1645ea785fec5746870c8c4d80944f64f3d +Subproject commit 7ce6b34b478fbd4f834f442d4e82a258a95f54cd diff --git a/imported/su2-adapter b/imported/su2-adapter new file mode 160000 index 0000000000..83ca32484c --- /dev/null +++ b/imported/su2-adapter @@ -0,0 +1 @@ +Subproject commit 83ca32484c4e60a9122afdb921c332c654f22f27 diff --git a/imported/tutorials b/imported/tutorials index da7a1494f5..8e832c2afb 160000 --- a/imported/tutorials +++ b/imported/tutorials @@ -1 +1 @@ -Subproject commit da7a1494f5c36b4ef509daf2a43bfee42fb32d9d +Subproject commit 8e832c2afb94e60a1ed810650a4c1cb6436ad262 diff --git a/pages/docs/adapters/su2/adapter-su2-configure.md b/pages/docs/adapters/su2/adapter-su2-configure.md deleted file mode 100644 index e5814836ff..0000000000 --- a/pages/docs/adapters/su2/adapter-su2-configure.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Running simulations -permalink: adapter-su2-configure.html -keywords: adapter, su2, development, modules -summary: "Modify SU2 configuration file, specify interfaces by SU2 markers, run SU2 either serial or parallel" ---- - -## SU2 configuration file - -The adapter is turned on or off via the native SU2 configuration file. If it is turned off, SU2 executes in its original version. Moreover, the adapter is configured in the SU2 configuration file. The following adapter-related options are currently available (default values given in brackets): - -1. `PRECICE_USAGE` (NO): Determines whether a preCICE-coupled simulation is run or not. -2. `PRECICE_VERBOSITYLEVEL_HIGH` (NO): Produces more output, mainly for debugging purposes. -3. `PRECICE_LOADRAMPING` (NO): Allows to linearly ramp up the load on the structural component at the beginning of the simulation. This may resolve stability issues due to large loads at the beginning of simulations. -4. `PRECICE_CONFIG_FILENAME` (precice-config.xml): Location and name of the preCICE configuration file. -5. `PRECICE_PARTICIPANT_NAME` (SU2): Name of the participant in the preCICE configuration file. -6. `PRECICE_MESH_NAME` (SU2-Mesh): Name of the mesh in the preCICE configuration file. -7. `PRECICE_READ_DATA_NAME` (Displacements): Name of the read data in the preCICE configuration file. The SU2-adapter supports reading absolute displacements and relative displacements. The adapter picks up the respective data field according to the name: 'Displacement' for absolute displacement and 'DisplacementDelta' for relative displacement. {% important %} - Note that reading 'Displacement' data has been added for compatibility reasons with our tutorials and it cannot be used with `extrapolation` in your configuration. Only the relative `DisplacementDelta` data supports this feature. -{% endimportant %} -8. `PRECICE_WRITE_DATA_NAME` (Forces): Name of the write data in the preCICE configuration file. -9. `PRECICE_WETSURFACE_MARKER_NAME` (wetSurface): Name of the marker, which identifies the FSI interface in the geometry file of SU2. -10. `PRECICE_LOADRAMPING_DURATION` (1): Number of time steps, in which the load ramping is active, counting from the beginning of the simulation. The ramped load increases linearly with each time step. -11. `PRECICE_NUMBER_OF_WETSURFACES` (1): In case multiple FSI-interfaces exist, their count needs to specified here. - -If multiple interfaces exist, the names of all related entries (`PRECICE_WETSURFACE_MARKER_NAME`, `PRECICE_READ_DATA_NAME`,`PRECICE_WRITE_DATA_NAME`, `PRECICE_MESH_NAME`) must be appended by consecutive numbers. Hence, the names (also in the geometry file) need to be alike differing only by the appending number, which must be successively increasing from zero. E.g. for three interfaces, the marker name could be defined as `PRECICE_WETSURFACE_MARKER_NAME= wetSurface` in the SU2 configuration file, while the markers in the geometry file would need to be named *wetSurface*, *wetSurface1* and *wetSurface2*. - -Moreover, in the SU2 configuration file grid movement must be allowed: `GRID_MOVEMENT= YES` and the type of grid movement must be set correctly for preCICE-coupled simulations: `GRID_MOVEMENT_KIND= PRECICE_MOVEMENT`. Also, the boundary, which is allowed to move needs to be specified. Here the name of the FSI-interface marker including its appending identifying number as stated above needs to be used, e.g., `MARKER_MOVING= ( wetSurface0 )`. If multiple FSI-interfaces exist (as in the example above), this may look like `MARKER_MOVING= ( wetSurface, wetSurface1, wetSurface2 )`. - -## Running the adapted SU2 executable - -Since the adapter (as well as its options) is turned on or off via the SU2 configuration file, the execution procedure is just as for the original version of SU2. For execution with one process working on the fluid domain from the directory, in which both the SU2_CFD executable and the SU2 configuration file are located: - -`./SU2_CFD su2ConfigurationFile.cfg` - -The adapter is designed such that it can be executed in an intra-parallel manner meaning that the flow domain is decomposed into several parts. The execution is then as follows (again assuming that executable and configuration file are within the current directory; exemplifying a decomposition of the fluid domain with eight processes): - -`mpirun -n 8 ./SU2_CFD su2ConfigurationFile.cfg` diff --git a/pages/docs/adapters/su2/adapter-su2-get.md b/pages/docs/adapters/su2/adapter-su2-get.md deleted file mode 100644 index c7e3b4ca4b..0000000000 --- a/pages/docs/adapters/su2/adapter-su2-get.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Build the adapter -permalink: adapter-su2-get.html -keywords: adapter, su2, development, modules -summary: "Get SU2, get preCICE, execute adapter install script" ---- - -### SU2 - -Before installing the adapter SU2 itself must be downloaded from [SU2 repository](https://github.com/su2code/SU2). If necessary unpack the code and move it to your preferred location. Please do not configure and build the package before installing the adapter. In case you have already used SU2 you will need to rebuild the suite after installing the adapter. - -### preCICE - -It is assumed that preCICE has been installed successfully beforehand. Concerning installation instructions for preCICE, have a look at the [preCICE installation documentation](../../installation/installation-overview.md) - -### Adapter - -In order to run SU2 with the preCICE adapter, some SU2-native solver routines need to be changed. The altered SU2 files are provided with this adapter in the directory "replacement_files". Moreover, preCICE-specific files are contained in the directory "adapter_files". These need to be added to the source code of SU2. A simple shell script called su2AdapterInstall comes with the adapter, which automates this process and replaces/copies the adapted and preCICE-specific files to the correct locations within the SU2 package including the appropriately adjusted Makefile of SU2. For the script to work correctly, the environment variable `SU2_HOME` needs to be set to the location of SU2 (top-level directory). - -{% note %} -If you run `./configure --prefix=$SU2_HOME` and get the error `configure: error: cannot find python-config for /usr/bin/python`, check via `ls /usr/bin` whether there is a `python-config` and/or `python2.7-config`. If not, you can create a symbolic link via `ln /usr/bin/python3-config /usr/bin/python-config` such that `python-config` uses `python3-config`. -{% endnote %} - -It is recommended to set these variables permanently in your `~/.bashrc` (Linux) or `~/.bash_profile` (Mac). After setting these variables the script `su2AdapterInstall` can be run from the directory, in which it is contained: -`./su2AdapterInstall` -The script will not execute if the environment variables are unset or empty. - -If you do not want to use this script, manually copy the files to the locations given in it. The two environment variables need to be defined as stated above, nevertheless. - -After copying the adapter files to the correct locations within the SU2 package, SU2 can be configured and built just like the original version of the solver suite. Please refer to the installation instructions provided with the SU2 source code. SU2 should be built with MPI support in order to make use of parallel functionalities. The script su2AdapterInstall states recommended command sequences for both the configuration and the building process upon completion of the execution. - -The SU2 executable is linked against the dynamic library of preCICE, so make sure you have built it like this. diff --git a/pages/docs/adapters/su2/adapter-su2-overiew.md b/pages/docs/adapters/su2/adapter-su2-overiew.md deleted file mode 100644 index 8bb9e3384d..0000000000 --- a/pages/docs/adapters/su2/adapter-su2-overiew.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: The SU2 adapter -permalink: adapter-su2-overview.html -redirect_from: adapter-su2.html -keywords: adapter, su2, development, modules -summary: "Modify native SU2 files to couple with other solvers or SU2 itself" ---- - -## What is this? - -The SU2-preCICE adapter is an extended version of the compressible SU2 CFD-solver, that allows to couple SU2 to other solvers via preCICE. In the moment it can be used for FSI simulations with any respective CSM-solver that has an adapter to preCICE. The SU2-preCICE adapter represents the Fluid part of the FSI-simulation and is able to write forces to and read displacementdeltas from its structural counterpart via preCICE. - -## Try - -Here you will find how to [get the adapter](adapter-su2-get.html) and [how to configure](adapter-su2-configure.html) a case. -A tutorial case that uses this adapter is the [perpendicular flap tutorial](tutorials-perpendicular-flap.html). - -## References - -[1] Alexander Rusch. [Extending SU2 to Fluid-Structure Interaction via preCICE](http://www5.in.tum.de/pub/Rusch2016_BA.pdf). Bachelor's thesis, Munich School of Engineering, Technical University of Munich, 2016. diff --git a/pages/docs/configuration/configuration-coupling.md b/pages/docs/configuration/configuration-coupling.md index ab40601563..109b822dea 100644 --- a/pages/docs/configuration/configuration-coupling.md +++ b/pages/docs/configuration/configuration-coupling.md @@ -78,11 +78,11 @@ For implicit coupling, you need to specify several additional options: ``` -To control the number of sub-iterations within an implicit coupling loop, you can specify the maximum number of iterations, `max-iterations` and you can specify one or several **convergence measures**: +To control the number of sub-iterations within an implicit coupling loop, you can specify the minimum and maximum number of iterations using `min-iterations` and `max-iterations` and you can specify one or several **convergence measures**: * `relative-convergence-measure` for a relative criterion * `absolute-convergence-measure` for an absolute criterion -* `min-iteration-convergence-measure` to require a minimum of iterations +* `absolute-or-relative-convergence-measure` for a combined absolute and relative criterion If multiple convergence measure are combined they all need to be fulfilled to go to the next time window. Alternatively, you can specify `suffices="yes"` within any convergence measure. The data used for a convergence measure needs to be exchanged within the coupling-scheme (tag `exchange`). diff --git a/pages/docs/configuration/configuration-xml-reference.md b/pages/docs/configuration/configuration-xml-reference.md index 9acca59887..42dfb8f364 100644 --- a/pages/docs/configuration/configuration-xml-reference.md +++ b/pages/docs/configuration/configuration-xml-reference.md @@ -2,7 +2,7 @@ title: XML reference permalink: configuration-xml-reference.html keywords: configuration, xml, reference -summary: "On this page you find the complete configuration references of preCICE API." +summary: "This side contains the full reference of the XML configuration of preCICE, containing the tag structure as well as attributes and their types and values." --- {% warning %} diff --git a/pages/docs/couple-your-code/couple-your-code-time-step-sizes.md b/pages/docs/couple-your-code/couple-your-code-time-step-sizes.md index 6b3b8e3022..6045a0fef0 100644 --- a/pages/docs/couple-your-code/couple-your-code-time-step-sizes.md +++ b/pages/docs/couple-your-code/couple-your-code-time-step-sizes.md @@ -75,6 +75,48 @@ This procedure is independent of whether a serial or a parallel coupling scheme For parallel coupling, both solvers run together and everything happens simultaneously in both participants, while for serial coupling, the first participant needs reach the end of the window before the second one can start. {% endnote %} +### Possible subcycling pitfall + +If you are using very many small time steps in one window, you might see the following warning: + +```txt +preCICE just returned a maximum time step size of