From dcb26c019f5054ddf06465f3b5c84b5797dbf889 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Chi-Tu=C3=A2n=20Pham?= <chi-tuan.pham@edf.fr>
Date: Sun, 29 Dec 2024 23:35:58 +0100
Subject: [PATCH] [VnV][telemac3d] Update particles example with better choices
 for a few keywords - use of gradient conjugate + preconditioning 34 = 2*17 to
 solve PPE, more efficient than GMRES for this example - switch from
 characteristics to defaul advection scheme for velocities (LIPS) to decrease
 differences between sequential and parallel runs - use preconditioning 34 for
 the diffusion of velocities (a little bit more efficient) - default
 accuracies for propagation and PPE with this setting of solvers (1.E-8)

---
 examples/telemac3d/particles/doc/particles.tex | 15 ++++++++++++---
 examples/telemac3d/particles/f3d_particles.slf |  4 ++--
 examples/telemac3d/particles/t3d_particles.cas | 11 ++++-------
 examples/telemac3d/particles/vnv_particles.py  |  6 +++---
 4 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/examples/telemac3d/particles/doc/particles.tex b/examples/telemac3d/particles/doc/particles.tex
index c31430d38b..886f55c05f 100644
--- a/examples/telemac3d/particles/doc/particles.tex
+++ b/examples/telemac3d/particles/doc/particles.tex
@@ -73,9 +73,18 @@ The time step is 5~s for a simulated period of  2~h (= 7,200~s).
 
 The non-hydrostatic version is used.
 
-To solve the advection, the method of characteristics
-is used for the velocities (scheme 1).
-The GMRES is used for solving the propagation and PPE steps (option 7).
+To solve the advection of velocities, the default choice (LIPS) is used rather
+than the method of characteristics (scheme 1) so that the differences
+between sequential and parallel runs are decreased.
+NERD scheme (\# 13) can also be used for that purpose.
+The GMRES is used for solving the propagation (option 7 = default choice)
+whereas the conjugate gradient (option 1) combined with preconditioning = 34
+= 2 $times$ 17 is used for solving PPE as more efficient than GMRES for this
+example.
+Moreover, preconditioning for velocities is also set to 34 (a little bit
+more efficient).
+With this setting, accuracies for propagation, PPE and diffusion of velocities
+can be let to default values (10$^{-8}$).
 
 A maximum of 100 drogues are released.
 %and control sections are calculated between two couples of nodes.
diff --git a/examples/telemac3d/particles/f3d_particles.slf b/examples/telemac3d/particles/f3d_particles.slf
index e15df02db3..303ce58f9a 100644
--- a/examples/telemac3d/particles/f3d_particles.slf
+++ b/examples/telemac3d/particles/f3d_particles.slf
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:23a2e3103c5d0c45429464dd426dfb7327ceaa815f9cb82c165cdc62c85ed839
-size 1714096
+oid sha256:92a93b00054273dfe02fef8280dff1d45733cc4c42ebd27dd0c3916f4b3371d2
+size 1387844
diff --git a/examples/telemac3d/particles/t3d_particles.cas b/examples/telemac3d/particles/t3d_particles.cas
index 3c9b238334..82bfe761b8 100644
--- a/examples/telemac3d/particles/t3d_particles.cas
+++ b/examples/telemac3d/particles/t3d_particles.cas
@@ -36,7 +36,6 @@ HORIZONTAL TURBULENCE MODEL = 1
 VERTICAL TURBULENCE MODEL = 2
 MIXING LENGTH MODEL       = 1   / OLD DEFAULT VALUE UNTIL V8P5
 /
-IMPLICITATION FOR DEPTH = 1.
 PRESCRIBED ELEVATIONS   :  265.;0.
 PRESCRIBED FLOWRATES    :  0.;700.
 /
@@ -48,12 +47,10 @@ MASS-LUMPING FOR DIFFUSION : 1.
 /
 /  SYSTEMES LINEAIRES DE L'OPTION NON-HYDROSTATIQUE
 /
-ACCURACY FOR PPE = 1.E-5
+SOLVER FOR PPE = 1
+PRECONDITIONING FOR PPE = 34
+/
+PRECONDITIONING FOR DIFFUSION OF VELOCITIES = 34
 /
 MAXIMUM NUMBER OF DROGUES : 100
 PRINTOUT PERIOD FOR DROGUES :  36
-/
-/ DEFAULT VALUES UNTIL V8P0 KEPT FOR NON REGRESSION
-SCHEME FOR ADVECTION OF VELOCITIES = 1
-IMPLICITATION FOR VELOCITIES = 1.
-ACCURACY FOR PROPAGATION = 1.E-6
diff --git a/examples/telemac3d/particles/vnv_particles.py b/examples/telemac3d/particles/vnv_particles.py
index fc8f750062..6b0df4402f 100644
--- a/examples/telemac3d/particles/vnv_particles.py
+++ b/examples/telemac3d/particles/vnv_particles.py
@@ -49,17 +49,17 @@ class VnvStudy(AbstractVnvStudy):
         # Comparison with the last time frame of the reference file.
         self.check_epsilons('vnv_1:T3DRES',
                             'f3d_particles.slf',
-                            eps=[7e-5, 0.013, 7e-3, 3e-3])
+                            eps=[1e-8])
 
         # Comparison with the last time frame of the reference file.
         self.check_epsilons('vnv_2:T3DRES',
                             'f3d_particles.slf',
-                            eps=[4e-5, 0.01, 7e-3, 3e-3])
+                            eps=[1e-8])
 
         # Comparison between sequential and parallel run.
         self.check_epsilons('vnv_1:T3DRES',
                             'vnv_2:T3DRES',
-                            eps=[7e-5, 0.014, 7e-3, 3e-3])
+                            eps=[1e-8])
 
 
     def _post(self):
-- 
GitLab