diff --git a/NEWS.txt b/NEWS.txt index 333f321ffe60e9e740d3c56f53dd10eabc5a7ecb..664dfc31958b61b6fd7220a8ace65d92fe0b593c 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,6 +1,8 @@ Latest developments on main =========================== +GAIA: RESTART MODE for GAIA like in TELEMAC-2D and TELEMAC-3D + GAIA: Add a feature to skip bed updates in a first period of the simulation. New keyword: SPINUP TIME FOR BED UPDATING. diff --git a/documentation/gaia/user/latex/3_1-SedimentTransportProcessesBedAndStratigraphy_bedload.tex b/documentation/gaia/user/latex/3_1-SedimentTransportProcessesBedAndStratigraphy_bedload.tex index 08d16e9a126e0617ea14dcb513833dd943b1fcec..d84d9394b84e66efb3152d370cf88377cb83a7c0 100644 --- a/documentation/gaia/user/latex/3_1-SedimentTransportProcessesBedAndStratigraphy_bedload.tex +++ b/documentation/gaia/user/latex/3_1-SedimentTransportProcessesBedAndStratigraphy_bedload.tex @@ -622,6 +622,14 @@ When continuing a computation it is important that the previous sedimentological \end{itemize} \end{itemize} \end{WarningBlock} + +These suggestions are necessary only when the +\telkey{PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE} is manually generated by +users (as result file of a previous computation). +Indeed, since release v8.5, the new feature \telkey{RESTART MODE} for \gaia{} +has been introduced and described in \ref{sec-restart} to facilitate computation +continuing when using \gaia{}. + % %the following is to do %------------------------------------------------------------------------------- diff --git a/documentation/gaia/user/latex/HowTos.tex b/documentation/gaia/user/latex/HowTos.tex index 66b50bf2f15460ed45c7866a24e419faa30b5410..d7fa7aa9f17ef87a8bf03a4147d70d81ce644d3c 100644 --- a/documentation/gaia/user/latex/HowTos.tex +++ b/documentation/gaia/user/latex/HowTos.tex @@ -642,5 +642,189 @@ It is essential to start a morphological computation using fully developed hydro %----------------------------------------------------------------------------- +%------------------------------------------------------------------------------- +\section{Continuing a computation} +%------------------------------------------------------------------------------- +\label{sec-restart} +Like \telemac{2D} or \telemac{3D}, \gaia enables the user to resume a +computation taking a time step +of a previous computation on the same mesh as initial state. + +From v8p5, two methods are possible to continue a computation: +\begin{itemize} +\item continuing a computation using a restart file manually generated +by users from a previous computation (single solution up to v8p4), +\item continuing a computation using a restart file automatically generated +by \gaia (and \telemac{2D} or \telemac{3D}) (new method introduced in v8p5). +Advantages of this last approach are: +\begin{itemize} + \item the result file only contains variables of interest for users +(and not variables necessary to restart, as for the first approach) which +allows files of smaller size. +In particular less variables are saved at every graphic printout +and no extra variables are needed for sediments of type CO, + \item users do not have to think and select variables necessary for restart +as they are automatically chosen by the code during the first simulation, + \item the restart is done without information losses for two reasons: +first, variables necessary for restart are grabbed from the restart file without +recomputing them by means of other variables; +second, the default option uses a double precision format to generate the +restart file. +The only drawback in this case is that this file is larger compared to the +single precision format. +\end{itemize} +\end{itemize} + +The first approach is described here below. +By default, as for \telemac{2D} or \telemac{3D}, \gaia reads the last record of +the previous computation result file. +Using the keyword \telkey{RECORD NUMBER FOR RESTART} allows specifying +the number of the iteration to be read (default = -1 means the last record is +taken). +This keyword has been introduced in release v8.5 +(before, it was only possible to continue a computation from the last record +of the \telkey{PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE}). + +In this case, it is essential that the continuation file contains +all the information required by \gaia{}. +However, in some cases, the software is capable of recomputing some +variables from others provided. +If some variables are missing from the continuation file, +they are then fixed automatically at zero. + +In order to use the continuation file, it is necessary to enter +two keywords in the steering file: +\begin{itemize} +\item The keyword \telkey{COMPUTATION CONTINUED} must have the value YES +(default value = NO), + +\item The keyword \telkey{PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE} must +provide the name of the file that will supply the initial state. +\end{itemize} + +N.B.: the mesh for which the results are computed must be exactly the same +as the one to be used in continuing the computation. + +If necessary, the keyword +\telkey{PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE FORMAT} +can be used to select a specific format. +For example, in order to increase the accuracy of the initial state, +it is possible to use double precision SERAFIN format ('SERAFIND') or +MED format ('MED'). +Obviously, this configuration is possible only if the previous computation +was correctly configured in terms of results file format. +\\ + +The second approach is described here below. +Resuming the computation usually leads to small differences in results +compared to the same calculation without interruption. +To correct this, the user has a specific recovery procedure +to improve the accuracy of calculations, using double precision format SERAFIN +files (or MED format) for the keyword \telkey{RESTART FILE FORMAT} +(default = SERAFIND): + +\begin{itemize} +\item In the first computation, the keyword \telkey{RESTART MODE} is set to +YES (default = NO), +which generates a specific file containing the full information at one or a +few time step(s) of the simulation. +The name of this file is given by the keyword \telkey{RESTART FILE}, + +\item In the second computation, this specific file must be used as +\telkey{PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE} specifying the +\telkey{PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE FORMAT} is 'SERAFIND' +(SERAFIN double precision). +If the restart should be done from the last time step saved in the +\telkey{RESTART FILE}, the keyword \telkey{RECORD NUMBER FOR RESTART} is to be +let to default value (= -1), otherwise it should be changed. +\end{itemize} +In the first computation, there are 2 keywords which can enable to tune the +resuming of the computation: +\begin{itemize} +\item If wanting to generate a \telkey{RESTART FILE} at a specific number of +time step different from the last one, the keyword +\telkey{RECORD NUMBER IN RESTART FILE} is to be used +(default = -1 means the \telkey{RESTART FILE} is only written at the last +time step or periodically at the period \telkey{RESTART FILE PRINTOUT PERIOD}), +\item If wanting to generate a \telkey{RESTART FILE} periodically to secure a +file to resume computation in case of crash e.g., the keyword +\telkey{RESTART FILE PRINTOUT PERIOD} defines the printout period in number of +time steps. +Default = 0 means no periodic writing and variables are only written at the last +time step of the computation or at the time step number +\telkey{RECORD NUMBER IN RESTART FILE} if not equal to -1. +\end{itemize} + +However, it has to be mentioned that even if it is not advisable, the creation +of specific restart file can be done not only SERAFIND format, but also with +any other available format in the TELEMAC system, especially in single +precision. In this case, the keyword \telkey{RESTART FILE FORMAT} (by default +set at 'SERAFIND') must be set to the proper value. +\\ + +When continuing a computation, it is necessary to specify the value of +the start time of the second computation via the keyword +\telkey{INITIAL TIME SET TO ZERO} in the \telemac{2D} or \telemac{3D} steering +file. + +At the beginning of a simulation, the launcher creates a temporary directory +where all input files are copied. +This is also the case for the previous computation file which can be quite huge. +In this situation and to avoid copying too large a file, +it is recommended to extract the time step used for the continuation +(the only one used by \telemac{2D} or \telemac{3D} and \gaia{}). +\\ + +2 examples are provided to show how to handle this feature in the steering +files: +\begin{itemize} +\item mud\_conservation-t2d, +\item yen-t2d multi 1. +\end{itemize} + +A triple coupling (\telemac{2D}, \gaia{} and \tomawac{}) is also provided +as an example to show how to handle this feature in the steering files. +It can be found in littoral-t2d-tom folder. +In particular for the \tomawac steering file: +\begin{itemize} +\item In the first computation, the name of the file to store wave information +to resume is given by the keyword \telkey{GLOBAL RESULT FILE} and its format +is given by the keyword \telkey{GLOBAL RESULT FILE FORMAT} (double precision +with SERAFIND or MED are welcome in order not to have loss of accuracy), + +\item In the second computation, this specific file must be used as +\telkey{PREVIOUS COMPUTATION FILE} specifying the +\telkey{PREVIOUS COMPUTATION FILE FORMAT} is 'SERAFIND' +(SERAFIN double precision). +%No keyword \telkey{RECORD NUMBER FOR RESTART} in \tomawac at the moment +%If the restart should be done from the last time step saved in the +%\telkey{RESTART FILE}, the keyword \telkey{RECORD NUMBER FOR RESTART} is to be +%let to default value (= -1), otherwise it should be changed. +\end{itemize} + +Currently, no loss of accuracy has been observed for some examples: +\begin{itemize} +\item bosse-t2d (FE+FV), +\item bump-t2d, +\item guenter-t2d, +\item hippodrome-t2d (all except 1COs\_vf), +\item littoral-t2d-tom, +\item mud\_conservation-t2d, +\item sliding-t2d, +\item yen-t2d (FE + FV + multi-layers). +\end{itemize} + +Some differences have been observed when coupling \telemac{2D} and \gaia{} and +should be investigated: +\begin{itemize} +\item cvsm-t2d, +\item flume\_bc-t2d, +\item sandpit-t2d, +\item wilcock\_crowe-t2d, +\end{itemize} + +There are also differences when coupling \telemac{3D} and \gaia. +Investigation would start by resolving such an issue (loss of accuracy) +when using \telemac{3D} only. diff --git a/examples/gaia/flume_bc-t2d/gai_ref_flume_bc_coh.slf b/examples/gaia/flume_bc-t2d/gai_ref_flume_bc_coh.slf index 703d4460fe6e8dd65ddff592f55fe67a98e3383e..2a107af640ca04b2591d48ab132c373095433d98 100644 --- a/examples/gaia/flume_bc-t2d/gai_ref_flume_bc_coh.slf +++ b/examples/gaia/flume_bc-t2d/gai_ref_flume_bc_coh.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a8d083dff4c56cc2dec34fc09e37ebc64e43172c93a1aed2580242316e63b436 -size 258284 +oid sha256:863131dcfc416af8570329236a604f103192f0a28f23bb29b2b0147b1cb4cae2 +size 185756 diff --git a/examples/gaia/hippodrome-t2d/gai_ref_1COs.slf b/examples/gaia/hippodrome-t2d/gai_ref_1COs.slf index 42aaa81c091ee3ee463ebef0087e324e4162b8d1..b5c3e53bba08c73410833e21d961958ac3b4d1ff 100644 --- a/examples/gaia/hippodrome-t2d/gai_ref_1COs.slf +++ b/examples/gaia/hippodrome-t2d/gai_ref_1COs.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:38b0b999a6ae505f3c2a28fcf5466d6773d4a731a0fab2efea457a502a198187 -size 1953808 +oid sha256:d18d839f1cee295e19b37c23f81415787d8a51dfea6a9e38dc32e8088f79d034 +size 1672708 diff --git a/examples/gaia/hippodrome-t2d/gai_ref_1COs_vf.slf b/examples/gaia/hippodrome-t2d/gai_ref_1COs_vf.slf index 9886aa56f45028db7249a9b03f220fb46c212036..1794cc7442e9828cdad12878529ec3c76f67abb6 100644 --- a/examples/gaia/hippodrome-t2d/gai_ref_1COs_vf.slf +++ b/examples/gaia/hippodrome-t2d/gai_ref_1COs_vf.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd1fb95b6cbbae61090ae8bb481b1959b4ce5c5ed63d17177fdb79f7f5920f16 -size 1953808 +oid sha256:b0dbd15c8628271e0f6752c7895f460e8833186b37526e026e01f7d8253052c8 +size 1672708 diff --git a/examples/gaia/hippodrome-t3d/gai_ref_1COs.slf b/examples/gaia/hippodrome-t3d/gai_ref_1COs.slf index 18a03acff8539d9b8d6219675159e55cbd8b20d1..75f1f4ca7f87803eb135ea96cf89b286b26493ea 100644 --- a/examples/gaia/hippodrome-t3d/gai_ref_1COs.slf +++ b/examples/gaia/hippodrome-t3d/gai_ref_1COs.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:738b52ad9fbaf1e637c50ecfaea3efbb9987c2c8319ac393aa69693bf8bbad63 -size 1953808 +oid sha256:9e9174d4721fa9eca498349d7064a4c3dee012ac46e6199071278e699eb1e62c +size 1672708 diff --git a/examples/gaia/hippodrome-t3d/gai_ref_1COs_consolidation.slf b/examples/gaia/hippodrome-t3d/gai_ref_1COs_consolidation.slf index 02d1e219258a4b986956542f9a9f4572839c8161..2a91ba6e5493ea7944253331b1985c5e3057f0cf 100644 --- a/examples/gaia/hippodrome-t3d/gai_ref_1COs_consolidation.slf +++ b/examples/gaia/hippodrome-t3d/gai_ref_1COs_consolidation.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6f9b778f7798b454efab7d47025bef88030bed7fb768d84722e2890146f0b607 -size 3453008 +oid sha256:269152ce6183048155d999ecff5833a2b5200c5acd658d914bd2bb2fac3659d9 +size 1953808 diff --git a/examples/gaia/hippodrome-t3d/gai_ref_1NCObs_1CO.slf b/examples/gaia/hippodrome-t3d/gai_ref_1NCObs_1CO.slf index aa65b03ccf2bac3b0dcdf54fcc589ca12f9d0d32..75bdc47f58d146e08b9da9cec91a840edfa3667f 100644 --- a/examples/gaia/hippodrome-t3d/gai_ref_1NCObs_1CO.slf +++ b/examples/gaia/hippodrome-t3d/gai_ref_1NCObs_1CO.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d60c1d8351e814a30d0f898c4b90f3e0e01a2783bc698440884d3da2596c7a9f -size 2516008 +oid sha256:1e7e042ce3400632321d0d1a872b4ddaf379cf665d25e6973badd9f91a51b99c +size 1953808 diff --git a/examples/gaia/hippodrome-t3d/gai_ref_1NCObs_1CO_consolidation.slf b/examples/gaia/hippodrome-t3d/gai_ref_1NCObs_1CO_consolidation.slf index b3dae62f9a3f3aeb80342380331190a3e154271a..13b0427b9fdcb36153054d78886a713b173547c9 100644 --- a/examples/gaia/hippodrome-t3d/gai_ref_1NCObs_1CO_consolidation.slf +++ b/examples/gaia/hippodrome-t3d/gai_ref_1NCObs_1CO_consolidation.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6fac5442e58e3431e8f4c93aec65b6cbf8312df1a8899668a625bd839bce8db2 -size 4108908 +oid sha256:3a2c6e4bbf3c3b20ff24a58dd29a4e442842bb2b27b5b4023742ea2704b85154 +size 2234908 diff --git a/examples/gaia/hippodrome-t3d/gai_ref_4NCObs_4CO_consolidation.slf b/examples/gaia/hippodrome-t3d/gai_ref_4NCObs_4CO_consolidation.slf index 7054b1b8c2cbfdc33b4f4fa86f2ac703d16f1a20..747e5f243265ea6dcf494c49ff1f03dbf87dea10 100644 --- a/examples/gaia/hippodrome-t3d/gai_ref_4NCObs_4CO_consolidation.slf +++ b/examples/gaia/hippodrome-t3d/gai_ref_4NCObs_4CO_consolidation.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:24c11e2f15053ebced050e88f90099b411ce5d655b0283a1ea0d488896cb8af9 -size 4390008 +oid sha256:3e024681edadba6e0a44c21493829739452617f581663979aeb5e5e018b55e9f +size 2516008 diff --git a/examples/gaia/hippodrome-t3d/vnv_hippodrome-t3d.py b/examples/gaia/hippodrome-t3d/vnv_hippodrome-t3d.py index c6865ae835c447f228d47f3a9aa02d46ebb3a17b..add789f6d292611ac1b5edc15b8a3be173771217 100644 --- a/examples/gaia/hippodrome-t3d/vnv_hippodrome-t3d.py +++ b/examples/gaia/hippodrome-t3d/vnv_hippodrome-t3d.py @@ -247,7 +247,7 @@ class VnvStudy(AbstractVnvStudy): self.check_epsilons('vnv_1:GAIRES', 'gai_ref_1COs.slf', eps=[1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.1, - 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5]) + 1.E-5, 1.E-5, 1.E-5]) # Comparison with the last time frame of the reference file. self.check_epsilons('vnv_2:GAIRES', @@ -258,7 +258,7 @@ class VnvStudy(AbstractVnvStudy): self.check_epsilons('vnv_1:GAIRES', 'vnv_2:GAIRES', eps=[1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.1, - 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5]) + 1.E-5, 1.E-5, 1.E-5]) # Comparison with the last time frame of the reference file. self.check_epsilons('vnv_1:T3DRES', @@ -308,7 +308,6 @@ class VnvStudy(AbstractVnvStudy): self.check_epsilons('vnv_5:GAIRES', 'gai_ref_1NCObs_1CO.slf', eps=[1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.6E-2, - 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5, 1.E-5]) # Comparison with the last time frame of the reference file. diff --git a/examples/gaia/littoral-t2d-tom/gai_littoral_from_restart.cas b/examples/gaia/littoral-t2d-tom/gai_littoral_from_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..54d41fb00313092278e633f842cc46be3fe78ee7 --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/gai_littoral_from_restart.cas @@ -0,0 +1,48 @@ +/ +TITLE = 'LITTORAL' +/ +/ FILES (1) +/ ______________ +GEOMETRY FILE = 'geo_littoral.slf' +BOUNDARY CONDITIONS FILE = 'geo_gai_littoral.cli' +RESULTS FILE ='gai_littoral.slf' +/ +COMPUTATION CONTINUED = YES +PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE = restart_littoral_gai.slf +PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE FORMAT = 'SERAFIND' +/ +/ FRICTION +/______________________ +/ +RATIO BETWEEN SKIN FRICTION AND MEAN DIAMETER = 3 +/ +/ INPUTS - OUTPUTS +/ ________________________________________ +/ +VARIABLES FOR GRAPHIC PRINTOUTS = U,V,H,M,W,X,TOB +/ +MASS-BALANCE = YES +/ meme que pour fichier cas Telemac +LISTING PRINTOUT PERIOD = 2 +/ +/ NUMERICAL PARAMETERS (1) +/ ----------------------- +/ +ZERO = 1e-12 +/ +/TRANSPORT SOLIDE (1) +/ __________________ +/ +CLASSES TYPE OF SEDIMENT ='NCO' +/ +BED LOAD FOR ALL SANDS = YES +BED-LOAD TRANSPORT FORMULA FOR ALL SANDS = 5 +EFFECT OF WAVES = YES +/ attention seule la deviation est prise en compte +/ dans Koch et Flochstra +SLOPE EFFECT = YES +BETA = 0. +/ +CLASSES SEDIMENT DIAMETERS = 0.0003 +LAYERS NON COHESIVE BED POROSITY = 0.375 +/ diff --git a/examples/gaia/littoral-t2d-tom/gai_littoral_restart.cas b/examples/gaia/littoral-t2d-tom/gai_littoral_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..60ae1589c1c07d12e7c4af5a62468608c1bc3b85 --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/gai_littoral_restart.cas @@ -0,0 +1,48 @@ +/ +TITLE = 'LITTORAL' +/ +/ FILES (1) +/ ______________ +GEOMETRY FILE = 'geo_littoral.slf' +BOUNDARY CONDITIONS FILE = 'geo_gai_littoral.cli' +RESULTS FILE ='gai_littoral.slf' +/ +RESTART MODE = YES +RESTART FILE = restart_littoral_gai.slf +RESTART FILE FORMAT = 'SERAFIND' +/ +/ FRICTION +/______________________ +/ +RATIO BETWEEN SKIN FRICTION AND MEAN DIAMETER = 3 +/ +/ INPUTS - OUTPUTS +/ ________________________________________ +/ +VARIABLES FOR GRAPHIC PRINTOUTS = U,V,H,M,W,X,TOB +/ +MASS-BALANCE = YES +/ meme que pour fichier cas Telemac +LISTING PRINTOUT PERIOD = 2 +/ +/ NUMERICAL PARAMETERS (1) +/ ----------------------- +/ +ZERO = 1e-12 +/ +/TRANSPORT SOLIDE (1) +/ __________________ +/ +CLASSES TYPE OF SEDIMENT ='NCO' +/ +BED LOAD FOR ALL SANDS = YES +BED-LOAD TRANSPORT FORMULA FOR ALL SANDS = 5 +EFFECT OF WAVES = YES +/ attention seule la deviation est prise en compte +/ dans Koch et Flochstra +SLOPE EFFECT = YES +BETA = 0. +/ +CLASSES SEDIMENT DIAMETERS = 0.0003 +LAYERS NON COHESIVE BED POROSITY = 0.375 +/ diff --git a/examples/gaia/littoral-t2d-tom/restart_littoral_gai.slf b/examples/gaia/littoral-t2d-tom/restart_littoral_gai.slf new file mode 100644 index 0000000000000000000000000000000000000000..a165ec2a9e839ac4910d155eb09a726f0229a8ad --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/restart_littoral_gai.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bdca9dcea46d0bf204028647fc42cd53479fff1be38353712f099308818890c +size 458692 diff --git a/examples/gaia/littoral-t2d-tom/restart_littoral_gai_par.slf b/examples/gaia/littoral-t2d-tom/restart_littoral_gai_par.slf new file mode 100644 index 0000000000000000000000000000000000000000..b32b713e93b0ee791701166077ff65a22741450e --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/restart_littoral_gai_par.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:319ba18a1ff841e0b68269996c1a2d29130734b900bdc17d2e6932f05bbc5fb6 +size 458692 diff --git a/examples/gaia/littoral-t2d-tom/restart_littoral_t2d.slf b/examples/gaia/littoral-t2d-tom/restart_littoral_t2d.slf new file mode 100644 index 0000000000000000000000000000000000000000..331408c9d67a2e13bd7c59f562f886e34d2f825d --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/restart_littoral_t2d.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9725c203625703a7e9f90e675eb24192708eba7291accc4cd8e0cc1c0aeefc0a +size 291164 diff --git a/examples/gaia/littoral-t2d-tom/restart_littoral_t2d_par.slf b/examples/gaia/littoral-t2d-tom/restart_littoral_t2d_par.slf new file mode 100644 index 0000000000000000000000000000000000000000..76dd3da67ddfa5b5d023493471df24175c738c16 --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/restart_littoral_t2d_par.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c662bbd494ea244403ff876581522512ee923cb615ae0d0c0549723ab55588a3 +size 291164 diff --git a/examples/gaia/littoral-t2d-tom/restart_littoral_tom.slf b/examples/gaia/littoral-t2d-tom/restart_littoral_tom.slf new file mode 100644 index 0000000000000000000000000000000000000000..0efe4a1094a29892f5f6eef826f00fb112aab6f1 --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/restart_littoral_tom.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3127c343f5c99a4b40ee289495dfa2a6fa7446e8ba22197368e8642909bd8b97 +size 4369040 diff --git a/examples/gaia/littoral-t2d-tom/restart_littoral_tom_par.slf b/examples/gaia/littoral-t2d-tom/restart_littoral_tom_par.slf new file mode 100644 index 0000000000000000000000000000000000000000..0b7765e335217ac85906d6bf6159386fe8e3ea51 --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/restart_littoral_tom_par.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f7655ab2f9874537ba5df04dc3d6effb16201dca41e49c99bb94f8f385208d6 +size 4369040 diff --git a/examples/gaia/littoral-t2d-tom/t2d_littoral_P1.cas b/examples/gaia/littoral-t2d-tom/t2d_littoral_P1.cas new file mode 100644 index 0000000000000000000000000000000000000000..86dd7a16c2abb447b8dcda3ce0bf62b89c411273 --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/t2d_littoral_P1.cas @@ -0,0 +1,76 @@ +/---------------------------------------------------------------------- +/ +/ STEERING FILE +/ +/ TELEMAC +/---------------------------------------------------------------------- +/ SETTINGS +/---------------------------------------------------------------------- +/ +COUPLING WITH : 'TOMAWAC,GAIA' +/ +WAVE DRIVEN CURRENTS = YES +TOMAWAC STEERING FILE = 'tom_littoral.cas' +COUPLING PERIOD FOR TOMAWAC = 10 +/ +GAIA STEERING FILE = 'gai_littoral.cas' +/ +FORTRAN FILE = 'T2D_user_fortran' +BOUNDARY CONDITIONS FILE = 'geo_t2d_littoral.cli' +GEOMETRY FILE = 'geo_littoral.slf' +RESULTS FILE = 't2d_littoral.slf' +/---------------------------------------------------------------------- +/ INITIAL CONDITIONS +/---------------------------------------------------------------------- +INITIAL CONDITIONS = 'ZERO ELEVATION' +/ +/---------------------------------------------------------------------- +/ GENERAL OPTIONS +/---------------------------------------------------------------------- +/ +TITLE = 'LITTORAL' +/ +VARIABLES FOR GRAPHIC PRINTOUTS = H,S,B,U,V +/ +TIME STEP = 10. +NUMBER OF TIME STEPS = 100 +GRAPHIC PRINTOUT PERIOD = 100 +LISTING PRINTOUT PERIOD = 20 +/---------------------------------------------------------------------- +TURBULENCE MODEL = 4 +VELOCITY DIFFUSIVITY = 1.e-6 +/ +/------------------------------------------------ +/ BOUNDARY CONDITIONS +/------------------------------------------------ +/ +LAW OF BOTTOM FRICTION = 5 +FRICTION COEFFICIENT = 0.05 +/ +PRESCRIBED ELEVATIONS = 0. +/------------------------------------------- +/ NUMERICAL OPTIONS +/------------------------------------------- +/ +/ QUASI BUBBLE ELEMENTS NOT POSSIBLE WITH RESTART MODE = YES +/DISCRETIZATIONS IN SPACE = 12;11 +/ +TIDAL FLATS = NO +/ +MASS-BALANCE = YES +/ +SOLVER ACCURACY = 1e-05 +MAXIMUM NUMBER OF ITERATIONS FOR SOLVER = 100 +/ +TYPE OF ADVECTION = 1;5 +/ +IMPLICITATION FOR DEPTH = 0.6 +IMPLICITATION FOR VELOCITY = 0.6 +/ +SOLVER = 7 +SOLVER OPTION = 4 +MASS-LUMPING ON H = 1. +MASS-LUMPING ON VELOCITY = 0.9 +/ +/ DEFAULT VALUE UNTIL V8P1 KEPT FOR NON REGRESSION +TREATMENT OF THE LINEAR SYSTEM = 1 diff --git a/examples/gaia/littoral-t2d-tom/t2d_littoral_P1_from_restart.cas b/examples/gaia/littoral-t2d-tom/t2d_littoral_P1_from_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..bd80168856f8665c15e48f9226bdc4d864cc890e --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/t2d_littoral_P1_from_restart.cas @@ -0,0 +1,81 @@ +/---------------------------------------------------------------------- +/ +/ STEERING FILE +/ +/ TELEMAC +/---------------------------------------------------------------------- +/ SETTINGS +/---------------------------------------------------------------------- +/ +COUPLING WITH : 'TOMAWAC,GAIA' +/ +WAVE DRIVEN CURRENTS = YES +TOMAWAC STEERING FILE = 'tom_littoral_from_restart.cas' +COUPLING PERIOD FOR TOMAWAC = 10 +/ +GAIA STEERING FILE = 'gai_littoral_from_restart.cas' +/ +FORTRAN FILE = 'T2D_user_fortran' +BOUNDARY CONDITIONS FILE = 'geo_t2d_littoral.cli' +GEOMETRY FILE = 'geo_littoral.slf' +RESULTS FILE = 't2d_littoral.slf' +/ +PREVIOUS COMPUTATION FILE = restart_littoral_t2d.slf +PREVIOUS COMPUTATION FILE FORMAT = 'SERAFIND' +COMPUTATION CONTINUED : YES +/ +/---------------------------------------------------------------------- +/ INITIAL CONDITIONS +/---------------------------------------------------------------------- +INITIAL CONDITIONS = 'ZERO ELEVATION' +/ +/---------------------------------------------------------------------- +/ GENERAL OPTIONS +/---------------------------------------------------------------------- +/ +TITLE = 'LITTORAL' +/ +VARIABLES FOR GRAPHIC PRINTOUTS = H,S,B,U,V +/ +TIME STEP = 10. +NUMBER OF TIME STEPS = 50 +GRAPHIC PRINTOUT PERIOD = 50 +LISTING PRINTOUT PERIOD = 20 +/---------------------------------------------------------------------- +TURBULENCE MODEL = 4 +VELOCITY DIFFUSIVITY = 1.e-6 +/ +/------------------------------------------------ +/ BOUNDARY CONDITIONS +/------------------------------------------------ +/ +LAW OF BOTTOM FRICTION = 5 +FRICTION COEFFICIENT = 0.05 +/ +PRESCRIBED ELEVATIONS = 0. +/------------------------------------------- +/ NUMERICAL OPTIONS +/------------------------------------------- +/ +/ QUASI BUBBLE ELEMENTS NOT POSSIBLE WITH RESTART MODE = YES +/DISCRETIZATIONS IN SPACE = 12;11 +/ +TIDAL FLATS = NO +/ +MASS-BALANCE = YES +/ +SOLVER ACCURACY = 1e-05 +MAXIMUM NUMBER OF ITERATIONS FOR SOLVER = 100 +/ +TYPE OF ADVECTION = 1;5 +/ +IMPLICITATION FOR DEPTH = 0.6 +IMPLICITATION FOR VELOCITY = 0.6 +/ +SOLVER = 7 +SOLVER OPTION = 4 +MASS-LUMPING ON H = 1. +MASS-LUMPING ON VELOCITY = 0.9 +/ +/ DEFAULT VALUE UNTIL V8P1 KEPT FOR NON REGRESSION +TREATMENT OF THE LINEAR SYSTEM = 1 diff --git a/examples/gaia/littoral-t2d-tom/t2d_littoral_P1_restart.cas b/examples/gaia/littoral-t2d-tom/t2d_littoral_P1_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..db1f53cc64de528db052fc368593c8f00c09e967 --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/t2d_littoral_P1_restart.cas @@ -0,0 +1,81 @@ +/---------------------------------------------------------------------- +/ +/ STEERING FILE +/ +/ TELEMAC +/---------------------------------------------------------------------- +/ SETTINGS +/---------------------------------------------------------------------- +/ +COUPLING WITH : 'TOMAWAC,GAIA' +/ +WAVE DRIVEN CURRENTS = YES +TOMAWAC STEERING FILE = 'tom_littoral_restart.cas' +COUPLING PERIOD FOR TOMAWAC = 10 +/ +GAIA STEERING FILE = 'gai_littoral_restart.cas' +/ +FORTRAN FILE = 'T2D_user_fortran' +BOUNDARY CONDITIONS FILE = 'geo_t2d_littoral.cli' +GEOMETRY FILE = 'geo_littoral.slf' +RESULTS FILE = 't2d_littoral.slf' +/ +RESTART MODE = YES +RESTART FILE = restart_littoral_t2d.slf +RESTART FILE FORMAT = 'SERAFIND' +/ +/---------------------------------------------------------------------- +/ INITIAL CONDITIONS +/---------------------------------------------------------------------- +INITIAL CONDITIONS = 'ZERO ELEVATION' +/ +/---------------------------------------------------------------------- +/ GENERAL OPTIONS +/---------------------------------------------------------------------- +/ +TITLE = 'LITTORAL' +/ +VARIABLES FOR GRAPHIC PRINTOUTS = H,S,B,U,V +/ +TIME STEP = 10. +NUMBER OF TIME STEPS = 50 +GRAPHIC PRINTOUT PERIOD = 50 +LISTING PRINTOUT PERIOD = 20 +/---------------------------------------------------------------------- +TURBULENCE MODEL = 4 +VELOCITY DIFFUSIVITY = 1.e-6 +/ +/------------------------------------------------ +/ BOUNDARY CONDITIONS +/------------------------------------------------ +/ +LAW OF BOTTOM FRICTION = 5 +FRICTION COEFFICIENT = 0.05 +/ +PRESCRIBED ELEVATIONS = 0. +/------------------------------------------- +/ NUMERICAL OPTIONS +/------------------------------------------- +/ +/ QUASI BUBBLE ELEMENTS NOT POSSIBLE WITH RESTART MODE = YES +/DISCRETIZATIONS IN SPACE = 12;11 +/ +TIDAL FLATS = NO +/ +MASS-BALANCE = YES +/ +SOLVER ACCURACY = 1e-05 +MAXIMUM NUMBER OF ITERATIONS FOR SOLVER = 100 +/ +TYPE OF ADVECTION = 1;5 +/ +IMPLICITATION FOR DEPTH = 0.6 +IMPLICITATION FOR VELOCITY = 0.6 +/ +SOLVER = 7 +SOLVER OPTION = 4 +MASS-LUMPING ON H = 1. +MASS-LUMPING ON VELOCITY = 0.9 +/ +/ DEFAULT VALUE UNTIL V8P1 KEPT FOR NON REGRESSION +TREATMENT OF THE LINEAR SYSTEM = 1 diff --git a/examples/gaia/littoral-t2d-tom/tom_littoral_from_restart.cas b/examples/gaia/littoral-t2d-tom/tom_littoral_from_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..d703d61be59a1bcf1784b717ed15075974b9e976 --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/tom_littoral_from_restart.cas @@ -0,0 +1,71 @@ +/******************************************************************** +/ STEERING FILE +/ TOMAWAC +/ +/******************************************************************** +/-------------------------------------------------------------------- +/ FILES +/-------------------------------------------------------------------- +GEOMETRY FILE = 'geo_littoral.slf' +BOUNDARY CONDITIONS FILE = 'geo_tom_littoral.cli' +2D RESULTS FILE = 'tom_littoral.slf' +GLOBAL RESULT FILE = 'glob.slf' +PUNCTUAL RESULTS FILE ='littoral2D.spe' +ABSCISSAE OF SPECTRUM PRINTOUT POINTS= 500 +ORDINATES OF SPECTRUM PRINTOUT POINTS= 100 +FORTRAN FILE = 'Tom_user_fortran' +/ +PREVIOUS COMPUTATION FILE = restart_littoral_tom.slf +PREVIOUS COMPUTATION FILE FORMAT = 'SERAFIND' +/ +/-------------------------------------------------------------------- +/ INPUTS - OUTPUTS +/-------------------------------------------------------------------- +TITLE = 'LITTORAL' +PERIOD FOR GRAPHIC PRINTOUTS = 10 +VARIABLES FOR 2D GRAPHIC PRINTOUTS = 'HM0,DMOY,TPR5,ZF,WD,FX,FY,UX,UY' +PERIOD FOR LISTING PRINTOUTS = 20 +/-------------------------------------------------------------------- +/ DISCRETISATION +/-------------------------------------------------------------------- +MINIMAL FREQUENCY = 0.05 +FREQUENTIAL RATIO = 1.1007 +NUMBER OF FREQUENCIES = 12 +NUMBER OF DIRECTIONS = 12 +TIME STEP = 10. +/ SO FAR NECESSARY FOR VALIDATION +NUMBER OF TIME STEP = 50 +/-------------------------------------------------------------------- +/ INITIAL CONDITIONS +/-------------------------------------------------------------------- +INITIAL STILL WATER LEVEL = 10. +TYPE OF INITIAL DIRECTIONAL SPECTRUM = 6 +INITIAL SIGNIFICANT WAVE HEIGHT = 0.5 +INITIAL PEAK FREQUENCY = 0.125 +INITIAL PEAK FACTOR = 3.3 +INITIAL ANGULAR DISTRIBUTION FUNCTION = 1 +INITIAL WEIGHTING FACTOR FOR ADF = 1.0 +INITIAL MAIN DIRECTION 1 = 30. +INITIAL DIRECTIONAL SPREAD 1 = 3 +/-------------------------------------------------------------------- +/ BOUNDARY CONDITIONS +/-------------------------------------------------------------------- +TYPE OF BOUNDARY DIRECTIONAL SPECTRUM = 6 +BOUNDARY SIGNIFICANT WAVE HEIGHT = 1. +BOUNDARY PEAK FREQUENCY = 0.125 +BOUNDARY PEAK FACTOR = 3.3 +BOUNDARY MAIN DIRECTION 1 = 30. +BOUNDARY DIRECTIONAL SPREAD 1 = 3. +/-------------------------------------------------------------------- +/ OPTIONS +/-------------------------------------------------------------------- +MINIMUM WATER DEPTH = 0.05 +INFINITE DEPTH = NO +CONSIDERATION OF SOURCE TERMS = YES +CONSIDERATION OF A WIND = NO +BOTTOM FRICTION DISSIPATION = 1 +/===========DEFERLEMENT +NUMBER OF BREAKING TIME STEPS = 5 +/=========== 1 : Battjes et Janssen (1978) +DEPTH-INDUCED BREAKING DISSIPATION = 1 +LIMIT SPECTRUM MODIFIED BY USER = YES diff --git a/examples/gaia/littoral-t2d-tom/tom_littoral_restart.cas b/examples/gaia/littoral-t2d-tom/tom_littoral_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..fe2c0267378b61379b345ca84c748287457f5755 --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/tom_littoral_restart.cas @@ -0,0 +1,68 @@ +/******************************************************************** +/ STEERING FILE +/ TOMAWAC +/ +/******************************************************************** +/-------------------------------------------------------------------- +/ FILES +/-------------------------------------------------------------------- +GEOMETRY FILE = 'geo_littoral.slf' +BOUNDARY CONDITIONS FILE = 'geo_tom_littoral.cli' +2D RESULTS FILE = 'tom_littoral.slf' +GLOBAL RESULT FILE = 'restart_littoral_tom.slf' +GLOBAL RESULT FILE FORMAT = 'SERAFIND' +PUNCTUAL RESULTS FILE ='littoral2D.spe' +ABSCISSAE OF SPECTRUM PRINTOUT POINTS= 500 +ORDINATES OF SPECTRUM PRINTOUT POINTS= 100 +FORTRAN FILE = 'Tom_user_fortran' +/-------------------------------------------------------------------- +/ INPUTS - OUTPUTS +/-------------------------------------------------------------------- +TITLE = 'LITTORAL' +PERIOD FOR GRAPHIC PRINTOUTS = 10 +VARIABLES FOR 2D GRAPHIC PRINTOUTS = 'HM0,DMOY,TPR5,ZF,WD,FX,FY,UX,UY' +PERIOD FOR LISTING PRINTOUTS = 20 +/-------------------------------------------------------------------- +/ DISCRETISATION +/-------------------------------------------------------------------- +MINIMAL FREQUENCY = 0.05 +FREQUENTIAL RATIO = 1.1007 +NUMBER OF FREQUENCIES = 12 +NUMBER OF DIRECTIONS = 12 +TIME STEP = 10. +/ SO FAR NECESSARY FOR VALIDATION +NUMBER OF TIME STEP = 50 +/-------------------------------------------------------------------- +/ INITIAL CONDITIONS +/-------------------------------------------------------------------- +INITIAL STILL WATER LEVEL = 10. +TYPE OF INITIAL DIRECTIONAL SPECTRUM = 6 +INITIAL SIGNIFICANT WAVE HEIGHT = 0.5 +INITIAL PEAK FREQUENCY = 0.125 +INITIAL PEAK FACTOR = 3.3 +INITIAL ANGULAR DISTRIBUTION FUNCTION = 1 +INITIAL WEIGHTING FACTOR FOR ADF = 1.0 +INITIAL MAIN DIRECTION 1 = 30. +INITIAL DIRECTIONAL SPREAD 1 = 3 +/-------------------------------------------------------------------- +/ BOUNDARY CONDITIONS +/-------------------------------------------------------------------- +TYPE OF BOUNDARY DIRECTIONAL SPECTRUM = 6 +BOUNDARY SIGNIFICANT WAVE HEIGHT = 1. +BOUNDARY PEAK FREQUENCY = 0.125 +BOUNDARY PEAK FACTOR = 3.3 +BOUNDARY MAIN DIRECTION 1 = 30. +BOUNDARY DIRECTIONAL SPREAD 1 = 3. +/-------------------------------------------------------------------- +/ OPTIONS +/-------------------------------------------------------------------- +MINIMUM WATER DEPTH = 0.05 +INFINITE DEPTH = NO +CONSIDERATION OF SOURCE TERMS = YES +CONSIDERATION OF A WIND = NO +BOTTOM FRICTION DISSIPATION = 1 +/===========DEFERLEMENT +NUMBER OF BREAKING TIME STEPS = 5 +/=========== 1 : Battjes et Janssen (1978) +DEPTH-INDUCED BREAKING DISSIPATION = 1 +LIMIT SPECTRUM MODIFIED BY USER = YES diff --git a/examples/gaia/littoral-t2d-tom/vnv_littoral_restart.py b/examples/gaia/littoral-t2d-tom/vnv_littoral_restart.py new file mode 100644 index 0000000000000000000000000000000000000000..48ee3fca8a4dc4a91cf213b1551e4b57b053c732 --- /dev/null +++ b/examples/gaia/littoral-t2d-tom/vnv_littoral_restart.py @@ -0,0 +1,184 @@ + +""" +Validation script for littoral restart +""" +from vvytel.vnv_study import AbstractVnvStudy +from execution.telemac_cas import TelemacCas, get_dico + +class VnvStudy(AbstractVnvStudy): + """ + Class for validation + """ + + def _init(self): + """ + Defines the general parameter + """ + self.rank = 1 + self.tags = ['telemac2d', 'tomawac', 'gaia'] + + def _pre(self): + """ + Defining the studies + """ + + # littoral T2D+TOM+GAI scalar mode + self.add_study('vnv_1', + 'telemac2d', + 't2d_littoral_P1.cas') + + + # littoral T2D+TOM+GAI scalar mode + cas = TelemacCas('t2d_littoral_P1.cas', get_dico('telemac2d')) + cas.set('PARALLEL PROCESSORS', 4) + + self.add_study('vnv_2', + 'telemac2d', + 't2d_littoral_P1_par.cas', + cas=cas) + + del cas + + # Restart scalar mode + self.add_study('vnv_3', + 'telemac2d', + 't2d_littoral_P1_restart.cas') + + + # Restart parallel mode + cas = TelemacCas('t2d_littoral_P1_restart.cas', get_dico('telemac2d')) + cas.set('PARALLEL PROCESSORS', 4) + + self.add_study('vnv_4', + 'telemac2d', + 't2d_littoral_P1_restart_par.cas', + cas=cas) + + del cas + + # From restart scalar mode + self.add_study('vnv_5', + 'telemac2d', + 't2d_littoral_P1_from_restart.cas') + + + # From restart parallel mode + t2d_par_cas_filename = 't2d_littoral_P1_from_restart_par.cas' + gai_par_cas_filename = 'gai_littoral_from_restart_par.cas' + tom_par_cas_filename = 'tom_littoral_from_restart_par.cas' + cas = TelemacCas('t2d_littoral_P1_from_restart.cas', get_dico('telemac2d')) + casgai = TelemacCas('gai_littoral_from_restart.cas', get_dico('gaia')) + castom = TelemacCas('tom_littoral_from_restart.cas', get_dico('tomawac')) + cas.set('PARALLEL PROCESSORS', 4) + cas.set('PREVIOUS COMPUTATION FILE', 'restart_littoral_t2d_par.slf') + casgai.set('PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE', 'restart_littoral_gai_par.slf') + castom.set('PREVIOUS COMPUTATION FILE', 'restart_littoral_tom_par.slf') + + # write the gaia cas file to new file + casgai.write(gai_par_cas_filename) + + # write the tomawac cas file to new file + castom.write(tom_par_cas_filename) + + # change gaia steering filename in telemac cas file + cas.set('GAIA STEERING FILE', gai_par_cas_filename) + + # change tomawac steering filename in telemac cas file + cas.set('TOMAWAC STEERING FILE', tom_par_cas_filename) + + # write the new t3d cas file + cas.write(t2d_par_cas_filename) + + self.add_study('vnv_6', + 'telemac2d', + 't2d_littoral_P1_from_restart_par.cas', + cas=cas) + + del cas + + + + def _check_results(self): + """ + Post-treatment processes + """ + + # Comparison between sequential and parallel run. + self.check_epsilons('vnv_1:T2DRES', + 'vnv_2:T2DRES', + eps=[1e-9]) + + # Comparison between sequential and parallel run. + self.check_epsilons('vnv_1:GAIRES', + 'vnv_2:GAIRES', + eps=[1e-9]) + + # Comparison between sequential and parallel run. + self.check_epsilons('vnv_1:WACRES', + 'vnv_2:WACRES', + eps=[1e-8]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_3:T2DRST', + 'restart_littoral_t2d.slf', + eps=[1e-12]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_3:GAIRST', + 'restart_littoral_gai.slf', + eps=[1e-9]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_3:WACRBI', + 'restart_littoral_tom.slf', + eps=[1e-12]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_4:T2DRST', + 'restart_littoral_t2d_par.slf', + eps=[1e-12]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_4:GAIRST', + 'restart_littoral_gai_par.slf', + eps=[1e-9]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_4:WACRBI', + 'restart_littoral_tom_par.slf', + eps=[1e-12]) + + # Comparison between one way and intermediate step, sequential run. + self.check_epsilons('vnv_1:T2DRES', + 'vnv_5:T2DRES', + eps=[1e-10]) + + # Comparison between one way and intermediate step, sequential run. + self.check_epsilons('vnv_1:GAIRES', + 'vnv_5:GAIRES', + eps=[1e-11]) + + # Comparison between one way and intermediate step, sequential run. + self.check_epsilons('vnv_1:WACRES', + 'vnv_5:WACRES', + eps=[1e-8]) + + # Comparison between one way and intermediate step, parallel run. + self.check_epsilons('vnv_2:T2DRES', + 'vnv_6:T2DRES', + eps=[1e-9]) + + # Comparison between one way and intermediate step, parallel run. + self.check_epsilons('vnv_2:GAIRES', + 'vnv_6:GAIRES', + eps=[1e-9]) + + # Comparison between one way and intermediate step, parallel run. + self.check_epsilons('vnv_2:WACRES', + 'vnv_6:WACRES', + eps=[1e-8]) + + def _post(self): + """ + Post-treatment processes + """ diff --git a/examples/gaia/mud_conservation-t2d/gai_mud_cons_from_restart-t2d.cas b/examples/gaia/mud_conservation-t2d/gai_mud_cons_from_restart-t2d.cas new file mode 100644 index 0000000000000000000000000000000000000000..1a856cebb18b0031dbb0bae3a1024816a2272b0f --- /dev/null +++ b/examples/gaia/mud_conservation-t2d/gai_mud_cons_from_restart-t2d.cas @@ -0,0 +1,56 @@ +/----------------------------------------------------------------------- +/ GAIA STEERING FILE +/----------------------------------------------------------------------- +BOUNDARY CONDITIONS FILE = geo_mud_cons-t2d.cli +GEOMETRY FILE = geo_mud_cons-t2d.slf +RESULTS FILE = gai_mud_cons-t2d.slf +DEBUGGER = 0 +/ +COMPUTATION CONTINUED = YES +PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE = restart_mud_cons_gai.slf +PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE FORMAT = 'SERAFIND' +/ +/----------------------------------------------------------------------- +/ OUTPUT +/----------------------------------------------------------------------- +VARIABLES FOR GRAPHIC PRINTOUTS = 'U,V,S,H,B,E,CS1' +MASS-BALANCE = YES +/----------------------------------------------------------------------- +/ NUMERICAL OPTIONS +/----------------------------------------------------------------------- +FINITE VOLUMES = NO +/----------------------------------------------------------------------- +/ PHYSICAL OPTIONS +/----------------------------------------------------------------------- +NUMBER OF LAYERS FOR INITIAL STRATIFICATION = 1 +CLASSES TYPE OF SEDIMENT = CO +CLASSES SEDIMENT DENSITY = 1600 +CLASSES SEDIMENT DIAMETERS = 0.00006 +FORMULA FOR SLOPE EFFECT = 0 +FORMULA FOR DEVIATION = 0 +SEDIMENT SLIDE = 0 +LAYERS MUD CONCENTRATION = 100. +LAYERS CRITICAL EROSION SHEAR STRESS OF THE MUD = 0.1 +CLASSES CRITICAL SHEAR STRESS FOR MUD DEPOSITION = 1000.D0 +SCHEME FOR ADVECTION OF SUSPENDED SEDIMENTS = 5 +SCHEME OPTION FOR ADVECTION OF SUSPENDED SEDIMENTS = 1 +COEFFICIENT FOR DIFFUSION OF SUSPENDED SEDIMENTS = 0. +ACCURACY FOR DIFFUSION OF SUSPENSION = 10.D-15 +/ CASES +/ EROSION AND DEPOSITION CASE +CLASSES SETTLING VELOCITIES = 0.01 +LAYERS PARTHENIADES CONSTANT = 1.D-03 +/ +/ NO EROSION CASE +/LAYERS PARTHENIADES CONSTANT = 0.D0 +/CLASSES SETTLING VELOCITIES = 0.01 +/ +/ NO DEPOSITION CASE +/LAYERS PARTHENIADES CONSTANT = 1.D-03 +/CLASSES SETTLING VELOCITIES = 0.0 +/ +/ NOR DEPOSITION NOR EROSION CASE (PASSIVE TRACER) +/LAYERS PARTHENIADES CONSTANT = 0.0 +/CLASSES SETTLING VELOCITIES = 0.0 +/ +SKIN FRICTION CORRECTION = 0 diff --git a/examples/gaia/mud_conservation-t2d/gai_mud_cons_restart-t2d.cas b/examples/gaia/mud_conservation-t2d/gai_mud_cons_restart-t2d.cas new file mode 100644 index 0000000000000000000000000000000000000000..064e90833e28d64e8dcffc7015a6cc9e1c0aa68e --- /dev/null +++ b/examples/gaia/mud_conservation-t2d/gai_mud_cons_restart-t2d.cas @@ -0,0 +1,56 @@ +/----------------------------------------------------------------------- +/ GAIA STEERING FILE +/----------------------------------------------------------------------- +BOUNDARY CONDITIONS FILE = geo_mud_cons-t2d.cli +GEOMETRY FILE = geo_mud_cons-t2d.slf +RESULTS FILE = gai_mud_cons-t2d.slf +DEBUGGER = 0 +/ +RESTART MODE = YES +RESTART FILE = restart_mud_cons_gai.slf +RESTART FILE FORMAT = 'SERAFIND' +/ +/----------------------------------------------------------------------- +/ OUTPUT +/----------------------------------------------------------------------- +VARIABLES FOR GRAPHIC PRINTOUTS = 'U,V,S,H,B,E,CS1' +MASS-BALANCE = YES +/----------------------------------------------------------------------- +/ NUMERICAL OPTIONS +/----------------------------------------------------------------------- +FINITE VOLUMES = NO +/----------------------------------------------------------------------- +/ PHYSICAL OPTIONS +/----------------------------------------------------------------------- +NUMBER OF LAYERS FOR INITIAL STRATIFICATION = 1 +CLASSES TYPE OF SEDIMENT = CO +CLASSES SEDIMENT DENSITY = 1600 +CLASSES SEDIMENT DIAMETERS = 0.00006 +FORMULA FOR SLOPE EFFECT = 0 +FORMULA FOR DEVIATION = 0 +SEDIMENT SLIDE = 0 +LAYERS MUD CONCENTRATION = 100. +LAYERS CRITICAL EROSION SHEAR STRESS OF THE MUD = 0.1 +CLASSES CRITICAL SHEAR STRESS FOR MUD DEPOSITION = 1000.D0 +SCHEME FOR ADVECTION OF SUSPENDED SEDIMENTS = 5 +SCHEME OPTION FOR ADVECTION OF SUSPENDED SEDIMENTS = 1 +COEFFICIENT FOR DIFFUSION OF SUSPENDED SEDIMENTS = 0. +ACCURACY FOR DIFFUSION OF SUSPENSION = 10.D-15 +/ CASES +/ EROSION AND DEPOSITION CASE +CLASSES SETTLING VELOCITIES = 0.01 +LAYERS PARTHENIADES CONSTANT = 1.D-03 +/ +/ NO EROSION CASE +/LAYERS PARTHENIADES CONSTANT = 0.D0 +/CLASSES SETTLING VELOCITIES = 0.01 +/ +/ NO DEPOSITION CASE +/LAYERS PARTHENIADES CONSTANT = 1.D-03 +/CLASSES SETTLING VELOCITIES = 0.0 +/ +/ NOR DEPOSITION NOR EROSION CASE (PASSIVE TRACER) +/LAYERS PARTHENIADES CONSTANT = 0.0 +/CLASSES SETTLING VELOCITIES = 0.0 +/ +SKIN FRICTION CORRECTION = 0 diff --git a/examples/gaia/mud_conservation-t2d/gai_ref_mud_cons-t2d.slf b/examples/gaia/mud_conservation-t2d/gai_ref_mud_cons-t2d.slf index dc211c17d29aca073a7bf3ec84d1ae7898775b20..eb4dd61bd47f4629098d32711b7265ba2c84d488 100644 --- a/examples/gaia/mud_conservation-t2d/gai_ref_mud_cons-t2d.slf +++ b/examples/gaia/mud_conservation-t2d/gai_ref_mud_cons-t2d.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a312949429aa30d559b49119e40bf3fe31e82c9600f8437a8c2babbf60779a42 -size 330340 +oid sha256:a451e74bfb72009cbd89970ed6efaf03cb7bc98c0f53c4b9db78bb0115ee9c78 +size 274708 diff --git a/examples/gaia/mud_conservation-t2d/restart_mud_cons_gai.slf b/examples/gaia/mud_conservation-t2d/restart_mud_cons_gai.slf new file mode 100644 index 0000000000000000000000000000000000000000..5d6834a55deec0b014db91e202f5c49c62ee3ddb --- /dev/null +++ b/examples/gaia/mud_conservation-t2d/restart_mud_cons_gai.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a27958a56c181b9c25e2e434aa097edc9215ea72c394daddce675ff6b36da3c4 +size 1237016 diff --git a/examples/gaia/mud_conservation-t2d/restart_mud_cons_gai_par.slf b/examples/gaia/mud_conservation-t2d/restart_mud_cons_gai_par.slf new file mode 100644 index 0000000000000000000000000000000000000000..67f2ec3c1042c89633543a537a548304a74f9b32 --- /dev/null +++ b/examples/gaia/mud_conservation-t2d/restart_mud_cons_gai_par.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65f3f93886ddc3ce186fb040868f1073a7245d9c797ce9ef5b1ffbca5efb4e7e +size 1237016 diff --git a/examples/gaia/mud_conservation-t2d/restart_mud_cons_t2d.slf b/examples/gaia/mud_conservation-t2d/restart_mud_cons_t2d.slf new file mode 100644 index 0000000000000000000000000000000000000000..66a753042d679e9fc622681123e22a255a915997 --- /dev/null +++ b/examples/gaia/mud_conservation-t2d/restart_mud_cons_t2d.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bccdbc1b72c907378bdaba81c823ee6e45282ccab99f6b770bda0fae70a76aae +size 718768 diff --git a/examples/gaia/mud_conservation-t2d/restart_mud_cons_t2d_par.slf b/examples/gaia/mud_conservation-t2d/restart_mud_cons_t2d_par.slf new file mode 100644 index 0000000000000000000000000000000000000000..643210736c894dc2dd5701c273c5266b1ac4b840 --- /dev/null +++ b/examples/gaia/mud_conservation-t2d/restart_mud_cons_t2d_par.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e067dcf2a95cf314062f6c1a6be20e5787d29bb02486f93a2fe3f0f6aa4c107e +size 718768 diff --git a/examples/gaia/mud_conservation-t2d/t2d_mud_cons_from_restart.cas b/examples/gaia/mud_conservation-t2d/t2d_mud_cons_from_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..61e46944ead7963adf39bfbea87496e0eaf14940 --- /dev/null +++ b/examples/gaia/mud_conservation-t2d/t2d_mud_cons_from_restart.cas @@ -0,0 +1,46 @@ +/DEBUGGER = 1 +/ +/ +FORTRAN FILE = 'user_fortran' +BOUNDARY CONDITIONS FILE = geo_mud_cons-t2d.cli +GEOMETRY FILE = geo_mud_cons-t2d.slf +RESULTS FILE = r2d_mud_cons-t2d.slf +GAIA STEERING FILE = gai_mud_cons_from_restart-t2d.cas +COUPLING WITH = 'GAIA' +/ +COMPUTATION CONTINUED = YES +PREVIOUS COMPUTATION FILE = restart_mud_cons_t2d.slf +PREVIOUS COMPUTATION FILE FORMAT = 'SERAFIND' +/ +/----------------------------------------------------------------------/ +/ GENERAL OPTIONS +/----------------------------------------------------------------------/ +/ +TITLE = 'MUD CONSERVATION' +INITIAL CONDITIONS = SPECIAL +VARIABLES FOR GRAPHIC PRINTOUTS = 'U,V,H,S,B' +TIME STEP = 0.04 +NUMBER OF TIME STEPS = 500 +GRAPHIC PRINTOUT PERIOD = 100 +LISTING FOR PRINTOUT PERIOD = 100 +/ +LAW OF BOTTOM FRICTION = 3 +FRICTION COEFFICIENT = 40. +/ +/----------------------------------------------------------------------/ +/ PROPAGATION +/----------------------------------------------------------------------/ +/ +SOLVER = 7 +TURBULENCE MODEL = 1 +VELOCITY DIFFUSIVITY = 0.D0 +MAXIMUM NUMBER OF ITERATIONS FOR SOLVER = 100 +SOLVER ACCURACY = 1.E-15 +IMPLICITATION FOR DEPTH = 0.6 +IMPLICITATION FOR VELOCITY = 0.6 +MASS-LUMPING ON H = 1. +/--------------------------------------------------------------- +MASS-BALANCE = YES +TYPE OF ADVECTION = 1;5 +SUPG OPTION = 2;0 +/----------------------------------------------------------------------/ diff --git a/examples/gaia/mud_conservation-t2d/t2d_mud_cons_restart.cas b/examples/gaia/mud_conservation-t2d/t2d_mud_cons_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..42360d5745734a387f729ac921d9c4a5e6657064 --- /dev/null +++ b/examples/gaia/mud_conservation-t2d/t2d_mud_cons_restart.cas @@ -0,0 +1,46 @@ +/DEBUGGER = 1 +/ +/ +FORTRAN FILE = 'user_fortran' +BOUNDARY CONDITIONS FILE = geo_mud_cons-t2d.cli +GEOMETRY FILE = geo_mud_cons-t2d.slf +RESULTS FILE = r2d_mud_cons-t2d.slf +GAIA STEERING FILE = gai_mud_cons_restart-t2d.cas +COUPLING WITH = 'GAIA' +/ +RESTART MODE = YES +RESTART FILE = restart_mud_cons_t2d.slf +RESTART FILE FORMAT = 'SERAFIND' +/ +/----------------------------------------------------------------------/ +/ GENERAL OPTIONS +/----------------------------------------------------------------------/ +/ +TITLE = 'MUD CONSERVATION' +INITIAL CONDITIONS = SPECIAL +VARIABLES FOR GRAPHIC PRINTOUTS = 'U,V,H,S,B' +TIME STEP = 0.04 +NUMBER OF TIME STEPS = 500 +GRAPHIC PRINTOUT PERIOD = 100 +LISTING FOR PRINTOUT PERIOD = 100 +/ +LAW OF BOTTOM FRICTION = 3 +FRICTION COEFFICIENT = 40. +/ +/----------------------------------------------------------------------/ +/ PROPAGATION +/----------------------------------------------------------------------/ +/ +SOLVER = 7 +TURBULENCE MODEL = 1 +VELOCITY DIFFUSIVITY = 0.D0 +MAXIMUM NUMBER OF ITERATIONS FOR SOLVER = 100 +SOLVER ACCURACY = 1.E-15 +IMPLICITATION FOR DEPTH = 0.6 +IMPLICITATION FOR VELOCITY = 0.6 +MASS-LUMPING ON H = 1. +/--------------------------------------------------------------- +MASS-BALANCE = YES +TYPE OF ADVECTION = 1;5 +SUPG OPTION = 2;0 +/----------------------------------------------------------------------/ diff --git a/examples/gaia/mud_conservation-t2d/vnv_mud_conservation_restart-t2d.py b/examples/gaia/mud_conservation-t2d/vnv_mud_conservation_restart-t2d.py new file mode 100644 index 0000000000000000000000000000000000000000..494a2577d5853fb7b64daf249d583dd2c02893dc --- /dev/null +++ b/examples/gaia/mud_conservation-t2d/vnv_mud_conservation_restart-t2d.py @@ -0,0 +1,150 @@ + +""" +Validation script for mud_conservation-t2d restart +""" +from vvytel.vnv_study import AbstractVnvStudy +from execution.telemac_cas import TelemacCas, get_dico + +class VnvStudy(AbstractVnvStudy): + """ + Class for validation + """ + + def _init(self): + """ + Defines the general parameter + """ + self.rank = 1 + self.tags = ['telemac2d', 'gaia'] + + def _pre(self): + """ + Defining the studies + """ + + # Mud conservation T2D+GAI scalar mode + self.add_study('vnv_1', + 'telemac2d', + 't2d_mud_cons.cas') + + + # Mud conservation T2D+GAI parallel mode + cas = TelemacCas('t2d_mud_cons.cas', get_dico('telemac2d')) + cas.set('PARALLEL PROCESSORS', 4) + + self.add_study('vnv_2', + 'telemac2d', + 't2d_mud_cons_par.cas', + cas=cas) + + del cas + + # Restart scalar mode + self.add_study('vnv_3', + 'telemac2d', + 't2d_mud_cons_restart.cas') + + + # Restart parallel mode + cas = TelemacCas('t2d_mud_cons_restart.cas', get_dico('telemac2d')) + cas.set('PARALLEL PROCESSORS', 4) + + self.add_study('vnv_4', + 'telemac2d', + 't2d_mud_cons_restart_par.cas', + cas=cas) + + del cas + + # From restart scalar mode + self.add_study('vnv_5', + 'telemac2d', + 't2d_mud_cons_from_restart.cas') + + + # From restart parallel mode + t2d_par_cas_filename = 't2d_mud_cons_from_restart_par.cas' + gai_par_cas_filename = 'gai_mud_cons_from_restart-t2d_par.cas' + cas = TelemacCas('t2d_mud_cons_from_restart.cas', get_dico('telemac2d')) + casgai = TelemacCas('gai_mud_cons_from_restart-t2d.cas', get_dico('gaia')) + cas.set('PARALLEL PROCESSORS', 4) + cas.set('PREVIOUS COMPUTATION FILE', 'restart_mud_cons_t2d_par.slf') + casgai.set('PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE', 'restart_mud_cons_gai_par.slf') + + # Write the GAIA steering file to new file + casgai.write(gai_par_cas_filename) + + # Change GAIA steering filename in TELEMAC steering file + cas.set('GAIA STEERING FILE', gai_par_cas_filename) + + # Write the new T2D steering file + cas.write(t2d_par_cas_filename) + + self.add_study('vnv_6', + 'telemac2d', + 't2d_mud_cons_from_restart-t2d_par.cas', + cas=cas) + + del cas + + + + def _check_results(self): + """ + Post-treatment processes + """ + + # Comparison between sequential and parallel run. + self.check_epsilons('vnv_1:T2DRES', + 'vnv_2:T2DRES', + eps=[1e-7]) + + # Comparison between sequential and parallel run. + self.check_epsilons('vnv_1:GAIRES', + 'vnv_2:GAIRES', + eps=[1e-7]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_3:T2DRST', + 'restart_mud_cons_t2d.slf', + eps=[1e-7]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_3:GAIRST', + 'restart_mud_cons_gai.slf', + eps=[1e-9]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_4:T2DRST', + 'restart_mud_cons_t2d_par.slf', + eps=[1e-7]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_4:GAIRST', + 'restart_mud_cons_gai_par.slf', + eps=[1e-9]) + + # Comparison between one way and intermediate step, sequential run. + self.check_epsilons('vnv_1:T2DRES', + 'vnv_5:T2DRES', + eps=[1e-8]) + + # Comparison between one way and intermediate step, sequential run. + self.check_epsilons('vnv_1:GAIRES', + 'vnv_5:GAIRES', + eps=[1e-8]) + + # Comparison between one way and intermediate step, parallel run. + self.check_epsilons('vnv_2:T2DRES', + 'vnv_6:T2DRES', + eps=[1e-7]) + + # Comparison between one way and intermediate step, parallel run. + self.check_epsilons('vnv_2:GAIRES', + 'vnv_6:GAIRES', + eps=[1e-7]) + + def _post(self): + """ + Post-treatment processes + """ diff --git a/examples/gaia/rouse-t3d/gai_ref_rouse-t3d.slf b/examples/gaia/rouse-t3d/gai_ref_rouse-t3d.slf index ef56700400de4f5610bbe05b7cf5dd9853bf5442..d1f2a46f274ef4fb94a9fca669a8f949bfc0515b 100644 --- a/examples/gaia/rouse-t3d/gai_ref_rouse-t3d.slf +++ b/examples/gaia/rouse-t3d/gai_ref_rouse-t3d.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:165e20e9cdcd90f273a89e43699dff5b74f6677784cba2f86f5c2785475a26f5 -size 34684 +oid sha256:c98a738e84b686e73c712ab5ce28a6eb949edbee162d75e5b383885bc6514097 +size 29212 diff --git a/examples/gaia/tidal_flats-t3d/gai_ref_tidal_flats.slf b/examples/gaia/tidal_flats-t3d/gai_ref_tidal_flats.slf index 1c45c2fd7e31d81ced9568422c062261a651d017..e4d2af39b5700c44400053d101b4f3b8b910fbfa 100644 --- a/examples/gaia/tidal_flats-t3d/gai_ref_tidal_flats.slf +++ b/examples/gaia/tidal_flats-t3d/gai_ref_tidal_flats.slf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:19a6c9d1d425a92d4f7bb460d9a8c2937d079541bff95d828039d089aadf7d81 -size 197444 +oid sha256:a8f5ca4e3fe3a0dedf15061c2b03dbea40af55c20d50c2f21233335cb48ce46f +size 167396 diff --git a/examples/gaia/yen-t2d/gai_yen-exp_multi1_from_restart.cas b/examples/gaia/yen-t2d/gai_yen-exp_multi1_from_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..0f0afba3e6251ba0206d4e4993cd55f2919ac3ff --- /dev/null +++ b/examples/gaia/yen-t2d/gai_yen-exp_multi1_from_restart.cas @@ -0,0 +1,63 @@ +/====================================================================== +/ GAIA: Wesel-Xanten minimalistic nw97 Q(Wesel) +/ The Rhine River, Rhein-km 812.5 - 821.5 +/====================================================================== +SECONDARY CURRENTS = YES +SECONDARY CURRENTS ALPHA COEFFICIENT = 1.0 +/SECONDARY CURRENTS = NO +BOUNDARY CONDITIONS FILE = geo_yen-exp.cli +PRESCRIBED SOLID DISCHARGES = 0.0;0.0 +GEOMETRY FILE = geo_yen-exp.slf +RESULTS FILE = gaia_yen-exp_multi1.slf +/ +COMPUTATION CONTINUED = YES +PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE = restart_yen_multi1_gai.slf +PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE FORMAT = 'SERAFIND' +/ +/---------------------------------------------- +/ GENERAL AND OUTPUT +/---------------------------------------------- +TITLE : 'Yen-180-bend' +VARIABLES FOR GRAPHIC PRINTOUTS = +'U,V,S,E,H,B,KS,TOB,M,N,P,1A*,2A*,*ES' +/ +/---------------------------------------------- +/ NUMERICAL PARAMETERS +/---------------------------------------------- +/ +MASS-BALANCE = YES +ZERO = 1e-12 +/MINIMAL VALUE OF THE WATER HEIGHT = 0.001 +/ +/---------------------------------------------- +/ PHYSICAL PARAMETERS - HYDRODYNAMICS +/---------------------------------------------- +/ +/ 0: wird berechnet: ks = 3*D50 +/ 1: wird berechnet: ks : max(3*d50, ripple height) +/ +/---------------------------------------------- +/ PHYSICAL PARAMETERS - BED LOAD +/---------------------------------------------- +CLASSES TYPE OF SEDIMENT = NCO;NCO;NCO;NCO;NCO +CLASSES SEDIMENT DENSITY = 2650.;2650.;2650.;2650.;2650. +BED LOAD FOR ALL SANDS = YES +SUSPENSION FOR ALL SANDS = NO +BED-LOAD TRANSPORT FORMULA FOR ALL SANDS = 1 +CLASSES SHIELDS PARAMETERS = 0.047;0.047;0.047;0.047;0.047 +CLASSES SETTLING VELOCITIES = -9;-9;-9;-9;-9 +/COEFFICIENT FUNCTION OF THE POROSITY = 1.6 +LAYERS NON COHESIVE BED POROSITY = 0.37500 + +CLASSES SEDIMENT DIAMETERS = +0.00031;0.00064;0.00103;0.00169;0.00336 +CLASSES INITIAL FRACTION = +0.2;0.2;0.2;0.2;0.2 +CONSTANT ACTIVE LAYER THICKNESS = YES +ACTIVE LAYER THICKNESS = 0.10D0 +/ +SLOPE EFFECT = YES +FORMULA FOR DEVIATION = 2 +PARAMETER FOR DEVIATION = 0.85 +FORMULA FOR SLOPE EFFECT = 2 +FRICTION ANGLE OF THE SEDIMENT = 35 diff --git a/examples/gaia/yen-t2d/gai_yen-exp_multi1_restart.cas b/examples/gaia/yen-t2d/gai_yen-exp_multi1_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..a76234fc651c7d3f17398bddb591b3b8c959da61 --- /dev/null +++ b/examples/gaia/yen-t2d/gai_yen-exp_multi1_restart.cas @@ -0,0 +1,63 @@ +/====================================================================== +/ GAIA: Wesel-Xanten minimalistic nw97 Q(Wesel) +/ The Rhine River, Rhein-km 812.5 - 821.5 +/====================================================================== +SECONDARY CURRENTS = YES +SECONDARY CURRENTS ALPHA COEFFICIENT = 1.0 +/SECONDARY CURRENTS = NO +BOUNDARY CONDITIONS FILE = geo_yen-exp.cli +PRESCRIBED SOLID DISCHARGES = 0.0;0.0 +GEOMETRY FILE = geo_yen-exp.slf +RESULTS FILE = gaia_yen-exp_multi1.slf +/ +RESTART MODE = YES +RESTART FILE = restart_yen_multi1_gai.slf +RESTART FILE FORMAT = 'SERAFIND' +/ +/---------------------------------------------- +/ GENERAL AND OUTPUT +/---------------------------------------------- +TITLE : 'Yen-180-bend' +VARIABLES FOR GRAPHIC PRINTOUTS = +'U,V,S,E,H,B,KS,TOB,M,N,P,1A*,2A*,*ES' +/ +/---------------------------------------------- +/ NUMERICAL PARAMETERS +/---------------------------------------------- +/ +MASS-BALANCE = YES +ZERO = 1e-12 +/MINIMAL VALUE OF THE WATER HEIGHT = 0.001 +/ +/---------------------------------------------- +/ PHYSICAL PARAMETERS - HYDRODYNAMICS +/---------------------------------------------- +/ +/ 0: wird berechnet: ks = 3*D50 +/ 1: wird berechnet: ks : max(3*d50, ripple height) +/ +/---------------------------------------------- +/ PHYSICAL PARAMETERS - BED LOAD +/---------------------------------------------- +CLASSES TYPE OF SEDIMENT = NCO;NCO;NCO;NCO;NCO +CLASSES SEDIMENT DENSITY = 2650.;2650.;2650.;2650.;2650. +BED LOAD FOR ALL SANDS = YES +SUSPENSION FOR ALL SANDS = NO +BED-LOAD TRANSPORT FORMULA FOR ALL SANDS = 1 +CLASSES SHIELDS PARAMETERS = 0.047;0.047;0.047;0.047;0.047 +CLASSES SETTLING VELOCITIES = -9;-9;-9;-9;-9 +/COEFFICIENT FUNCTION OF THE POROSITY = 1.6 +LAYERS NON COHESIVE BED POROSITY = 0.37500 + +CLASSES SEDIMENT DIAMETERS = +0.00031;0.00064;0.00103;0.00169;0.00336 +CLASSES INITIAL FRACTION = +0.2;0.2;0.2;0.2;0.2 +CONSTANT ACTIVE LAYER THICKNESS = YES +ACTIVE LAYER THICKNESS = 0.10D0 +/ +SLOPE EFFECT = YES +FORMULA FOR DEVIATION = 2 +PARAMETER FOR DEVIATION = 0.85 +FORMULA FOR SLOPE EFFECT = 2 +FRICTION ANGLE OF THE SEDIMENT = 35 diff --git a/examples/gaia/yen-t2d/restart_yen_multi1_gai.slf b/examples/gaia/yen-t2d/restart_yen_multi1_gai.slf new file mode 100644 index 0000000000000000000000000000000000000000..126fd9bd281ee69e28cdb1f8188712de72aca6a7 --- /dev/null +++ b/examples/gaia/yen-t2d/restart_yen_multi1_gai.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7bd9ab3501261a7ec319af749d13dade1c7efca8db3ddae1e62bffccd346604 +size 266420 diff --git a/examples/gaia/yen-t2d/restart_yen_multi1_t2d.slf b/examples/gaia/yen-t2d/restart_yen_multi1_t2d.slf new file mode 100644 index 0000000000000000000000000000000000000000..355d5818f993b45e326cdfff54c2fd0815b9fe3a --- /dev/null +++ b/examples/gaia/yen-t2d/restart_yen_multi1_t2d.slf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98c7e5bfab02df6dd5dad82ba577cbd72c83fb701f041b163c3fc5b01d080a6f +size 95452 diff --git a/examples/gaia/yen-t2d/t2d_yen-exp_multi1_from_restart.cas b/examples/gaia/yen-t2d/t2d_yen-exp_multi1_from_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..e4299cf4043b4c58f07acf36eb13a206746f615e --- /dev/null +++ b/examples/gaia/yen-t2d/t2d_yen-exp_multi1_from_restart.cas @@ -0,0 +1,70 @@ +/---------------------------------------------------------------------- +/ FILE DEFINITION +/---------------------------------------------------------------------- +/ +COUPLING WITH = 'GAIA' +GAIA STEERING FILE = gai_yen-exp_multi1_from_restart.cas +FORTRAN FILE : 'user_fortran_multi' +BOUNDARY CONDITIONS FILE : geo_yen-exp.cli +GEOMETRY FILE : geo_yen-exp.slf +RESULTS FILE : r2d_yen-exp_multi.slf +LIQUID BOUNDARIES FILE : t2d_zulauf.qsl +/PREVIOUS COMPUTATION FILE : ini_yen-exp.slf +/ +COMPUTATION CONTINUED = YES +PREVIOUS COMPUTATION FILE = restart_yen_multi1_t2d.slf +PREVIOUS COMPUTATION FILE FORMAT = 'SERAFIND' +/ +/---------------------------------------------------------------------- +/ GENERAL OPTIONS +/---------------------------------------------------------------------- +/ +TITLE : '1st try Yen-Versuch' +/ +VARIABLES FOR GRAPHIC PRINTOUTS : 'U,V,S,B,H,Q,M,W' +TIME STEP : 0.1 +/ +NUMBER OF TIME STEPS : 2000 +GRAPHIC PRINTOUT PERIOD : 2000 +LISTING PRINTOUT PERIOD : 2000 +/ +COMPUTATION CONTINUED : YES +/ +/---------------------------------------------------------------------- +/ BOUNDARY CONDITIONS +/---------------------------------------------------------------------- +/ +LAW OF BOTTOM FRICTION : 5 +FRICTION COEFFICIENT : 0.0035 +PRESCRIBED ELEVATIONS : 9.9955; 9.9955 +PRESCRIBED FLOWRATES : 0.02; 0.02 +/ +/---------------------------------------------------------------------- +/ INITIAL CONDITIONS +/---------------------------------------------------------------------- +/ +INITIAL CONDITIONS :'CONSTANT DEPTH' +INITIAL DEPTH : 0.0544 +/INITIAL TIME SET TO ZERO : TRUE +/ +/---------------------------------------------------------------------- +/ NUMERICAL OPTIONS +/---------------------------------------------------------------------- +/ +MASS-BALANCE : YES +SOLVER : 1 +/ +FREE SURFACE GRADIENT COMPATIBILITY : 0.9 / 0.5 +MASS-LUMPING ON H : 1. +SOLVER ACCURACY : 1.E-6 +TYPE OF ADVECTION : 4;5 / 1;5 +SUPG OPTION : 1;1 +IMPLICITATION FOR DEPTH : 1.0 / 0.6 +IMPLICITATION FOR VELOCITY : 0.6 +/ +/---------------------------------------------------------------------- +/ TURBULENCE MODEL +/---------------------------------------------------------------------- +/ +TURBULENCE MODEL : 2 +VELOCITY DIFFUSIVITY : 1.E-6 / 1.E-2 diff --git a/examples/gaia/yen-t2d/t2d_yen-exp_multi1_restart.cas b/examples/gaia/yen-t2d/t2d_yen-exp_multi1_restart.cas new file mode 100644 index 0000000000000000000000000000000000000000..cdf343bb75c32c200e06bba282c871eb36297020 --- /dev/null +++ b/examples/gaia/yen-t2d/t2d_yen-exp_multi1_restart.cas @@ -0,0 +1,70 @@ +/---------------------------------------------------------------------- +/ FILE DEFINITION +/---------------------------------------------------------------------- +/ +COUPLING WITH = 'GAIA' +GAIA STEERING FILE = gai_yen-exp_multi1_restart.cas +FORTRAN FILE : 'user_fortran_multi' +BOUNDARY CONDITIONS FILE : geo_yen-exp.cli +GEOMETRY FILE : geo_yen-exp.slf +RESULTS FILE : r2d_yen-exp_multi.slf +LIQUID BOUNDARIES FILE : t2d_zulauf.qsl +PREVIOUS COMPUTATION FILE : ini_yen-exp.slf +/ +RESTART MODE = YES +RESTART FILE = restart_yen_multi1_t2d.slf +RESTART FILE FORMAT = 'SERAFIND' +/ +/---------------------------------------------------------------------- +/ GENERAL OPTIONS +/---------------------------------------------------------------------- +/ +TITLE : '1st try Yen-Versuch' +/ +VARIABLES FOR GRAPHIC PRINTOUTS : 'U,V,S,B,H,Q,M,W' +TIME STEP : 0.1 +/ +NUMBER OF TIME STEPS : 2000 +GRAPHIC PRINTOUT PERIOD : 2000 +LISTING PRINTOUT PERIOD : 2000 +/ +COMPUTATION CONTINUED : YES +/ +/---------------------------------------------------------------------- +/ BOUNDARY CONDITIONS +/---------------------------------------------------------------------- +/ +LAW OF BOTTOM FRICTION : 5 +FRICTION COEFFICIENT : 0.0035 +PRESCRIBED ELEVATIONS : 9.9955; 9.9955 +PRESCRIBED FLOWRATES : 0.02; 0.02 +/ +/---------------------------------------------------------------------- +/ INITIAL CONDITIONS +/---------------------------------------------------------------------- +/ +INITIAL CONDITIONS :'CONSTANT DEPTH' +INITIAL DEPTH : 0.0544 +INITIAL TIME SET TO ZERO : TRUE +/ +/---------------------------------------------------------------------- +/ NUMERICAL OPTIONS +/---------------------------------------------------------------------- +/ +MASS-BALANCE : YES +SOLVER : 1 +/ +FREE SURFACE GRADIENT COMPATIBILITY : 0.9 / 0.5 +MASS-LUMPING ON H : 1. +SOLVER ACCURACY : 1.E-6 +TYPE OF ADVECTION : 4;5 / 1;5 +SUPG OPTION : 1;1 +IMPLICITATION FOR DEPTH : 1.0 / 0.6 +IMPLICITATION FOR VELOCITY : 0.6 +/ +/---------------------------------------------------------------------- +/ TURBULENCE MODEL +/---------------------------------------------------------------------- +/ +TURBULENCE MODEL : 2 +VELOCITY DIFFUSIVITY : 1.E-6 / 1.E-2 diff --git a/examples/gaia/yen-t2d/t2d_yen-exp_multi1_short.cas b/examples/gaia/yen-t2d/t2d_yen-exp_multi1_short.cas new file mode 100644 index 0000000000000000000000000000000000000000..cb057472d0ecc997e3fdfea7f16ac4f4622f25f0 --- /dev/null +++ b/examples/gaia/yen-t2d/t2d_yen-exp_multi1_short.cas @@ -0,0 +1,66 @@ +/---------------------------------------------------------------------- +/ FILE DEFINITION +/---------------------------------------------------------------------- +/ +COUPLING WITH = 'GAIA' +GAIA STEERING FILE = gai_yen-exp_multi1.cas +FORTRAN FILE : 'user_fortran_multi' +BOUNDARY CONDITIONS FILE : geo_yen-exp.cli +GEOMETRY FILE : geo_yen-exp.slf +RESULTS FILE : r2d_yen-exp_multi.slf +LIQUID BOUNDARIES FILE : t2d_zulauf.qsl +PREVIOUS COMPUTATION FILE : ini_yen-exp.slf +/ +/---------------------------------------------------------------------- +/ GENERAL OPTIONS +/---------------------------------------------------------------------- +/ +TITLE : '1st try Yen-Versuch' +/ +VARIABLES FOR GRAPHIC PRINTOUTS : 'U,V,S,B,H,Q,M,W' +TIME STEP : 0.1 +/ +NUMBER OF TIME STEPS : 4000 +GRAPHIC PRINTOUT PERIOD : 2000 +LISTING PRINTOUT PERIOD : 2000 +/ +COMPUTATION CONTINUED : YES +/ +/---------------------------------------------------------------------- +/ BOUNDARY CONDITIONS +/---------------------------------------------------------------------- +/ +LAW OF BOTTOM FRICTION : 5 +FRICTION COEFFICIENT : 0.0035 +PRESCRIBED ELEVATIONS : 9.9955; 9.9955 +PRESCRIBED FLOWRATES : 0.02; 0.02 +/ +/---------------------------------------------------------------------- +/ INITIAL CONDITIONS +/---------------------------------------------------------------------- +/ +INITIAL CONDITIONS :'CONSTANT DEPTH' +INITIAL DEPTH : 0.0544 +INITIAL TIME SET TO ZERO : TRUE +/ +/---------------------------------------------------------------------- +/ NUMERICAL OPTIONS +/---------------------------------------------------------------------- +/ +MASS-BALANCE : YES +SOLVER : 1 +/ +FREE SURFACE GRADIENT COMPATIBILITY : 0.9 / 0.5 +MASS-LUMPING ON H : 1. +SOLVER ACCURACY : 1.E-6 +TYPE OF ADVECTION : 4;5 / 1;5 +SUPG OPTION : 1;1 +IMPLICITATION FOR DEPTH : 1.0 / 0.6 +IMPLICITATION FOR VELOCITY : 0.6 +/ +/---------------------------------------------------------------------- +/ TURBULENCE MODEL +/---------------------------------------------------------------------- +/ +TURBULENCE MODEL : 2 +VELOCITY DIFFUSIVITY : 1.E-6 / 1.E-2 diff --git a/examples/gaia/yen-t2d/vnv_yen_multi_restart.py b/examples/gaia/yen-t2d/vnv_yen_multi_restart.py new file mode 100644 index 0000000000000000000000000000000000000000..067c4fa790f8c09823b129fc49066ea182f78945 --- /dev/null +++ b/examples/gaia/yen-t2d/vnv_yen_multi_restart.py @@ -0,0 +1,69 @@ + +""" +Validation script for yen_multi restart +""" +from vvytel.vnv_study import AbstractVnvStudy +from execution.telemac_cas import TelemacCas, get_dico + +class VnvStudy(AbstractVnvStudy): + """ + Class for validation + """ + + def _init(self): + """ + Defines the general parameter + """ + self.rank = 1 + self.tags = ['telemac2d', 'gaia'] + + def _pre(self): + """ + Defining the studies + """ + + # yen-exp_multi T2D+GAI scalar mode + self.add_study('vnv_1', + 'telemac2d', + 't2d_yen-exp_multi1_short.cas') + + # Restart scalar mode + self.add_study('vnv_3', + 'telemac2d', + 't2d_yen-exp_multi1_restart.cas') + + # From restart scalar mode + self.add_study('vnv_5', + 'telemac2d', + 't2d_yen-exp_multi1_from_restart.cas') + + + def _check_results(self): + """ + Post-treatment processes + """ + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_3:T2DRST', + 'restart_yen_multi1_t2d.slf', + eps=[1e-4]) + + # Comparison with the restart file used to continue. + self.check_epsilons('vnv_3:GAIRST', + 'restart_yen_multi1_gai.slf', + eps=[1e-4]) + + # Comparison between one way and intermediate step, sequential run. + self.check_epsilons('vnv_1:T2DRES', + 'vnv_5:T2DRES', + eps=[1e-4]) + + # Comparison between one way and intermediate step, sequential run. + self.check_epsilons('vnv_1:GAIRES', + 'vnv_5:GAIRES', + eps=[1e-4]) + + def _post(self): + """ + Post-treatment processes + """ diff --git a/sources/api/api.cmdf b/sources/api/api.cmdf index ef17b5279214e10b932455adf173696cf9c9e101..36bc43b816639f386e3a66dc00e782af713aba2c 100644 --- a/sources/api/api.cmdf +++ b/sources/api/api.cmdf @@ -759,6 +759,7 @@ files: declarations_gaia.f gaia_suspension_erode.f predes_gaia.f gaia_write_results.f + predes_restart_gaia.f gaia_step.F eqcae_bc_gaia.f gaia_suspension_conv.f diff --git a/sources/gaia/declarations_gaia.f b/sources/gaia/declarations_gaia.f index 4e478f9420055a329f7ef517c98011b2531f11af..2eac5a7192f6a540aec1c348da1259c775cca4f4 100644 --- a/sources/gaia/declarations_gaia.f +++ b/sources/gaia/declarations_gaia.f @@ -929,6 +929,22 @@ !> LISTING PRINTOUT PERIOD INTEGER LISPR ! +!> RESTART FILE +! + INTEGER GAIRST +! +!> RECORD NUMBER FOR RESTART +! + INTEGER, TARGET :: START_RECORD +! +!> PRINTOUT PERIOD FOR RESTART FILE +! + INTEGER, TARGET :: RSTPRD +! +!> RECORD NUMBER IN RESTART FILE +! + INTEGER, TARGET :: RESTART_RECORD +! !----------------------------------------------------------------------- ! ! 5) LOGICAL VALUES @@ -951,6 +967,11 @@ ! LOGICAL :: SORIMP(MAXVAR) ! +!> ARRAYS SAYING IF A VARIABLE IS TO BE PRINTED IN RESTART FILE +! OR LISTING +! + LOGICAL SOREST(MAXVAR),SORIS2(MAXVAR) +! !> Include masking ! LOGICAL :: MSK @@ -1097,6 +1118,10 @@ ! LOGICAL :: OUTPUT_MOFAC ! +!> RESTART MODE (TO GENERATE A RESTART FILE) +! + LOGICAL RESTART_MODE_GAI +! !----------------------------------------------------------------------- ! ! 6) REALS @@ -1778,13 +1803,13 @@ !! 0 : DISCARD !! 1 : READ (SEE SUBROUTINE NOMVAR) !! -!! BED EVOLUTION - INTEGER :: ALIRE(MAXVAR) = - & (/ (0,KKK=1,9),(0,KKK=10,MAXVAR) /) +!! BED EVOLUTION B + INTEGER :: ALIRE(MAXVAR) = (/ 0,0,0,0,1,(0,KKK=6,MAXVAR) /) ! ! WAVES ONLY INTEGER :: ALIRH(MAXVAR) = - & (/ (0,KKK=1,10),(1,KKK=11,13),(0,KKK=14,MAXVAR) /) + & (/ (0,KKK=1,10),(1,KKK=11,13),(0,KKK=14,20),1, + & (0,KKK=22,MAXVAR) /) ! !> For validation, each variable in the file is compared ! diff --git a/sources/gaia/gaia.dico b/sources/gaia/gaia.dico index 52b574c428bfdf2749c8780cca40a9b047f43890..e222d47dcf9f6b35bff25d4d913f73d3234feb73 100644 --- a/sources/gaia/gaia.dico +++ b/sources/gaia/gaia.dico @@ -24,10 +24,10 @@ /---SYSTEME-TELEMAC--------------------------------------GAIA----------- / / INDICES IN USE SO FAR: -/ INTEGER INDEX USED: 1-3,7-9,11-12,15-16,20-20,23-30,33-34,39-47,51-52,54-54,58-67,251 OUT OF 44 +/ INTEGER INDEX USED: 1-3,7-9,11-12,15-20,23-30,33-34,39-47,51-52,54-54,58-67,251 OUT OF 47 / REAL INDEX USED: 3-13,16-16,21-22,24-29,32-38,40-45,51-54,258-262 OUT OF 42 -/ LOGICAL INDEX USED: 1-11,14-16,18-18,22-22,25-27,29-32,34-34,59-59,61 OUT OF 26 -/ STRING INDEX USED: 1-3,6-9,11-13,16-16,22-22,27-27,30-31,33-42,53-53,55-55,59-60,64-64,69-70,100 OUT OF 33 +/ LOGICAL INDEX USED: 1-11,14-18,22-22,25-27,29-32,34-34,59-59,61 OUT OF 27 +/ STRING INDEX USED: 1-9,11-13,16-16,22-22,27-27,30-31,33-42,53-53,55-55,59-60,64-64,69-70,100 OUT OF 35 / /----------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////// @@ -1359,6 +1359,9 @@ earlier sedimentological computation which was made on the same mesh. The last recorded time step will provide the initial conditions for the new computation.' / +//////////////////////////////////////////////////////////////////////// +///// 8.1-RESTART +//////////////////////////////////////////////////////////////////////// NOM = 'SUITE DE CALCUL' NOM1 = 'COMPUTATION CONTINUED' TYPE = LOGICAL @@ -1368,9 +1371,9 @@ DEFAUT = NON DEFAUT1 = NO MNEMO = 'DEBU' RUBRIQUE = -'CONDITIONS INITIALES';'';'' +'CONDITIONS INITIALES';'REPRISE DE CALCUL';'' RUBRIQUE1 = -'INITIAL CONDITIONS';'';'' +'INITIAL CONDITIONS';'RESTART';'' NIVEAU = 1 AIDE = 'Determine si le calcul en cours est independant de tout autre @@ -1380,8 +1383,8 @@ NON : Il s''agit du premier passage pour ce calcul et il est necessaire de definir un jeu complet de conditions initiales OUI : Il s''agit d''une reprise de calcul : les conditions initiales sont constituees par le dernier pas de temps du -FICHIER PRECEDENT SEDIMENTOLOGIQUE du fichier des parametres utilise -pour soumettre le calcul. +\telkey{FICHIER PRECEDENT SEDIMENTOLOGIQUE} du fichier des parametres +utilise pour soumettre le calcul. Par contre, l''ensemble des donnees du fichier des parametres peuvent etre redefinies De meme, il est necessaire de definir des conditions aux limites' @@ -1392,7 +1395,7 @@ NO: It is the first run for this computation and a whole set of initial conditions should be defined. YES: It follows a former computation: the initial conditions consist in the last time step of the -PREVIOUS COMPUTATION FILE +\telkey{PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE} in the steering file used for submitting the computation. All the data from the steering file may be defined once again, which provides an opportunity to change, for example, the time step. @@ -1418,6 +1421,180 @@ AIDE = AIDE1 = 'Time in seconds after which bed updates are taken into account' +/ +NOM = 'ENREGISTREMENT POUR SUITE DE CALCUL' +NOM1 = 'RECORD NUMBER FOR RESTART' +TYPE = INTEGER +INDEX = 17 +TAILLE = 1 +DEFAUT = -1 +DEFAUT1 = -1 +MNEMO = 'START\_RECORD' +RUBRIQUE = +'CONDITIONS INITIALES';'REPRISE DE CALCUL';'' +RUBRIQUE1 = +'INITIAL CONDITIONS';'RESTART';'' +NIVEAU = 0 +AIDE = +'En cas de suite de calcul, numero de l enregistrement +de depart dans le \telkey{FICHIER PRECEDENT SEDIMENTOLOGIQUE}. +-1 signifie que l on prend le dernier enregistrement.' +AIDE1 = +'In case of \telkey{COMPUTATION CONTINUED} = YES, record number +to start from in the +\telkey{PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE}. +-1 means the last record is taken.' +/ +NOM = 'MODE SUITE' +NOM1 = 'RESTART MODE' +TYPE = LOGICAL +INDEX = 17 +TAILLE = 1 +DEFAUT = NON +DEFAUT1 = NO +MNEMO = 'RESTART\_MODE\_GAI' +RUBRIQUE = +'CONDITIONS INITIALES';'REPRISE DE CALCUL';'' +RUBRIQUE1 = +'INITIAL CONDITIONS';'RESTART';'' +NIVEAU = 1 +AIDE = +'Declenche le remplissage du +\telkey{FICHIER POUR SUITE}, qui permet une suite de calcul +parfaite, contrairement au \telkey{FICHIER DES RESULTATS}.' +AIDE1 = +'Triggers the filling of the \telkey{RESTART FILE}, +which ensures a perfect restart of a computation, +unlike using the \telkey{RESULTS FILE}.' +/ +NOM = 'FICHIER POUR SUITE' +NOM1 = 'RESTART FILE' +TYPE = STRING +INDEX = 4 +TAILLE = 1 +SUBMIT = 'GAIRST-WRITE;GAIRST;FACUL;BIN;ECR;SELAFIN' +DEFAUT = '' +DEFAUT1 = '' +MNEMO = 'GAI\_FILES(GAIRST)\%NAME' +RUBRIQUE = +'CONDITIONS INITIALES';'REPRISE DE CALCUL';'' +RUBRIQUE1 = +'INITIAL CONDITIONS';'RESTART';'' +NIVEAU = 1 +AIDE = +'Nom du fichier dans lequel seront ecrits les resultats du +calcul pour obtenir une suite de calcul parfaite. +C est donc un fichier de sortie pour le calcul en cours, +qui servira de fichier d entree lors de la suite de calcul que l on +souhaite parfaite (le mot-cle +\telkey{FICHIER PRECEDENT SEDIMENTOLOGIQUE} est alors utilise). +Le \telkey{FORMAT DU FICHIER POUR SUITE} et le +\telkey{FORMAT DU FICHIER PRECEDENT SEDIMENTOLOGIQUE} doivent alors etre +mis a ''SERAFIND'' ou ''MED''.' +AIDE1 = +'Name of the file into which the computation results shall +be written in order to get a perfect continued computation. +It is then an output file for the current computation, +which will be used as an input file when a continued computation +is expected to be perfect (the keyword +\telkey{PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE} is then used). +The \telkey{RESTART FILE FORMAT} and the +\telkey{PREVIOUS SEDIMENTOLOGICAL COMPUTATION FILE FORMAT} have to be +set with ''SERAFIND'' or ''MED''.' +/ +NOM = 'FORMAT DU FICHIER POUR SUITE' +NOM1 = 'RESTART FILE FORMAT' +TYPE = STRING +INDEX = 5 +TAILLE = 1 +DEFAUT = 'SERAFIND' +DEFAUT1 = 'SERAFIND' +MNEMO = 'GAI\_FILES(GAIRST)\%FMT' +CHOIX = +'SERAFIN'; +'SERAFIND'; +'MED' +CHOIX1 = +'SERAFIN'; +'SERAFIND'; +'MED' +RUBRIQUE = +'CONDITIONS INITIALES';'REPRISE DE CALCUL';'' +RUBRIQUE1 = +'INITIAL CONDITIONS';'RESTART';'' +NIVEAU = 2 +AIDE = +'Format du \telkey{FICHIER POUR SUITE}. +Les valeurs possibles sont : +\begin{itemize} +\item SERAFIN : format standard simple precision pour \tel ; +\item SERAFIND: format standard double precision pour \tel ; +\item MED : format MED double precision base sur HDF5. +\end{itemize} +Seul les formats double precision assurent une suite parfaite.' +AIDE1 = +'Format of the \telkey{RESTART FILE}. +Possible choices are: +\begin{itemize} +\item SERAFIN : classical single precision format in \tel, +\item SERAFIND: classical double precision format in \tel, +\item MED : MED double precision format based on HDF5. +\end{itemize} +Only double precision formats ensure a perfect restart.' +/ +NOM = 'PERIODE POUR LES SORTIES DU FICHIER POUR SUITE' +NOM1 = 'RESTART FILE PRINTOUT PERIOD' +TYPE = INTEGER +INDEX = 18 +TAILLE = 1 +DEFAUT = 0 +DEFAUT1 = 0 +MNEMO = 'RSTPRD' +RUBRIQUE = +'CONDITIONS INITIALES';'REPRISE DE CALCUL';'' +RUBRIQUE1 = +'INITIAL CONDITIONS';'RESTART';'' +NIVEAU = 2 +AIDE = +'Determine la periode en nombre de pas de temps d''impression des +variables a sauver pour une reprise parfaite +dans le \telkey{FICHIER POUR SUITE}. +La valeur par defaut 0 signifie que le \telkey{FICHIER POUR SUITE} +est seulement ecrit au dernier pas de temps ou au +\telkey{NUMERO DE L''ENREGISTREMENT DANS LE FICHIER POUR SUITE}.' +AIDE1 = +'Determines, in number of time steps, the printout period for the +variables to be saved for a perfect restart in the +\telkey{RESTART FILE}. +Default = 0 means the \telkey{RESTART FILE} is only written at the last +time step or at the \telkey{RECORD NUMBER IN RESTART FILE}.' +/ +NOM = 'NUMERO DE L''ENREGISTREMENT DANS LE FICHIER POUR SUITE' +NOM1 = 'RECORD NUMBER IN RESTART FILE' +TYPE = INTEGER +INDEX = 19 +TAILLE = 1 +DEFAUT = -1 +DEFAUT1 = -1 +MNEMO = 'RESTART\_RECORD' +RUBRIQUE = +'CONDITIONS INITIALES';'REPRISE DE CALCUL';'' +RUBRIQUE1 = +'INITIAL CONDITIONS';'RESTART';'' +NIVEAU = 2 +AIDE = +'Determine le numero de pas de temps d''impression des +variables a sauver pour une reprise parfaite +dans le \telkey{FICHIER POUR SUITE}. +La valeur par defaut -1 signifie que le \telkey{FICHIER POUR SUITE} +est seulement ecrit au dernier pas de temps et/ou periodiquement a la +periode \telkey{PERIODE POUR LES SORTIES DU FICHIER POUR SUITE}.' +AIDE1 = +'Determines the number of time step when printing the variables to be +saved for a perfect restart in the \telkey{RESTART FILE}. +Default = -1 means the \telkey{RESTART FILE} is only written at the last +time step and/or periodically at the period +\telkey{RESTART FILE PRINTOUT PERIOD}.' / //////////////////////////////////////////////////////////////////////// /// 9-INPUT-OUTPUT, GRAPHICS AND LISTING diff --git a/sources/gaia/gaia_init.F b/sources/gaia/gaia_init.F index 1f4146970c5ec890662d8f689ce6901fa16bc208..ce1f25001be5e3f9de1c790d88151d7bcc11980b 100644 --- a/sources/gaia/gaia_init.F +++ b/sources/gaia/gaia_init.F @@ -114,34 +114,38 @@ ! READS REFERENCE LEVEL FOR NESTOR IF(NESTOR) ALIRE(22)=1 ! Nestor ! READS RATIO_SAND FROM THE PREVIOUS COMPUTATION FILE - DO I=1,NSAND*NOMBLAY - ALIRE(NVAR_RATIOS+I)=1 - ENDDO +! READS MASS_S FROM THE PREVIOUS COMPUTATION FILE + IF(NSAND.GT.0) THEN + DO I=1,NSAND*NOMBLAY + ALIRE(NVAR_RATIOS+I)=1 + ALIRE(NVAR_MASS_S+I)=1 + ENDDO + ENDIF ! READS RATIO_MUD FROM THE PREVIOUS COMPUTATION FILE - DO I=1,NMUD*NOMBLAY - ALIRE(NVAR_RATIOM+I)=1 - ENDDO +! READS MASS_M FROM THE PREVIOUS COMPUTATION FILE + IF(NMUD.GT.0) THEN + DO I=1,NMUD*NOMBLAY + ALIRE(NVAR_RATIOM+I)=1 + ALIRE(NVAR_MASS_M+I)=1 + ENDDO + ENDIF ! READS THE LAYER THICKNESSES DO I=1,NOMBLAY ALIRE(NVAR_LAYTHI+I)=1 ENDDO -! READS MASS_S FROM THE PREVIOUS COMPUTATION FILE - DO I=1,NSAND*NOMBLAY - ALIRE(NVAR_MASS_S+I)=1 - ENDDO -! READS MASS_M FROM THE PREVIOUS COMPUTATION FILE - DO I=1,NMUD*NOMBLAY - ALIRE(NVAR_MASS_M+I)=1 - ENDDO ! READS LAYER CONCENTRATION, CRITICAL SHEAR STRESS, ! PARTHENIADES CONSTANT EROSION RATE, MASS TRANSFER RATE FROM ! THE PREVIOUS COMPUTATION FILE - DO I=1,NOMBLAY - ALIRE(NVAR_LAYCONC+I)=1 - ALIRE(NVAR_TOCEMUD+I)=1 - ALIRE(NVAR_PARTHE+I)=1 - ALIRE(NVAR_MTRANS+I)=1 - ENDDO + IF(NMUD.GT.0) THEN + DO I=1,NOMBLAY + ALIRE(NVAR_LAYCONC+I)=1 + ALIRE(NVAR_TOCEMUD+I)=1 + ALIRE(NVAR_PARTHE+I)=1 + IF(BED_MODEL.EQ.2) THEN + ALIRE(NVAR_MTRANS+I)=1 + ENDIF + ENDDO + ENDIF ! DIFFERENTIATED VARIABLES ! FOR READING GRADIENTS IN SELAFIN FILES ! @@ -310,6 +314,32 @@ & GEOFORMAT=GAI_FILES(GAIGEO)%FMT) IF(DEBUG.GT.0) WRITE(LU,*) 'END_WRITE_MESH' ! +! OUTPUT FOR RESTART +! + IF(RESTART_MODE_GAI.AND.GAI_FILES(GAIRST)%NAME(1:1).NE.' ') THEN + IF(DEBUG.GT.0) WRITE(LU,*) 'CALLING WRITE_HEADER EN RESTART' + CALL WRITE_HEADER(GAI_FILES(GAIRST)%FMT, ! RESULT FILE FORMAT + & GAI_FILES(GAIRST)%LU, ! RESULT FILE LU + & TITCA, ! TITLE + & MAXVAR, ! MAX NUMBER OF OUTPUT VARIABLES + & TEXTE, ! NAMES OF OUTPUT VARIABLES + & SOREST) ! OUTPUT OR NOT + IF(DEBUG.GT.0) WRITE(LU,*) 'BACK FROM WRITE_HEADER EN RESTART' +! + IF(DEBUG.GT.0) WRITE(LU,*) 'CALLING WRITE_MESH EN RESTART' + CALL WRITE_MESH(GAI_FILES(GAIRST)%FMT, ! RESULT FILE FORMAT + & GAI_FILES(GAIRST)%LU, ! RESULT FILE LU + & MESH, + & 1, ! NUMBER OF PLANES /NA/ + & MARDAT, ! START DATE + & MARTIM, ! START HOUR + & T1,T2, ! WORKING ARRAYS + & NCSIZE.GT.1, NPTIR, + & NGEO=GAI_FILES(GAIGEO)%LU, + & GEOFORMAT=GAI_FILES(GAIGEO)%FMT) + IF(DEBUG.GT.0) WRITE(LU,*) 'BACK FROM WRITE_MESH EN RESTART' + ENDIF +! ! FILLS IN MASKEL BY DEFAULT ! IF(MSK) CALL OS ('X=C ', X=MASKEL, C=1.D0) @@ -377,8 +407,9 @@ ! IF(DEBUG.GT.0) WRITE(LU,*) 'READ_DATASET' CALL READ_DATASET(GAI_FILES(GAIPRE)%FMT,GAI_FILES(GAIPRE)%LU, - & VARSOR,NPOIN,NUMENX,AT0,TEXTPR,TROUVE,ALIRE, - & .TRUE.,.TRUE.,MAXVAR) + & VARSOR,NPOIN,START_RECORD,AT0,TEXTPR,TROUVE, + & ALIRE,.TRUE.,START_RECORD.EQ.-1,MAXVAR) + IF(DEBUG.GT.0) WRITE(LU,*) 'END_READ_DATASET' ! IF(DEBUG.GT.0) WRITE(LU,*) 'RESCUE_GAIA' @@ -558,18 +589,20 @@ ENDDO ENDIF ! - IF(HIRANO) THEN - IF(DEBUG.GT.0) WRITE(LU,*)'BED1_UPDATE 1' - CALL BED1_UPDATE(ZR,ZF,VOLU2D) - IF(DEBUG.GT.0) WRITE(LU,*)'END BED1_UPDATE 1' + IF(HIRANO) THEN + IF(DEBUG.GT.0) WRITE(LU,*)'BED1_UPDATE 1' + CALL BED1_UPDATE(ZR,ZF,VOLU2D) + IF(DEBUG.GT.0) WRITE(LU,*)'END BED1_UPDATE 1' + IF(.NOT.DEBU) THEN IF(DEBUG.GT.0) WRITE(LU,*)'BED1_UPDATE_ACTIVELAYER_HIRANO' - CALL BED1_UPDATE_ACTIVELAYER_HIRANO + CALL BED1_UPDATE_ACTIVELAYER_HIRANO IF(DEBUG.GT.0) THEN WRITE(LU,*)'END BED1_UPDATE_ACTIVELAYER_HIRANO' - ENDIF - IF(DEBUG.GT.0) WRITE(LU,*)'BED1_UPDATE 2' + ENDIF + IF(DEBUG.GT.0) WRITE(LU,*)'BED1_UPDATE 2' CALL BED1_UPDATE(ZR,ZF,VOLU2D) - IF(DEBUG.GT.0) WRITE(LU,*)'END BED1_UPDATE 2' + IF(DEBUG.GT.0) WRITE(LU,*)'END BED1_UPDATE 2' + ENDIF ! ! INITIALIZATION OF CVSM MODEL IF(VSMTYPE.EQ.1) THEN @@ -733,6 +766,18 @@ & ILEO=YAGOUT) IF(DEBUG.GT.0) WRITE(LU,*) 'END BIEF_DESIMP' ! +! INITIAL CONDITIONS OF GAI OUTPUT FOR RESTART (NOT USED BY NOW MANDATORY) +! + IF(RESTART_MODE_GAI.AND.GAI_FILES(GAIRST)%NAME(1:1).NE.' ') THEN +! PREPARES AND COMPUTES VARIABLES FOR RESTART FILE + CALL PREDES_RESTART_GAIA(0,AT0,.TRUE.,CODE) + IF(DEBUG.GT.0) WRITE(LU,*) 'CALLING BIEF_DESIMP RESTART MODE' + CALL BIEF_DESIMP(GAI_FILES(GAIRST)%FMT,VARSOR,NPOIN, + & GAI_FILES(GAIRST)%LU,AT0,0, + & 1,NIT,SOREST,SORIS2,MAXVAR,TEXTE,0,0) + IF(DEBUG.GT.0) WRITE(LU,*) 'BACK FROM BIEF_DESIMP RESTART' + ENDIF +! ! COUPLING ! diff --git a/sources/gaia/gaia_step.F b/sources/gaia/gaia_step.F index 87e91534c42f09e82e4ec373f63b5b045cf56f15..9f435224e666707a1bffc81e3d101b99cc384939 100644 --- a/sources/gaia/gaia_step.F +++ b/sources/gaia/gaia_step.F @@ -249,6 +249,38 @@ & (CODE,GRAFCOUNT,GGRCOMP,COMP,LISTCOUNT,YAGOUT,T_RES) ! ! SENDS THE NEW ZF TO TELEMAC-2D OR 3D +! +! OUTPUT FOR RESTART +! + IF(RESTART_MODE_GAI.AND.GAI_FILES(GAIRST)%NAME(1:1).NE.' ') THEN +! PREPARES AND COMPUTES VARIABLES FOR RESTART FILE + CALL PREDES_RESTART_GAIA(LT,T_RES,YAGOUT,CODE) + IF(RSTPRD.NE.0) THEN + IF(MOD(LT,RSTPRD).EQ.0) THEN + IF(DEBUG.GT.0) WRITE(LU,*) 'CALLING BIEF_DESIMP RESTART' + CALL BIEF_DESIMP(GAI_FILES(GAIRST)%FMT,VARSOR,NPOIN, + & GAI_FILES(GAIRST)%LU,T_RES,LT,1,RSTPRD, + & SOREST,SORIS2,MAXVAR,TEXTE,0,0) + IF(DEBUG.GT.0) WRITE(LU,*) 'BACK FROM BIEF_DESIMP RESTART' + ELSEIF(RESTART_RECORD.EQ.-1.AND.LT.EQ.TELNIT + & .OR.RESTART_RECORD.NE.-1.AND.LT.EQ.RESTART_RECORD) THEN + IF(DEBUG.GT.0) WRITE(LU,*) 'CALLING BIEF_DESIMP RESTART' + CALL BIEF_DESIMP(GAI_FILES(GAIRST)%FMT,VARSOR,NPOIN, + & GAI_FILES(GAIRST)%LU,T_RES,LT,1,LT, + & SOREST,SORIS2,MAXVAR,TEXTE,0,0) + IF(DEBUG.GT.0) WRITE(LU,*) 'BACK FROM BIEF_DESIMP RESTART' + ENDIF + ELSE + IF(RESTART_RECORD.EQ.-1.AND.LT.EQ.TELNIT + & .OR.RESTART_RECORD.NE.-1.AND.LT.EQ.RESTART_RECORD) THEN + IF(DEBUG.GT.0) WRITE(LU,*) 'CALLING BIEF_DESIMP RESTART' + CALL BIEF_DESIMP(GAI_FILES(GAIRST)%FMT,VARSOR,NPOIN, + & GAI_FILES(GAIRST)%LU,T_RES,LT,1,LT, + & SOREST,SORIS2,MAXVAR,TEXTE,0,0) + IF(DEBUG.GT.0) WRITE(LU,*) 'BACK FROM BIEF_DESIMP RESTART' + ENDIF + ENDIF + ENDIF ! CALL OV ('X=Y ', X=ZF_TEL%R, Y=ZF%R, DIM1=NPOIN) ! diff --git a/sources/gaia/interface_gaia.f b/sources/gaia/interface_gaia.f index 15d03f430d4e1a77dde1ea4565b8c15d58504bfd..118336762991961f30816a3d0233b742bed86301 100644 --- a/sources/gaia/interface_gaia.f +++ b/sources/gaia/interface_gaia.f @@ -404,6 +404,16 @@ LOGICAL,INTENT(IN) :: YAGOUT END SUBROUTINE END INTERFACE +! + INTERFACE + SUBROUTINE PREDES_RESTART_GAIA(LLT,AAT,YAGOUT,CODE) + IMPLICIT NONE + INTEGER, INTENT(IN) :: LLT + DOUBLE PRECISION, INTENT(IN) :: AAT + CHARACTER(LEN=24), INTENT(IN) :: CODE + LOGICAL,INTENT(IN) :: YAGOUT + END SUBROUTINE + END INTERFACE ! INTERFACE SUBROUTINE READ_FIC_CONC_GAIA(CGL_GAIA, WHAT, AT, NFIC, LISTIN, diff --git a/sources/gaia/lecdon_gaia.f b/sources/gaia/lecdon_gaia.f index d03a8e1e612fd9054d1930bf564fea698ac5f49d..f01936a2d226e45edef18ef1e99ac16e8f2deb53 100644 --- a/sources/gaia/lecdon_gaia.f +++ b/sources/gaia/lecdon_gaia.f @@ -165,6 +165,8 @@ ! === ELSEIF(GAI_FILES(I)%TELNAME.EQ.'VSPRES') THEN VSPRES=I + ELSEIF(GAI_FILES(I)%TELNAME.EQ.'GAIRST') THEN + GAIRST=I ! ENDIF ENDDO @@ -227,7 +229,11 @@ MARTIM(3) = MOTINT( ADRESS(1, 16) + 2 ) ! SLIDE = MOTINT( ADRESS(1, 20) ) - +! + START_RECORD = MOTINT( ADRESS(1, 17) ) + RSTPRD = MOTINT( ADRESS(1, 18) ) + RESTART_RECORD = MOTINT( ADRESS(1, 19) ) +! NPRIV = MOTINT( ADRESS(1, 23) ) NADVAR = MOTINT( ADRESS(1,30) ) ! NUMBER OF DIRECTIONS FOR DIFFERENTIATED VARIABLES @@ -660,6 +666,8 @@ !##< RK @ BAW HINDER= MOTLOG( ADRESS(3,9)) FLOC = MOTLOG( ADRESS(3,34)) +! + RESTART_MODE_GAI = MOTLOG( ADRESS(3,17)) ! ! ################################### ! ! CHARACTER STRING KEYWORDS ! @@ -668,6 +676,9 @@ TITCA = MOTCAR( ADRESS(4, 1) )(1:72) SORTIS = MOTCAR( ADRESS(4, 2) )(1:72) VARIM = MOTCAR( ADRESS(4, 3) )(1:72) + GAI_FILES(GAIRST)%NAME=MOTCAR( ADRESS(4,4) ) + GAI_FILES(GAIRST)%FMT = MOTCAR( ADRESS(4,5) )(1:8) + CALL MAJUS(GAI_FILES(GAIRST)%FMT) GAI_FILES(GAIGEO)%NAME=MOTCAR( ADRESS(4,6) ) GAI_FILES(GAICLI)%NAME=MOTCAR( ADRESS(4,9) ) GAI_FILES(GAIPRE)%NAME=MOTCAR( ADRESS(4,11) ) @@ -878,6 +889,15 @@ ENDDO ! !----------------------------------------------------------------------- +! +! FOR RESTART FILE +! + DO I=1,MAXVAR + SORIS2(I)=.FALSE. + SOREST(I)=.FALSE. + ENDDO +! +!----------------------------------------------------------------------- ! DISABLE OUTPUT OF BEDLOAD SEDIMENT FLOWRATES QS_C, QSCX, QSCY ! IN CASE THERE IS NO BEDLOAD ! THE SEDIMENT FLOWRATES SPECIFIC TO SUSPENSION ARE NOT IN THE @@ -893,19 +913,59 @@ ENDIF ! !----------------------------------------------------------------------- -! FORCE THE VARIABLES NECESSARY FOR RESTARTING TO BE IN THE OUTPUT +! LIST OF NECESSARY VARIABLES FOR RESTART FILE +! +! B + SOREST(5)=.TRUE. +! R: RIGID BED + SOREST(9)=.TRUE. +! M: SOLID DISCHARGE + SOREST(14)=.TRUE. +! N: SOLID DISCHARGE X + SOREST(15)=.TRUE. +! P: SOLID DISCHARGE Y + SOREST(16)=.TRUE. +! E: EVOLUTION + SOREST(17)=.TRUE. +! KS + SOREST(18)=.TRUE. +! MU + SOREST(19)=.TRUE. +! D50 + SOREST(20)=.TRUE. +! READS REFERENCE LEVEL FOR NESTOR + IF(NESTOR) SOREST(22)=.TRUE. ! Nestor +! + DO I=1,NOMBLAY + SOREST(NVAR_LAYTHI+I)=.TRUE. + ENDDO +! + IF(NSAND.GT.0) THEN + DO I=1,NOMBLAY*NSAND + SOREST(NVAR_MASS_S+I)=.TRUE. + ENDDO + ENDIF +! +!----------------------------------------------------------------------- +! +! FORCE THE VARIABLES NECESSARY FOR RESTARTING TO BE IN THE RESTART +! FILE ! WITH MUD THE MUD CONCENTRATION, TOCE_MUD, PARTHENIADES AND ! TRANS_MASS (IF BED_MODEL.EQ.2) ARE REQUIRED ! COEFFICIENT IN THE LAYERS +! IF(NMUD.GT.0) THEN DO I=1,NOMBLAY - SORLEO(NVAR_LAYCONC+I)=.TRUE. - SORLEO(NVAR_TOCEMUD+I)=.TRUE. - SORLEO(NVAR_PARTHE+I)=.TRUE. + SOREST(NVAR_LAYCONC+I)=.TRUE. + SOREST(NVAR_TOCEMUD+I)=.TRUE. + SOREST(NVAR_PARTHE+I)=.TRUE. IF(BED_MODEL.EQ.2) THEN - SORLEO(NVAR_MTRANS+I)=.TRUE. + SOREST(NVAR_MTRANS+I)=.TRUE. ENDIF ENDDO + DO I=1,NOMBLAY*NMUD + SOREST(NVAR_MASS_M+I)=.TRUE. + ENDDO ENDIF ! !----------------------------------------------------------------------- diff --git a/sources/gaia/predes_restart_gaia.f b/sources/gaia/predes_restart_gaia.f new file mode 100644 index 0000000000000000000000000000000000000000..b93a01df30ba62f1e1dfacc9985b0df73cb2e5d5 --- /dev/null +++ b/sources/gaia/predes_restart_gaia.f @@ -0,0 +1,143 @@ +! ****************************** + SUBROUTINE PREDES_RESTART_GAIA +! ****************************** +! + &(LLT,AAT,YAGOUT,CODE) +! +!*********************************************************************** +! GAIA +!*********************************************************************** +! +!>@brief Prepares the variables which will be written to +!! the restart file. +!! Creation from predes_gaia (for the result file) +! +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!>@param[in] AAT Current time (for building solutions) +!>@param[in] CODE Name of calling programme (telemac2d or 3d) +!>@param[in] LLT Local lt +!>@param[in] YAGOUT If yes graphic output anyway (steered by t2d) +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +! + USE BIEF + USE DECLARATIONS_GAIA + IMPLICIT NONE +! +!!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +! + INTEGER , INTENT(IN) :: LLT + DOUBLE PRECISION , INTENT(IN) :: AAT + CHARACTER(LEN=24) , INTENT(IN) :: CODE + LOGICAL , INTENT(IN) :: YAGOUT +! +!!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +! + INTEGER I,J,K + LOGICAL LEO +! +!----------------------------------------------------------------------- +! +! THE OUTPUT VARIABLES ARE BUILT ONLY IF NECESSARY, HENCE THE +! FOLLOWING TESTS, WHICH MUST BE THE SAME AS IN DESIMP (BIEF LIBRARY) +! + LEO=.FALSE. +! IF CODE =TELEMAC2D OUTOUT IS MANAGED BY T2D + IF(CODE(8:9).EQ.'2D'.OR.CODE(8:9).EQ.'3D') LEO=YAGOUT +! +! NO PRINTOUTS REQUIRED: LEAVING + IF (.NOT.LEO) GO TO 1000 +! +!======================================================================= +! +! VARIABLES WHICH ARE NOT INITIALISED AT THE FIRST CALL OF +! PREDES_RESTART_GAIA +! + IF(LLT.EQ.0) THEN +! JMH ON 27/11/2009 + IF(LEO.AND.SOREST(19)) THEN + CALL OS('X=0 ',X=KS) + ENDIF + ENDIF +! +!======================================================================= +! UPDATE THE Values of the writing blocks +!======================================================================= +! + ! For memory optimisation (from intel debug) + ! For RATIOS + IF (LEO.AND.SOREST(NVAR_RATIOS+1)) THEN + DO K=1,NOMBLAY + DO I=1,NSAND + RATIOS%ADR(K+(I-1)*NOMBLAY)%P%R=RATIO_SAND(I,K,1:NPOIN) + ENDDO + ENDDO + ENDIF + ! For RATIOM + IF(LEO.AND.SOREST(NVAR_RATIOM+1)) THEN + DO K=1,NOMBLAY + DO I=1,NMUD + RATIOM%ADR(K+(I-1)*NOMBLAY)%P%R=RATIO_MUD(I,K,1:NPOIN) + ENDDO + ENDDO + ENDIF + ! For Layconc + IF(LEO.AND.SOREST(NVAR_LAYCONC+1)) THEN + DO K=1,NOMBLAY + LAYCONC%ADR(K)%P%R=CONC_MUD(K,1:NPOIN) + ENDDO + ENDIF + ! For mass_s + IF(LEO.AND.SOREST(NVAR_MASS_S+1)) THEN + DO K=1,NOMBLAY + DO I=1,NSAND + MASS_S%ADR(K+(I-1)*NOMBLAY)%P%R=MASS_SAND(I,K,1:NPOIN) + ENDDO + ENDDO + ENDIF + ! For mass_m + IF(LEO.AND.SOREST(NVAR_MASS_M+1)) THEN + DO K=1,NOMBLAY + DO I=1,NMUD + MASS_M%ADR(K+(I-1)*NOMBLAY)%P%R=MASS_MUD(I,K,1:NPOIN) + ENDDO + ENDDO + ENDIF + ! For mtransfer + IF(LEO.AND.SOREST(NVAR_MTRANS+1)) THEN + DO K=1,NOMBLAY + MTRANSFER%ADR(K)%P%R=TRANS_MASS(K,1:NPOIN) + ENDDO + ENDIF + ! For tocemud + IF(LEO.AND.SOREST(NVAR_TOCEMUD+1)) THEN + DO K=1,NOMBLAY + TOCEMUD%ADR(K)%P%R=TOCE_MUD(K,1:NPOIN) + ENDDO + ENDIF + ! For partheniades + IF(LEO.AND.SOREST(NVAR_PARTHE+1)) THEN + DO K=1,NOMBLAY + PARTHE%ADR(K)%P%R=PARTHENIADES(K,1:NPOIN) + ENDDO + ENDIF +! +!======================================================================= +! UPDATE THE POINTERS TO THE DIFFERENTIATED VARIABLES +!======================================================================= +! + J = NVAR_ADVAR + DO I = 1,NADVAR + IF(LEO.AND.SOREST(J)) THEN + CALL AD_GET_GAIA(I,ADVAR%ADR(I)%P) + J = J + 1 + ENDIF + ENDDO +! +!======================================================================= +! +1000 CONTINUE +! +!======================================================================= +! + RETURN + END diff --git a/sources/gaia/rescue_gaia.f b/sources/gaia/rescue_gaia.f index ee7ebd9b5e0f0d90ae99061046c3abc696b392a6..3ebdc881c776c5b63ec099075ced9c95a75ef1ac 100644 --- a/sources/gaia/rescue_gaia.f +++ b/sources/gaia/rescue_gaia.f @@ -89,12 +89,12 @@ ! ------------- IF((ALIRE(3).EQ.1).AND.(TROUVE(3).NE.1)) THEN IF(TROUVE(4).EQ.1.AND.TROUVE(5).EQ.1) THEN - IF (LISTI) THEN + IF(LISTI) THEN WRITE(LU,401) ENDIF CALL OV('X=Y-Z ', X=H, Y=S, Z=ZF, DIM1=NPOIN) ELSE - IF (LISTI) THEN + IF(LISTI) THEN WRITE(LU,421) ENDIF CALL PLANTE(1) @@ -179,7 +179,7 @@ IF(ALIRE(5).EQ.1.AND.TROUVE(5).EQ.0) THEN ! IF(TROUVE(4).EQ.1.AND.TROUVE(3).EQ.1) THEN - IF (LISTI) THEN + IF(LISTI) THEN WRITE(LU,411) 411 FORMAT(1X,'BATHYMETRY COMPUTED FROM WATER DEPTH', & /,1X,'AND SURFACE ELEVATION') @@ -256,7 +256,7 @@ ! XKV READ IN THE STEERING FILE DEBU_MASS=.FALSE. WRITE(LU,*)'MASSES COMPUTED USING RATIOS,POROSITY AND '// - & 'THICKNESS RETREIVED IN THE PREVIOUS FILE' + & 'THICKNESS RETRIEVED IN THE PREVIOUS FILE' ELSE ! NOT ENOUGH DATA TO RESTART COMPUTATION WRITE(LU,1111) @@ -272,7 +272,7 @@ ! ! CHECK ALL THE NECESSARY VARIABLES FOR SUSPENSION ARE HERE ! - IF (NMUD.NE.0) THEN + IF(NMUD.NE.0) THEN CHECK_CONC=0 CHECK_TOCEMUD=0 CHECK_PARTHENIADES=0 @@ -305,23 +305,23 @@ PARTHENIADES_FOUND = .TRUE. WRITE(LU,*)'PARTHENIADES READ FROM PREVIOUS FILE' ENDIF - IF (BED_MODEL.EQ.2) THEN + IF(BED_MODEL.EQ.2) THEN CHECK_MTRANS=0 DO I=1,NOMBLAY - IF(TROUVE(NVAR_MTRANS+1).EQ.1) THEN + IF(TROUVE(NVAR_MTRANS+I).EQ.1) THEN ! Updating mtransfer with what was read in file TRANS_MASS(I,1:NPOIN)=MTRANSFER%ADR(I)%P%R CHECK_MTRANS=CHECK_MTRANS+1 - WRITE(LU,*)'MASS TRANSFER READ FROM PREVIOUS FILE' ENDIF ENDDO IF(CHECK_MTRANS.EQ.NOMBLAY) THEN MTRANS_FOUND = .TRUE. + WRITE(LU,*)'MASS TRANSFER READ FROM PREVIOUS FILE' ENDIF ENDIF ENDIF ! - IF (PASS.AND.LISTI) THEN + IF(PASS.AND.LISTI) THEN WRITE(LU,970) 970 FORMAT(80('-')) ENDIF diff --git a/sources/telemac2d/lecdon_telemac2d.f b/sources/telemac2d/lecdon_telemac2d.f index c0dd994b604af2d3827faf83169edb9017a4e030..e0ecdb15d3490940e675daf8281406462c2b1851 100644 --- a/sources/telemac2d/lecdon_telemac2d.f +++ b/sources/telemac2d/lecdon_telemac2d.f @@ -2103,6 +2103,10 @@ SOREST(2)=.TRUE. ! H SOREST(4)=.TRUE. +! B + IF(INCLUS(COUPLING,'GAIA')) THEN + SOREST(6)=.TRUE. + ENDIF ! K AND EPSILON IF(ITURB.EQ.3) THEN SOREST(10)=.TRUE. diff --git a/sources/telemac2d/telemac2d.cmdf b/sources/telemac2d/telemac2d.cmdf index 85916ec126a1257f9278067069b4f4fc5c5e09a6..33d07ab05193be58249be600de8723af2fdf9346 100644 --- a/sources/telemac2d/telemac2d.cmdf +++ b/sources/telemac2d/telemac2d.cmdf @@ -659,6 +659,7 @@ files: declarations_gaia.f ad_get_gaia.F predes_gaia.f gaia_write_results.f + predes_restart_gaia.f gaia_step.F eqcae_bc_gaia.f gaia_suspension_conv.f diff --git a/sources/telemac3d/telemac3d.cmdf b/sources/telemac3d/telemac3d.cmdf index d31e44ece26143acf906129db4ea67bf48122c87..271985bb813c4c8c953f2490fb3c8efaf1ef8754 100644 --- a/sources/telemac3d/telemac3d.cmdf +++ b/sources/telemac3d/telemac3d.cmdf @@ -631,6 +631,7 @@ files: declarations_gaia.f gaia_suspension_erode.f predes_gaia.f gaia_write_results.f + predes_restart_gaia.f gaia_step.F user_bed_init.f bed1_init_sediment_gaia.f