diff --git a/examples/telemac3d/pildepon/doc/pildepon.tex b/examples/telemac3d/pildepon/doc/pildepon.tex index 5d2e65f3b01ca72ed8ac1d38b29548e946dfab81..5e21a35dded61901a7f6b3933a0b49016a68744a 100644 --- a/examples/telemac3d/pildepon/doc/pildepon.tex +++ b/examples/telemac3d/pildepon/doc/pildepon.tex @@ -6,6 +6,7 @@ This example demonstrates the ability of \telemac{3D} to represent the impact of an obstacle on a channel flow. It also demonstrates the capability to represent unsteady eddies in a model with steady state boundary. +Finally, it compares the advection of tracers with several methods. \section{Description} @@ -62,15 +63,44 @@ is made of 4,304 triangular elements (2,280 nodes). 2 computations are run: one with the hydrostatic hypothesis and one with non-hydrostatic version. -To solve the advection, the method of characteristics is used for velocities. +To solve the advection, the LIPS scheme is used for velocities (default choice). +It used to be the method of characteristics but there were differences between +sequential and parallel runs with this method for this example. + +GMRES is used for solving the propagation (option 7), conjugate gradient for the +diffusion of velocities (option 1). +Conjugate gradient is used to solve the Poisson Pressure Equation because +a little bit more efficient for this example. -GMRES is used for solving the propagation and diffusion of velocities (option 7). The implicitation coefficients for depth and velocities are respectively equal to 0.6 and 1. -The time step is 0.1~s for the hydrostatic version, 0.4~s for the -non-hydrostatic version. +The time step is 0.4~s for both hydrostatic and non-hydrostatic versions. The simulated period is 80~s for both cases. +\\ + +Default value since release 9.0 for keyword \telkey{TREATMENT OF NEGATIVE DEPTHS} +(= 2, i.e. flux control) is chosen to improve the mass-conservation of water +(up to machine precision). +\\ + +In the non-hydrostatic example, 10 tracers are released from the inlet +(initial value = 0 for every tracer). +Horizontal coefficient for diffusion of tracers is equal to 0.01~m$^2$/s +whereas vertical coefficient for diffusion of tracers is equal to 0.1~m$^2$/s. +Every tracer is advected with a different advection scheme: +\begin{itemize} +\item Method of characteristics (= 1), +\item SUPG, +\item Leo Postma, +\item MURD N-type, +\item MURD PSI-Type, +\item NERD \#13, +\item NERD \#14, +\item Predictor-Correct order 1, +\item Predictor-Correct order 2, +\item LIPS. +\end{itemize} \subsection{Physical parameters} @@ -128,6 +158,87 @@ computations. \label{t3d:pildepon:FreeSurfNH} \end{figure} +Mass-conservation of tracer is not ensured with the method of characteristics. +With SUPG, it is not as good as other distributive schemes. +In the distributive schemes family, mass conservation of tracer with PSI and +NERD \#14 is less well preserved compared to the other advection schemes +(Leo Postma, N, NERD \#13, NERD Leo Postma for Tidal Flats, Predictor-Corrector +order 1 and 2 + LIPS). + +\begin{lstlisting}[language=TelFortran] + FINAL MASS BALANCE +T = 80.0000 + +--- WATER --- +INITIAL VOLUME : 1637.919 +FINAL VOLUME : 1649.809 +VOLUME EXITING (BOUNDARY OR SOURCE) : -11.88995 +TOTAL VOLUME LOST : -0.5378809E-11 + +--- TRACER 1: TRACEUR 1 , UNIT : CARACTERISTIQUES* M3) +INITIAL QUANTITY OF TRACER : 0.000000 +FINAL QUANTITY OF TRACER : 122.0862 +QUANTITY EXITING (BOUNDARY/SOURCE) : -161.2828 +TOTAL QUANTITY OF TRACER LOST : 39.19659 + +--- TRACER 2: TRACEUR 2 , UNIT : SUPG * M3) +INITIAL QUANTITY OF TRACER : 0.000000 +FINAL QUANTITY OF TRACER : 112.9911 +QUANTITY EXITING (BOUNDARY/SOURCE) : -112.9831 +TOTAL QUANTITY OF TRACER LOST : -0.7956231E-02 + +--- TRACER 3: TRACEUR 3 , UNIT : LPO * M3) +INITIAL QUANTITY OF TRACER : 0.000000 +FINAL QUANTITY OF TRACER : 131.6895 +QUANTITY EXITING (BOUNDARY/SOURCE) : -131.6895 +TOTAL QUANTITY OF TRACER LOST : 0.3009006E-09 + +--- TRACER 4: TRACEUR 4 , UNIT : NSC * M3) +INITIAL QUANTITY OF TRACER : 0.000000 +FINAL QUANTITY OF TRACER : 131.6393 +QUANTITY EXITING (BOUNDARY/SOURCE) : -131.6393 +TOTAL QUANTITY OF TRACER LOST : 0.3065850E-09 + +--- TRACER 5: TRACEUR 5 , UNIT : PSI * M3) +INITIAL QUANTITY OF TRACER : 0.000000 +FINAL QUANTITY OF TRACER : 124.5492 +QUANTITY EXITING (BOUNDARY/SOURCE) : -124.5492 +TOTAL QUANTITY OF TRACER LOST : -0.1365517E-05 + +--- TRACER 6: TRACEUR 6 , UNIT : LPO_TF * M3) +INITIAL QUANTITY OF TRACER : 0.000000 +FINAL QUANTITY OF TRACER : 131.7259 +QUANTITY EXITING (BOUNDARY/SOURCE) : -131.7259 +TOTAL QUANTITY OF TRACER LOST : -0.7301537E-09 + +--- TRACER 7: TRACEUR 7 , UNIT : NSC_TF * M3) +INITIAL QUANTITY OF TRACER : 0.000000 +FINAL QUANTITY OF TRACER : 131.6728 +QUANTITY EXITING (BOUNDARY/SOURCE) : -131.6728 +TOTAL QUANTITY OF TRACER LOST : 0.8511336E-07 + +--- TRACER 8: TRACEUR 8 , UNIT : PC1 * M3) +INITIAL QUANTITY OF TRACER : 0.000000 +FINAL QUANTITY OF TRACER : 123.0018 +QUANTITY EXITING (BOUNDARY/SOURCE) : -123.0018 +TOTAL QUANTITY OF TRACER LOST : 0.7421335E-09 + +--- TRACER 9: TRACEUR 9 , UNIT : PC2 * M3) +INITIAL QUANTITY OF TRACER : 0.000000 +FINAL QUANTITY OF TRACER : 122.9811 +QUANTITY EXITING (BOUNDARY/SOURCE) : -122.9811 +TOTAL QUANTITY OF TRACER LOST : 0.5133813E-09 + +--- TRACER10: TRACEUR 10 , UNIT : LIPS * M3) +INITIAL QUANTITY OF TRACER : 0.000000 +FINAL QUANTITY OF TRACER : 128.0557 +QUANTITY EXITING (BOUNDARY/SOURCE) : -128.0557 +TOTAL QUANTITY OF TRACER LOST : 0.4271499E-09 +\end{lstlisting} + +SUPG and LIPS for the advection of tracers are not the best parallelised +advection schemes for this example, to be investigated. + \section{Conclusion} \telemac{3D} can be used to study the hydrodynamic impact of engineering diff --git a/examples/telemac3d/pildepon/f3d_piledepon-nonhydro.slf b/examples/telemac3d/pildepon/f3d_piledepon-nonhydro.slf index 3690798b2bf22ee233bc9add15a030d32772aa85..023e250049f06c8f3023b128f2c976e275b1cb60 100644 --- a/examples/telemac3d/pildepon/f3d_piledepon-nonhydro.slf +++ b/examples/telemac3d/pildepon/f3d_piledepon-nonhydro.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0ec845fe6fddfde859dc29194b8bbcd54b215de94f3e4796aa8bce082aa7e9da -size 1885361 +oid sha256:855f5e4e48551af9b80560cab14c5c631050d327f5f2dddec3c8169492b62b23 +size 1447644 diff --git a/examples/telemac3d/pildepon/f3d_piledepon.slf b/examples/telemac3d/pildepon/f3d_piledepon.slf index fd17f313993ac7927308acf641508977e31b1529..70a1e9a40d4bda6722a291304e6302d61579dc23 100644 --- a/examples/telemac3d/pildepon/f3d_piledepon.slf +++ b/examples/telemac3d/pildepon/f3d_piledepon.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d8486c6413ff1632130cc72d1e5a85d82cc3fd27e4a00c68082fa8331b85c0bb -size 2651325 +oid sha256:ba48b659117f662ae21e00d991f212b513b96c8ba11416ef0c693be68a9c41f1 +size 899964 diff --git a/examples/telemac3d/pildepon/t3d_piledepon-nonhydro.cas b/examples/telemac3d/pildepon/t3d_piledepon-nonhydro.cas index de4499b28d6abdd1965ff805e81a548f158daf2d..0ddec245b519329d454c3e92f5da93dcd9c83eea 100644 --- a/examples/telemac3d/pildepon/t3d_piledepon-nonhydro.cas +++ b/examples/telemac3d/pildepon/t3d_piledepon-nonhydro.cas @@ -13,20 +13,15 @@ / SUR HPC3700 : version 6.1 : 285 s 21/01/11 / SUR HPC3700 : version 6.2 : 205 s 30/05/12 Calibre 7 : 37 s (1 proc) / +TITLE = 'TELEMAC 3D : RIVIERE AVEC DEUX PILES DE PONT$' +/ BOUNDARY CONDITIONS FILE : geo_piledepon.cli GEOMETRY FILE : geo_piledepon.slf LIQUID BOUNDARIES FILE : t3d_piledepon.qsl 3D RESULT FILE : r3d_piledepon-nonhydro.slf 2D RESULT FILE : r2d_piledepon-nonhydro.slf -/----------------------------------------------------------------------/ -FREE SURFACE GRADIENT COMPATIBILITY=0.75 -MASS-BALANCE : YES -TIDAL FLATS : YES -TREATMENT OF NEGATIVE DEPTHS : 2 -TREATMENT OF FLUXES AT THE BOUNDARIES : 2;2 -NUMBER OF HORIZONTAL LEVELS = 6 / -TITLE = 'TELEMAC 3D : RIVIERE AVEC DEUX PILES DE PONT$' +NUMBER OF HORIZONTAL LEVELS = 6 / / NOTE : IL FAUDRAIT 400 PAS DE TEMPS POUR VOIR LA PERIODICITE / @@ -40,6 +35,7 @@ GRAPHIC PRINTOUT PERIOD = 200 LISTING PRINTOUT PERIOD = 20 VARIABLES FOR 2D GRAPHIC PRINTOUTS = 'U,V,H,B,S,TA*' VARIABLES FOR 3D GRAPHIC PRINTOUTS = 'Z,U,V,W,TA*' +/ LAW OF BOTTOM FRICTION = 3 FRICTION COEFFICIENT FOR THE BOTTOM = 40. / @@ -50,6 +46,7 @@ COEFFICIENT FOR VERTICAL DIFFUSION OF VELOCITIES = 1.D-6 MIXING LENGTH MODEL = 1 / OLD DEFAULT VALUE UNTIL V8P5 / IMPLICITATION FOR DEPTH = 0.6 +FREE SURFACE GRADIENT COMPATIBILITY = 0.75 INITIAL CONDITIONS : 'ZERO ELEVATION' PRESCRIBED FLOWRATES : 0.;62. PRESCRIBED ELEVATIONS : 0.;0. @@ -58,32 +55,37 @@ PRESCRIBED ELEVATIONS : 0.;0. / NON-HYDROSTATIC VERSION : YES / +MASS-BALANCE : YES +/ MASS-LUMPING FOR DEPTH : 1. / SYSTEMES LINEAIRES DE L'OPTION NON-HYDROSTATIQUE -ACCURACY FOR PPE = 1.E-5 +SOLVER FOR PPE = 1 / -SCHEME FOR ADVECTION OF VELOCITIES : 1 +TREATMENT OF FLUXES AT THE BOUNDARIES : 2;2 / -NUMBER OF TRACERS : 7 +NUMBER OF TRACERS : 10 NAMES OF TRACERS : 'TRACEUR 1 CARACTERISTIQUES'; 'TRACEUR 2 SUPG '; 'TRACEUR 3 LPO '; 'TRACEUR 4 NSC '; 'TRACEUR 5 PSI '; 'TRACEUR 6 LPO_TF '; -'TRACEUR 7 NSC_TF ' -INITIAL VALUES OF TRACERS : 0.;0.;0.;0.;0.;0.;0. +'TRACEUR 7 NSC_TF '; +'TRACEUR 8 PC1 '; +'TRACEUR 9 PC2 '; +'TRACEUR 10 LIPS ' +INITIAL VALUES OF TRACERS : 0.;0.;0.;0.;0.;0.;0.;0.;0.;0. / /VALEURS MISES DANS CLI.TXT / GMRES IS CHOSEN FOR SUPG SCHEME (AND DOES NOT WORK WITH PRECONDITIONING 17) -SCHEME FOR ADVECTION OF TRACERS : 1;2; 3; 4; 5;13;14 -SOLVER FOR DIFFUSION OF TRACERS : 1;7; 1; 1; 1; 1; 1 -PRECONDITIONING FOR DIFFUSION OF TRACERS :34;2;34;34;34;34;34 +SCHEME FOR ADVECTION OF TRACERS : 1;2; 3; 4; 5;13;14; 5; 5; 5 +SCHEME OPTION FOR ADVECTION OF TRACERS : 1;1; 1; 1; 1; 1; 1; 2; 3; 4 +SOLVER FOR DIFFUSION OF TRACERS : 1;7; 1; 1; 1; 1; 1; 1; 1; 1 +PRECONDITIONING FOR DIFFUSION OF TRACERS :34;2;34;34;34;34;34;34;34;34 SUPG OPTION : 1 ACCURACY FOR DIFFUSION OF TRACERS : 1.D-12 COEFFICIENT FOR HORIZONTAL DIFFUSION OF TRACERS : 0.01 COEFFICIENT FOR VERTICAL DIFFUSION OF TRACERS : 0.1 -ACCURACY FOR PROPAGATION : 1.E-10 / / POUR ESSAI DE L'ELEMENT 51 / @@ -99,8 +101,3 @@ ACCURACY FOR PROPAGATION : 1.E-10 /SCHEMA POUR LA CONVECTION DES VITESSES : 5 /SCHEMA POUR LA CONVECTION DES TRACEURS : 2;3;4;5;13;14 /SOLVEUR POUR LA DIFFUSION DES TRACEURS : 7;1;1;1; 1; 1 -/ -/ DEFAULT VALUES UNTIL V8P0 KEPT FOR NON REGRESSION -IMPLICITATION FOR VELOCITIES = 1. -SCHEME OPTION FOR ADVECTION OF TRACERS : 1;1; 1; 1; 1; 1; 1 -OPTION OF SOLVER FOR DIFFUSION OF TRACERS = 3 diff --git a/examples/telemac3d/pildepon/t3d_piledepon.cas b/examples/telemac3d/pildepon/t3d_piledepon.cas index 3fa9f7b518d0564e3f5f26770b802cfb0339b540..01223e101ed590b4befb6dce1acbc99f057225d5 100644 --- a/examples/telemac3d/pildepon/t3d_piledepon.cas +++ b/examples/telemac3d/pildepon/t3d_piledepon.cas @@ -1,16 +1,3 @@ -/ HP C3700 : 314 s en version 5.3 -/ HP C3700 : 271 s en version 5.4 -/ HP C3700 : 128 s en version 5.5 16/12/2004 -/ HP C3700 : 119 s en version 5.5 04/03/2005 (nouvelle diffusion) -/ HP C3700 : 113 s en version 5.6 24/08/2005 -/ HP C3700 : 101 s en version 5.6 25/08/2005 (BANDEC=.NO.) -/ HP C3700 : 107 s en version 5.7 13/02/2007 (Nag:268 s,Dell :61 s) -/ HP C3700 : 95 s en version 5.8 19/12/2007 (Nag:239 s,Dell :50 s) -/ HP C3700 : 97 s en version 5.9 08/08/2008 (Nag:267 s,Dell :50 s) -/ HP C3700 : 94 s en version 6.0 04/12/2009 (Nag:251 s,Intel:38 s) -/ HP C3700 : 99 s en version 6.1 21/01/2011 -/ HP C3700 : 100 s en version 6.2 30/05/2012 -/ TITLE = 'TELEMAC 3D : RIVIERE AVEC DEUX PILES DE PONT$' / BOUNDARY CONDITIONS FILE : geo_piledepon.cli @@ -21,10 +8,10 @@ LIQUID BOUNDARIES FILE : t3d_piledepon.qsl / NUMBER OF HORIZONTAL LEVELS = 6 / -TIME STEP = 0.1 -NUMBER OF TIME STEPS = 800 +TIME STEP = 0.4 +NUMBER OF TIME STEPS = 200 GRAPHIC PRINTOUT PERIOD = 100 -LISTING PRINTOUT PERIOD = 50 +LISTING PRINTOUT PERIOD = 20 VARIABLES FOR 2D GRAPHIC PRINTOUTS = 'U,V,H,B,S' VARIABLES FOR 3D GRAPHIC PRINTOUTS = Z,U,V,W / @@ -33,9 +20,9 @@ FRICTION COEFFICIENT FOR THE BOTTOM = 40. / COEFFICIENT FOR HORIZONTAL DIFFUSION OF VELOCITIES = 0.005 HORIZONTAL TURBULENCE MODEL = 1 -VERTICAL TURBULENCE MODEL = 2 +VERTICAL TURBULENCE MODEL = 2 COEFFICIENT FOR VERTICAL DIFFUSION OF VELOCITIES = 1.D-6 -MIXING LENGTH MODEL = 1 / OLD DEFAULT VALUE UNTIL V8P5 +MIXING LENGTH MODEL = 1 / OLD DEFAULT VALUE UNTIL V8P5 / IMPLICITATION FOR DEPTH = 0.6 FREE SURFACE GRADIENT COMPATIBILITY = 0.75 @@ -46,11 +33,3 @@ PRESCRIBED ELEVATIONS : 0.;0. NON-HYDROSTATIC VERSION : NO / MASS-BALANCE : YES -/ -/ DEFAULT VALUES UNTIL V8P0 KEPT FOR NON REGRESSION -SCHEME FOR ADVECTION OF VELOCITIES = 1 -IMPLICITATION FOR VELOCITIES = 1. -ACCURACY FOR PROPAGATION = 1.E-6 -/ -/ DEFAULT VALUE UNTIL V8P5 KEPT FOR NON REGRESSION -TREATMENT OF NEGATIVE DEPTHS = 1 diff --git a/examples/telemac3d/pildepon/vnv_pildepon.py b/examples/telemac3d/pildepon/vnv_pildepon.py index 622063a88c6563305e7a23d563b67f5dd955dc73..6ea68345620b214cf90cfa4c2c212b43337743a9 100644 --- a/examples/telemac3d/pildepon/vnv_pildepon.py +++ b/examples/telemac3d/pildepon/vnv_pildepon.py @@ -77,32 +77,38 @@ class VnvStudy(AbstractVnvStudy): # Comparison with the last time frame of the reference file. self.check_epsilons('vnv_1:T3DRES', 'f3d_piledepon.slf', - eps=[1.E-1, 2.E0, 1.5E0, 1.E0]) + eps=[1.e-9]) # Comparison with the last time frame of the reference file. self.check_epsilons('vnv_2:T3DRES', 'f3d_piledepon.slf', - eps=[1.E-1, 2.E0, 1.5E0, 1.1E0]) + eps=[1.e-9]) # Comparison between sequential and parallel run. self.check_epsilons('vnv_1:T3DRES', 'vnv_2:T3DRES', - eps=[1.E-1, 2.E0, 1.5E0, 1.1E0]) + eps=[1.e-9]) # Comparison with the last time frame of the reference file. self.check_epsilons('vnv_3:T3DRES', 'f3d_piledepon-nonhydro.slf', - eps=[0.04, 1.5, 1., 0.4, 0.2, 0.3, 0.1, 0.2, 0.2, 0.1, 0.1]) + eps=[1.e-9, 1.e-9, 1.e-9, 1.e-9, 3.e-4, 1.e-10,\ + 1.e-10, 1.e-10, 1.e-10, 1.e-10, 1.e-10,\ + 1.e-10, 1.e-10, 1.e-10]) # Comparison with the last time frame of the reference file. self.check_epsilons('vnv_4:T3DRES', 'f3d_piledepon-nonhydro.slf', - eps=[0.2, 1.7, 1.1, 0.4, 0.3, 0.6, 0.3, 0.3, 0.4, 0.3, 0.3]) + eps=[1.e-9, 1.e-9, 1.e-9, 1.e-9, 6.e-4, 1.e-10,\ + 1.e-10, 1.e-10, 1.e-10, 1.e-10, 1.e-10,\ + 1.e-10, 1.e-10, 3.e-4]) # Comparison between sequential and parallel run. self.check_epsilons('vnv_3:T3DRES', 'vnv_4:T3DRES', - eps=[0.2, 1.7, 1.1, 0.4, 0.3, 0.6, 0.3, 0.3, 0.4, 0.3, 0.3]) + eps=[1.e-9, 1.e-9, 1.e-9, 1.e-9, 6.e-4, 1.e-10,\ + 1.e-10, 1.e-10, 1.e-10, 1.e-10, 1.e-10,\ + 1.e-10, 1.e-10, 3.e-4]) def _post(self):