From f7beae38b8546cfd5d550d18e2224580250d96c4 Mon Sep 17 00:00:00 2001 From: Jun Chen Date: Thu, 19 Mar 2026 13:38:24 +0100 Subject: [PATCH 1/2] Add documentation to set methods for bound violation in QN acceleration --- .../docs/configuration/basics/configuration-acceleration.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/content/docs/configuration/basics/configuration-acceleration.md b/content/docs/configuration/basics/configuration-acceleration.md index 8cb1821234b..0d0977cc3f2 100644 --- a/content/docs/configuration/basics/configuration-acceleration.md +++ b/content/docs/configuration/basics/configuration-acceleration.md @@ -119,7 +119,7 @@ For some cases, the default settings are not sufficient and a more detailed conf For `IQN-ILS`, the complete configuration with all options specified explicitly to the default settings is as follows: ```xml - + @@ -133,7 +133,7 @@ For `IQN-ILS`, the complete configuration with all options specified explicitly and for `IQN-IMVJ`, it is: ```xml - + @@ -149,6 +149,7 @@ For the detailed meaning of the various options, please refer to the [configurat Here are some brief explanations and hints on good combinations of choices for the configuration options: +* The attribute `on-bound-violation` is used to handle the quasi-Newton acceleration steps that violate the bound configured for scalar or component(s) of vector under the `data` tag. This attribute can be set to different options to constrain the acceleration step to stay in the bound. While `discard` and `clamp` are convenient options for single value or occasional bound violation, `scale` helps to retain the direction of the QN step by only shortening the step length. The best option for this attribute is problem-dependent. * If several primary data fields are configured, e.g. when parallel coupling is used, an equal order of magnitude of them has to be ensured. This is done by defining a `preconditioner`. * As `type`, we recommend to use `"residual-sum"` as in the default setting. * The option `update-on-threshold` can be used to avoid updates of the preconditioner in case of small changes of the preconditioning factors. From 82dacba2778bc953bef29f1e946f88cab9e484b6 Mon Sep 17 00:00:00 2001 From: June <94080048+Fujikawas@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:02:46 +0100 Subject: [PATCH 2/2] explain the options --- .../configuration/basics/configuration-acceleration.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/content/docs/configuration/basics/configuration-acceleration.md b/content/docs/configuration/basics/configuration-acceleration.md index 0d0977cc3f2..1e55cf4255e 100644 --- a/content/docs/configuration/basics/configuration-acceleration.md +++ b/content/docs/configuration/basics/configuration-acceleration.md @@ -149,7 +149,13 @@ For the detailed meaning of the various options, please refer to the [configurat Here are some brief explanations and hints on good combinations of choices for the configuration options: -* The attribute `on-bound-violation` is used to handle the quasi-Newton acceleration steps that violate the bound configured for scalar or component(s) of vector under the `data` tag. This attribute can be set to different options to constrain the acceleration step to stay in the bound. While `discard` and `clamp` are convenient options for single value or occasional bound violation, `scale` helps to retain the direction of the QN step by only shortening the step length. The best option for this attribute is problem-dependent. +* The attribute `on-bound-violation` is used to handle the quasi-Newton(QN) acceleration steps that violate the bound configured for scalar or component(s) of vector under the `data` tag. This attribute can be set to different options to constrain the acceleration step to stay in the bound. The options avaiable are: + * `ignore`: default option. preCICE will not check if the accelerated values are violating the bound, thus no warning etc. + * `discard`: preCICE checks the accelerated values against the given bound(s) after a QN update step is computed. If any violation is found, this update step will be discarded, i.e. next iteration will start with the output from last iteration. + * `clamp`: preCICE checks the accelerated values against the given bound(s) after a QN update step is computed. The violating values will be clamped to the bounds respectively. Non-violating values are not influenced by this check. + * `scale`: preCICE checks the accelerated values against the given bound(s) after a QN update step is computed. If any violation is found, the update from this QN step is scaled by a scalar factor between 0 and 1, to fit all the violating values into the bounded range. + + While `discard` and `clamp` are convenient options for single value or occasional bound violation, `scale` helps to retain the direction of the QN step by only shortening the step length. The best option for this attribute is problem-dependent. * If several primary data fields are configured, e.g. when parallel coupling is used, an equal order of magnitude of them has to be ensured. This is done by defining a `preconditioner`. * As `type`, we recommend to use `"residual-sum"` as in the default setting. * The option `update-on-threshold` can be used to avoid updates of the preconditioner in case of small changes of the preconditioning factors.