|
TRUST 1.9.8
HPC thermohydraulic platform
|
class Couplage_U More...
#include <Couplage_U.h>
Public Member Functions | |
| void | initialize () override |
| This method is called once at the beginning, before any other one of the interface Problem. | |
| void | terminate () override |
| This method is called once at the end, after any other one. | |
| double | presentTime () const override |
| Returns the present time. | |
| bool | initTimeStep (double dt) override |
| This method allocates and initializes the unknown and given fields for the future time step. | |
| void | validateTimeStep () override |
| Validates the calculated unknown by moving the present time at the end of the time step. | |
| bool | isStationary () const override |
| Tells if the Problem unknowns have changed during the last time step. | |
| std::string | newCompute () override |
| void | setStationary (bool) override |
| Tells to the Problem that stationary is reached or not. | |
| void | abortTimeStep () override |
| Aborts the resolution of the current time step. | |
| void | resetTime (double t) override |
| Reset the current time of the Problem to a given value. | |
| bool | iterateTimeStep (bool &converged) override |
| In the case solveTimeStep uses an iterative process, this method executes a single iteration. | |
| void | getInputFieldsNames (Noms &noms) const override |
| This method is used to find the names of input fields understood by the Problem. | |
| void | getOutputFieldsNames (Noms &noms) const override |
| int | postraiter (int force=1) override |
| Demande au probleme de postraiter ses champs, sondes,. | |
| int | limpr () const override |
| Doit-on imprimer les statistiques d'execution maintenant ? | |
| int | lsauv () const override |
| Doit-on sauvegarder l'etat du probleme sur disque maintenant ? | |
| void | sauver () const override |
| Sauvegarder l'etat du probleme sur disque. | |
| bool | updateGivenFields () override |
| ATTENTION : | |
| double | futureTime () const override |
| Returns the future time (end of current computing interval) This value is valid between initTimeStep and either. | |
| OBS_PTR (Field_base) findInputField(const Nom &name) const override | |
| OBS_PTR (Champ_Generique_base) findOutputField(const Nom &name) const override | |
| void | suppProblem (Probleme_U &) |
| void | addProblem (Probleme_U &) |
| int | nb_problemes () const |
| const Probleme_U & | probleme (int i) const |
| Probleme_U & | probleme (int i) |
| const Probleme_U & | probleme (const Nom &nom_pb) const |
| Probleme_U & | probleme (const Nom &nom_pb) |
| int | indice_probleme (const Nom &nom_pb) const |
| Public Member Functions inherited from Probleme_U | |
| virtual double | computeTimeStep (bool &stop) const |
| Compute the value the Problem would like for the next time step. | |
| virtual bool | solveTimeStep () |
| pour recodage eventuel et appel unifie en python | |
| virtual void | getInputFieldTemplate (const Nom &name, ICoCo::TrioField &afield) const |
| virtual void | setInputField (const Nom &name, const ICoCo::TrioField &afield) |
| virtual void | getOutputField (const Nom &nameField, ICoCo::TrioField &afield) const |
| virtual void | setInputIntValue (const Nom &name, const int &val) |
| virtual int | getOutputIntValue (const Nom &name) const |
| virtual bool | checkOutputIntEntry (const Nom &name) const |
| virtual void | getOutputPointValues (const Nom &name, const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z, std::vector< double > &vals, int compo) |
| double | getOutputPointValues (const Nom &name, const double x, const double y, const double z, int compo) |
| virtual void | setInputDoubleValue (const Nom &name, const double val) |
| virtual void | setInputStringValue (const std::string &name, const std::string &val) |
| virtual std::string | getOutputStringValue (const std::string &name) |
| virtual void | post_initialize () |
| virtual bool | run () |
| Cette methode est une sorte de main() du Problem Elle peut etre utilisee si le probleme n'est couple a aucun autre. | |
| virtual bool | runUntil (double time) |
| This method has the same role as the method run, but it stops when reaching the time given in parameter. | |
| void | nommer (const Nom &name) override |
| Donne un nom a l'Objet_U Methode virtuelle a surcharger. | |
| const Nom & | le_nom () const override |
| Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation. | |
| Public Member Functions inherited from Objet_U | |
| ~Objet_U () override | |
| Destructeur, supprime l'objet de la liste d'objets enregistres dans "memoire". | |
| int | numero () const |
| Renvoie l'indice de l'objet dans Memoire::data. | |
| virtual int | duplique () const =0 |
| virtual Sortie & | printOn (Sortie &) const |
| Ecriture de l'objet sur un flot de sortie Methode a surcharger. | |
| virtual Entree & | readOn (Entree &) |
| Lecture d'un Objet_U sur un flot d'entree Methode a surcharger. | |
| virtual unsigned | taille_memoire () const =0 |
| virtual int | est_egal_a (const Objet_U &) const |
| Renvoie 1 si l'objet x et *this sont une seule et meme instance (meme adresse en memoire). | |
| virtual int | reprendre (Entree &) |
| Reprise d'un Objet_U sur un flot d'entree Methode a surcharger. | |
| virtual int | sauvegarder (Sortie &) const |
| Sauvegarde d'un Objet_U sur un flot de sortie Methode a surcharger. | |
| int | get_object_id () const |
| Renvoie l'identifiant unique de l'objet object_id_. | |
| virtual const Type_info * | get_info () const |
| Donne des informations sur le type de l'Objet_U. | |
| const Nom & | que_suis_je () const |
| renvoie la chaine identifiant la classe. | |
| const char * | le_type () const |
| Donne le nom du type de l'Objet_U. | |
| virtual int | change_num (const int *const) |
| Change le numero interne de l'Objet_U. | |
| virtual int | lire_motcle_non_standard (const Motcle &motlu, Entree &is) |
| Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree. | |
| virtual int | associer_ (Objet_U &) |
| Associe l'Objet_U a un autre Objet_U Methode virtuelle a surcharger. | |
| const Interprete & | interprete () const |
| Interprete & | interprete () |
| Public Member Functions inherited from Process | |
| virtual | ~Process () |
Additional Inherited Members | |
| Static Public Member Functions inherited from Objet_U | |
| static const Nom & | nom_du_cas () |
| Renvoie une reference constante vers le nom du cas. | |
| static Nom & | get_set_nom_du_cas () |
| Renvoie une reference non constante vers le nom du cas (pour pouvoir le modifier). | |
| static const Type_info * | info () |
| Donne des informations sur le type de l'Objet_U. | |
| static const Objet_U & | self_cast (const Objet_U &) |
| methode ajoutee pour caster en python | |
| static Objet_U & | self_cast (Objet_U &) |
| Static Public Member Functions inherited from Process | |
| static int | me () |
| renvoie mon rang dans le groupe de communication courant. | |
| static int | nproc () |
| renvoie le nombre de processeurs dans le groupe courant Voir Comm_Group::nproc() et PE_Groups::current_group() | |
| static bool | is_parallel () |
| static void | exit (int exit_code=-1) |
| Routine de sortie de TRUST dans une region Kokkos. | |
| static double | mp_sum (double) |
| Calcule la somme de x sur tous les processeurs du groupe courant. | |
| static float | mp_sum (float) |
| static trustIdType | mp_sum (trustIdType) |
| Calcule la somme de x sur tous les processeurs du groupe courant. | |
| static double | mp_max (double) |
| static double | mp_min (double) |
| static int | mp_max (int) |
| renvoie le plus grand int i sur l'ensemble des processeurs du groupe courant. | |
| static int | mp_min (int) |
| renvoie le plus petit int i sur l'ensemble des processeurs du groupe courant. | |
| static double | mp_sum_as_double (int v) |
| static trustIdType | mppartial_sum (trustIdType i) |
| Calul de la somme partielle de i sur les processeurs 0 a me()-1 (renvoie 0 sur le processeur 0). | |
| template<typename T> | |
| static void | mp_sum_for_each (T &arg1, T &arg2) |
| C++14 compatible mp_sum_for_each: combine multiple mp_sum calls into one collective operation Usage: mp_sum_for_each(a, b); mp_sum_for_each(a, b, c); mp_sum_for_each(a, b, c, d); mp_sum_for_each(a, b, c, d, e); All arguments must be of the same type (double or int) and are modified in place. Supports 2-5 parameters. | |
| template<typename T> | |
| static void | mp_sum_for_each (T &arg1, T &arg2, T &arg3) |
| template<typename T> | |
| static void | mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4) |
| template<typename T> | |
| static void | mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5) |
| template<typename T> | |
| static void | mp_max_for_each (T &arg1, T &arg2) |
| C++14 compatible mp_max_for_each: combine multiple mp_max calls into one collective operation. | |
| template<typename T> | |
| static void | mp_max_for_each (T &arg1, T &arg2, T &arg3) |
| template<typename T> | |
| static void | mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4) |
| template<typename T> | |
| static void | mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5) |
| template<typename T> | |
| static void | mp_min_for_each (T &arg1, T &arg2) |
| C++14 compatible mp_min_for_each: combine multiple mp_min calls into one collective operation. | |
| template<typename T> | |
| static void | mp_min_for_each (T &arg1, T &arg2, T &arg3) |
| template<typename T> | |
| static void | mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4) |
| template<typename T> | |
| static void | mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5) |
| template<typename _TYPE_> | |
| static void | mp_sum_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1) |
| template<typename _TYPE_> | |
| static void | mp_max_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1) |
| template<typename _TYPE_> | |
| static void | mp_min_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1) |
| static bool | mp_and (bool) |
| Calcule le 'et' logique de b sur tous les processeurs du groupe courant. | |
| static bool | mp_or (bool) |
| static int | check_int_overflow (trustIdType) |
| static int | je_suis_maitre () |
| renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0), 0 sinon. | |
| static KOKKOS_INLINE_FUNCTION void | Kokkos_exit (const char *) |
| Routine de sortie de TRUST dans une region Kokkos. | |
| static int | node_master () |
| renvoie 1 si on est sur le processeur maitre du noeud numa, 0 sinon. | |
| static void | exit (const Nom &message, int exit_code=-1) |
| static bool | is_sequential () |
| static void | barrier () |
| Synchronise tous les processeurs du groupe courant (attend que tous les processeurs soient arrives a la barriere). | |
| static void | abort () |
| Routine de sortie de Trio-U sur une erreur abort(). | |
| static Sortie & | Journal (int message_level=0) |
| Renvoie un objet statique de type Sortie qui sert de journal d'evenements. | |
| static double | ram_processeur () |
| static void | imprimer_ram_totale (int all_process=0) |
| static bool | force_single_file (const int ranks, const Nom &filename) |
| Static Public Attributes inherited from Objet_U | |
| static double | precision_geom = 1e-10 |
| static constexpr bool | HAS_POINTER = false |
| static int | dimension =0 |
| static int | format_precision_geom =11 |
| static int | axi =0 |
| static int | bidim_axi =0 |
| static int | DEACTIVATE_SIGINT_CATCH =0 |
| static Type_info | info_obj |
| static bool | disable_TU =false |
| Flag to disable or not the writing of the .TU files. | |
| static bool | stat_per_proc_perf_log =false |
| Flag to enable the writing of the statistics detailed per processor in _csv.TU file. | |
| Static Public Attributes inherited from Process | |
| static int | exception_sur_exit =0 |
| static int | multiple_files =5120 |
| Protected Member Functions inherited from Objet_U | |
| Objet_U () | |
| Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_), et enregistre l'objet en "memoire". | |
| Objet_U (const Objet_U &) | |
| Constructeur par copie. | |
| const Objet_U & | operator= (const Objet_U &) |
| Operateur= : ne fait rien (on conserve le numero et l'identifiant). | |
| virtual void | set_param (Param &) const |
| Protected Attributes inherited from Probleme_U | |
| Nom | nom_ |
| ScalarRegister | reg_ |
| std::map< std::string, std::string > | str_params_ |
class Couplage_U
Cette classe implemente Probleme_U dans le cas d'un probleme composite couplant plusieurs Probleme_U.
Definition at line 30 of file Couplage_U.h.
|
overridevirtual |
Aborts the resolution of the current time step.
| WrongContext |
Reimplemented from Probleme_U.
Definition at line 90 of file Couplage_U.cpp.
|
inline |
Definition at line 112 of file Couplage_U.h.
|
overridevirtual |
Returns the future time (end of current computing interval) This value is valid between initTimeStep and either.
validateTimeStep or abortTimeStep. A surcharger
| WrongContext |
Reimplemented from Probleme_U.
Definition at line 177 of file Couplage_U.cpp.
|
overridevirtual |
This method is used to find the names of input fields understood by the Problem.
| (Noms) | list of names where the Problem appends its input field names. |
Reimplemented from Probleme_U.
Definition at line 126 of file Couplage_U.cpp.
|
overridevirtual |
Reimplemented from Probleme_U.
Definition at line 132 of file Couplage_U.cpp.
| int Couplage_U::indice_probleme | ( | const Nom & | nom_pb | ) | const |
Definition at line 227 of file Couplage_U.cpp.
|
overridevirtual |
This method is called once at the beginning, before any other one of the interface Problem.
| WrongContext |
Reimplemented from Probleme_U.
Reimplemented in Pb_Couple_Optimisation_IBM, Pb_Couple_rayo_semi_transp, and Probleme_Couple.
Definition at line 29 of file Couplage_U.cpp.
|
overridevirtual |
This method allocates and initializes the unknown and given fields for the future time step.
The value of the interval is imposed through the parameter dt. In case of error, returns false.
| (double | dt) the time interval to allocate |
| WrongContext,WrongArgument |
Reimplemented from Probleme_U.
Reimplemented in Pb_Couple_Optimisation_IBM, and Probleme_Couple.
Definition at line 49 of file Couplage_U.cpp.
|
overridevirtual |
Tells if the Problem unknowns have changed during the last time step.
| WrongContext |
Reimplemented from Probleme_U.
Definition at line 64 of file Couplage_U.cpp.
|
overridevirtual |
In the case solveTimeStep uses an iterative process, this method executes a single iteration.
It is thus possible to modify the given fields between iterations. converged is set to true if the process has converged, ie if the unknown fields are solution to the problem on the next time step. Otherwise converged is set to false. The return value indicates if the convergence process behaves normally. If false, the Problem wishes to abort the time step resolution.
| (bool& | converged) It is a return value : true if the process has converged, false otherwise. |
| WrongContext |
Reimplemented from Probleme_U.
Reimplemented in Probleme_Couple.
Definition at line 112 of file Couplage_U.cpp.
|
overridevirtual |
Doit-on imprimer les statistiques d'execution maintenant ?
Reimplemented from Probleme_U.
Definition at line 147 of file Couplage_U.cpp.
|
overridevirtual |
Doit-on sauvegarder l'etat du probleme sur disque maintenant ?
Reimplemented from Probleme_U.
Definition at line 155 of file Couplage_U.cpp.
|
inline |
Definition at line 117 of file Couplage_U.h.
|
overridevirtual |
Reimplemented from Probleme_U.
Definition at line 72 of file Couplage_U.cpp.
|
overridevirtual |
Reimplemented from Probleme_U.
|
overridevirtual |
Reimplemented from Probleme_U.
|
overridevirtual |
Demande au probleme de postraiter ses champs, sondes,.
.. Dans Probleme_U::run(), postraiter() est appele a chaque pas de temps avec force=0 et au debut et a la fin du calcul avec force=1. WEC : il serait bon que, un jour, postraiter soit const
| (force) | 1=postraiter absolument, 0=postraiter si c'est necessaire. |
Reimplemented from Probleme_U.
Definition at line 139 of file Couplage_U.cpp.
|
overridevirtual |
Returns the present time.
This value may change only at the call of validateTimeStep. A surcharger
| WrongContext |
Reimplemented from Probleme_U.
Definition at line 43 of file Couplage_U.cpp.
|
inline |
Definition at line 138 of file Couplage_U.h.
|
inline |
Definition at line 133 of file Couplage_U.h.
|
inline |
Definition at line 122 of file Couplage_U.h.
|
inline |
Definition at line 127 of file Couplage_U.h.
|
overridevirtual |
Reset the current time of the Problem to a given value.
Particularly useful for the initialization of complex transients: the starting point of the transient of interest is computed first, the time is reset to 0, and then the actual transient of interest starts with proper initial conditions, and global time 0.
| [in] | time | the new current time. |
| ICoCo::WrongContext | exception if called before initialize() or after terminate(). |
| ICoCo::WrongContext | exception if called inside the TIME_STEP_DEFINED context (see Problem documentation) |
Reimplemented from Probleme_U.
Definition at line 96 of file Couplage_U.cpp.
|
overridevirtual |
Sauvegarder l'etat du probleme sur disque.
Reimplemented from Probleme_U.
Reimplemented in Probleme_Couple.
Definition at line 163 of file Couplage_U.cpp.
|
overridevirtual |
Tells to the Problem that stationary is reached or not.
Reimplemented from Probleme_U.
Definition at line 84 of file Couplage_U.cpp.
|
inline |
Definition at line 107 of file Couplage_U.h.
|
overridevirtual |
This method is called once at the end, after any other one.
It frees the memory and saves anything that needs to be saved.
| WrongContext |
Reimplemented from Probleme_U.
Definition at line 37 of file Couplage_U.cpp.
|
overridevirtual |
ATTENTION :
Rentre ici tout ce qui ne correspond pas a l'API normale de Problem.
Actuellement on y met a jour les CLs et les termes sources, sachant que certains vont chercher eux-memes des informations dans les problemes voisins...
Programme de travail : tout ce qui est dans cette methode doit etre rendu independant de l'exterieur, et peut du coup rejoindre initTimeStep. Le reste passe dans l'interface d'echange de champs. Ce travail sera fini quand updateGivenFields sera vide et supprime !
Reimplemented from Probleme_U.
Reimplemented in Probleme_Couple.
Definition at line 169 of file Couplage_U.cpp.
|
overridevirtual |
Validates the calculated unknown by moving the present time at the end of the time step.
This method is allowed to free past values of the unknown and given fields.
| WrongContext |
Reimplemented from Probleme_U.
Definition at line 58 of file Couplage_U.cpp.