From a9704cc34cdc09ac804edccbea3103cc71252a3e 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 19:01:56 +0100 Subject: [PATCH] [VnV][telemac3d] Update tide example (more efficient options to solve systems) - SOLVER FOR PROPAGATION = 7 (GMRES) + SOLVER FOR PPE = 1 (conjugate gradient) + PRECONDITIONING FOR PPE = 34 (=2*17) rather than conjugate residual (= 2) for propagation and GMRES for PPE - accuracies for propagation and PPE set to default values (1.E-8) --- examples/telemac3d/tide/doc/tide.tex | 10 ++++++++++ examples/telemac3d/tide/f3d_tide-jmj_real_gen.slf | 2 +- examples/telemac3d/tide/f3d_tide-jmj_type.slf | 2 +- examples/telemac3d/tide/t3d_tide-jmj_real_gen.cas | 13 +++---------- examples/telemac3d/tide/t3d_tide-jmj_type.cas | 13 +++---------- examples/telemac3d/tide/vnv_tide.py | 8 ++++---- 6 files changed, 22 insertions(+), 26 deletions(-) diff --git a/examples/telemac3d/tide/doc/tide.tex b/examples/telemac3d/tide/doc/tide.tex index f7977e1c2f..c5dcf61564 100644 --- a/examples/telemac3d/tide/doc/tide.tex +++ b/examples/telemac3d/tide/doc/tide.tex @@ -94,6 +94,16 @@ Free Surface Gradient Compatibility = 0.5 (not 0.9) to prevent on wiggles\\ Tidal flats with correction of Free Surface by elements, treatments to have $h \ge 0$ +\\ + +GMRES is used to solve propagation (\telkey{SOLVER FOR PROPAGATION} = 7) +and conjugate gradient + preconditioning = 34 for Poisson Pressure +Equation (\telkey{SOLVER FOR PPE} = 1 + \telkey{PRECONDITIONING FOR PPE} = 34). +With these choices, the accuracies for propagation and PPE can be let to default +values (= 10$^{-8}$). +These choices are more efficient than previous choices for this example: +\telkey{SOLVER FOR PROPAGATION} = 2 (conjugate residual) and +\telkey{SOLVER FOR PPE} = 7 (GMRES = default). \subsection{Comments} diff --git a/examples/telemac3d/tide/f3d_tide-jmj_real_gen.slf b/examples/telemac3d/tide/f3d_tide-jmj_real_gen.slf index 9171948d9f..d9a9b030c3 100644 --- a/examples/telemac3d/tide/f3d_tide-jmj_real_gen.slf +++ b/examples/telemac3d/tide/f3d_tide-jmj_real_gen.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d70f479410beb3b46edab7ef9e1e1dde910e0d31e870347b841a2e2bb62e856d +oid sha256:706936a9d927b031874b2972fef5ccdef8e97f0870cd7cc77fa85dca00271961 size 1787732 diff --git a/examples/telemac3d/tide/f3d_tide-jmj_type.slf b/examples/telemac3d/tide/f3d_tide-jmj_type.slf index a94aa2bd5d..368617117a 100644 --- a/examples/telemac3d/tide/f3d_tide-jmj_type.slf +++ b/examples/telemac3d/tide/f3d_tide-jmj_type.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f3718a53e88b286af813cab3149546a7f3c65e921c2604d7e716806ee9fcb7e3 +oid sha256:060c629d83c71ee22b1e2456e00af9f830ad4ebc1ffd8949d5f635ea868869dd size 1787732 diff --git a/examples/telemac3d/tide/t3d_tide-jmj_real_gen.cas b/examples/telemac3d/tide/t3d_tide-jmj_real_gen.cas index e42690db9e..69ac338fae 100644 --- a/examples/telemac3d/tide/t3d_tide-jmj_real_gen.cas +++ b/examples/telemac3d/tide/t3d_tide-jmj_real_gen.cas @@ -30,7 +30,6 @@ TIDAL FLATS : YES OPTION FOR THE TREATMENT OF TIDAL FLATS : 1 / TO HAVE POSITIVE DEPTHS EVERYWHERE TREATMENT OF NEGATIVE DEPTHS : 2 -MAXIMUM NUMBER OF ITERATIONS FOR ADVECTION SCHEMES : 20 OPTION FOR LIQUID BOUNDARIES : 2 /-------------------------------------------------- / TIDE CONDITIONS @@ -60,19 +59,13 @@ SCHEME FOR ADVECTION OF VELOCITIES : 1 NON-HYDROSTATIC VERSION : YES FREE SURFACE GRADIENT COMPATIBILITY : 0.5 / -ACCURACY FOR DIFFUSION OF VELOCITIES : 1.E-6 PRECONDITIONING FOR DIFFUSION OF VELOCITIES : 34 /---------------------------------------------------------------------/ / PROPAGATION / /---------------------------------------------------------------------/ -SOLVER FOR PROPAGATION : 2 -ACCURACY FOR PPE : 1.E-6 -/PRECONDITIONING FOR PPE : 17 -IMPLICITATION FOR DEPTH : 1. +SOLVER FOR PROPAGATION : 7 / UNTIL 9.0 : 2 +SOLVER FOR PPE : 1 +PRECONDITIONING FOR PPE : 34 / MASS-LUMPING FOR DEPTH : 1. MASS-LUMPING FOR DIFFUSION : 1. -/ -/ DEFAULT VALUES UNTIL V8P0 KEPT FOR NON REGRESSION -IMPLICITATION FOR VELOCITIES = 1. -ACCURACY FOR PROPAGATION = 1.E-6 diff --git a/examples/telemac3d/tide/t3d_tide-jmj_type.cas b/examples/telemac3d/tide/t3d_tide-jmj_type.cas index 76ec76927a..521e9f236b 100644 --- a/examples/telemac3d/tide/t3d_tide-jmj_type.cas +++ b/examples/telemac3d/tide/t3d_tide-jmj_type.cas @@ -26,7 +26,6 @@ TIDAL FLATS : YES OPTION FOR THE TREATMENT OF TIDAL FLATS : 1 / TO HAVE POSITIVE DEPTHS EVERYWHERE TREATMENT OF NEGATIVE DEPTHS : 2 -MAXIMUM NUMBER OF ITERATIONS FOR ADVECTION SCHEMES : 20 OPTION FOR LIQUID BOUNDARIES : 2 /-------------------------------------------------- / TIDE CONDITIONS @@ -55,19 +54,13 @@ SCHEME FOR ADVECTION OF VELOCITIES : 1 NON-HYDROSTATIC VERSION : YES FREE SURFACE GRADIENT COMPATIBILITY : 0.5 / -ACCURACY FOR DIFFUSION OF VELOCITIES : 1.E-6 PRECONDITIONING FOR DIFFUSION OF VELOCITIES : 34 /---------------------------------------------------------------------/ / PROPAGATION / /---------------------------------------------------------------------/ -SOLVER FOR PROPAGATION : 2 -ACCURACY FOR PPE : 1.E-6 -/PRECONDITIONING FOR PPE : 17 -IMPLICITATION FOR DEPTH : 1. +SOLVER FOR PROPAGATION : 7 / UNTIL 9.0 : 2 +SOLVER FOR PPE : 1 +PRECONDITIONING FOR PPE : 34 / MASS-LUMPING FOR DEPTH : 1. MASS-LUMPING FOR DIFFUSION : 1. -/ -/ DEFAULT VALUES UNTIL V8P0 KEPT FOR NON REGRESSION -IMPLICITATION FOR VELOCITIES = 1. -ACCURACY FOR PROPAGATION = 1.E-6 diff --git a/examples/telemac3d/tide/vnv_tide.py b/examples/telemac3d/tide/vnv_tide.py index 5fa6fc3ac4..e94be857b1 100644 --- a/examples/telemac3d/tide/vnv_tide.py +++ b/examples/telemac3d/tide/vnv_tide.py @@ -56,22 +56,22 @@ class VnvStudy(AbstractVnvStudy): # Comparison with the last time frame of the reference file. self.check_epsilons('vnv_1:T3DRES', 'f3d_tide-jmj_type.slf', - eps=[8.E-3, 3.E-2, 2.E-2, 2.E-3]) + eps=[2.E-2, 5.E-2, 5.E-2, 4.E-3]) # Comparison with the last time frame of the reference file. self.check_epsilons('vnv_2:T3DRES', 'f3d_tide-jmj_type.slf', - eps=[8.E-3, 3.E-2, 2.E-2, 2.E-3]) + eps=[2.E-2, 5.E-2, 5.E-2, 4.E-3]) # Comparison between sequential and parallel run. self.check_epsilons('vnv_1:T3DRES', 'vnv_2:T3DRES', - eps=[8.E-3, 3.E-2, 2.E-2, 2.E-3]) + eps=[2.E-2, 4.E-2, 7.E-2, 4.E-3]) # Comparison with the last time frame of the reference file. self.check_epsilons('vnv_3:T3DRES', 'f3d_tide-jmj_real_gen.slf', - eps=[4.0E-1, 3.1E0, 1.1E0, 7.E-2]) + eps=[0.98E0, 2.5E0, 0.64E0, 9.E-2]) def _post(self): -- GitLab