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