|
TRUST 1.9.8
HPC thermohydraulic platform
|
classe Probleme_Couple C'est la classe historique de couplage de TRUST. More...
#include <Probleme_Couple.h>
Public Member Functions | |
| bool | initTimeStep (double dt) override |
| This method allocates and initializes the unknown and given fields for the future time step. | |
| double | computeTimeStep (bool &stop) const override |
| Compute the value the Problem would like for the next time step. | |
| bool | solveTimeStep () override |
| pour recodage eventuel et appel unifie en python | |
| bool | iterateTimeStep (bool &converged) override |
| In the case solveTimeStep uses an iterative process, this method executes a single iteration. | |
| bool | updateGivenFields () override |
| ATTENTION : | |
| void | ajouter (Probleme_base &) |
| Ajoute un probleme a la liste des problemes couples. | |
| int | associer_ (Objet_U &) override |
| Surcharge Objet_U::associer_(Objet_U&) Associe un objet au probleme couple, en verifiant le type. | |
| virtual void | associer_sch_tps_base (Schema_Temps_base &) |
| Associe une copie du schema en temps a chaque probleme du Probleme couple. | |
| virtual const Schema_Temps_base & | schema_temps () const |
| Renvoie le schema en temps associe aux problemes couples. | |
| virtual Schema_Temps_base & | schema_temps () |
| Renvoie le schema en temps associe aux problemes couples. | |
| virtual void | discretiser (Discretisation_base &) |
| Associe une discretisation a tous les problemes du probleme couple. | |
| virtual void | mettre_a_jour_modele_rayo (double temps) |
| void | initialize () override |
| This method is called once at the beginning, before any other one of the interface Problem. | |
| void | sauver () const override |
| Sauvegarder l'etat du probleme sur disque. | |
| Public Member Functions inherited from Couplage_U | |
| void | terminate () override |
| This method is called once at the end, after any other one. | |
| double | presentTime () const override |
| Returns the present time. | |
| 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. | |
| 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 ? | |
| 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 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. | |
| const Interprete & | interprete () const |
| Interprete & | interprete () |
| Public Member Functions inherited from Process | |
| virtual | ~Process () |
Protected Member Functions | |
| VECT (OWN_PTR(Schema_Temps_base)) sch_clones | |
| 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 | |
| ArrOfInt | groupes |
| Protected Attributes inherited from Probleme_U | |
| Nom | nom_ |
| ScalarRegister | reg_ |
| std::map< std::string, std::string > | str_params_ |
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 |
classe Probleme_Couple C'est la classe historique de couplage de TRUST.
Il s'agit d'un Couplage_U particulier. Le Probleme_Couple ne couple que des Probleme_base, tous associes au meme schema en temps. Il possede son propre mecanisme d'echange de champs par "raccords". Les problemes sont groupes. Chaque groupe fait un iteration, puis les nouveaux champs sont disponibles pour les groupes suivants. A l'interieur d'un groupe, ce sont les anciens champs qui sont echanges.
Definition at line 50 of file Probleme_Couple.h.
| void Probleme_Couple::ajouter | ( | Probleme_base & | pb | ) |
Ajoute un probleme a la liste des problemes couples.
Met en place la reference du probleme vers this. Verifie que l'ordre conduction, thHyd est respecte.
| (Probleme_base& | pb) le probleme a ajouter au couplage |
Definition at line 324 of file Probleme_Couple.cpp.
|
overridevirtual |
Surcharge Objet_U::associer_(Objet_U&) Associe un objet au probleme couple, en verifiant le type.
dynamiquement. L'objet peut-etre:
| (Objet_U& | ob) l'objet a associer |
| l'objet | n'est pas d'un type attendu |
Reimplemented from Objet_U.
Definition at line 371 of file Probleme_Couple.cpp.
|
virtual |
Associe une copie du schema en temps a chaque probleme du Probleme couple.
| (Schema_Temps_base& | sch) le schema en temps a associer |
Definition at line 392 of file Probleme_Couple.cpp.
|
overridevirtual |
Compute the value the Problem would like for the next time step.
This value will not necessarily be used at the call of initTimeStep, but it is a hint. This method may use all the internal state of the Problem.
| (stop) | Does the Problem want to stop ? |
| WrongContext |
Reimplemented from Probleme_U.
Definition at line 68 of file Probleme_Couple.cpp.
|
virtual |
Associe une discretisation a tous les problemes du probleme couple.
Appelle Probleme_Base::discretiser(const Discretisation_base&) sur chacun des problemes du probleme couple. voir Probleme_Base::discretiser(const Discretisation_base&)
| (Discretisation_base& | dis) une discretisation pour tous les problemes |
Definition at line 445 of file Probleme_Couple.cpp.
|
overridevirtual |
This method is called once at the beginning, before any other one of the interface Problem.
| WrongContext |
Reimplemented from Couplage_U.
Definition at line 349 of file Probleme_Couple.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 Couplage_U.
Definition at line 55 of file Probleme_Couple.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 Couplage_U.
Definition at line 202 of file Probleme_Couple.cpp.
|
inlinevirtual |
Definition at line 100 of file Probleme_Couple.h.
|
overridevirtual |
Sauvegarder l'etat du probleme sur disque.
Reimplemented from Couplage_U.
Definition at line 456 of file Probleme_Couple.cpp.
|
virtual |
Renvoie le schema en temps associe aux problemes couples.
Definition at line 426 of file Probleme_Couple.cpp.
|
virtual |
Renvoie le schema en temps associe aux problemes couples.
(version const)
Definition at line 411 of file Probleme_Couple.cpp.
|
overridevirtual |
pour recodage eventuel et appel unifie en python
Reimplemented from Probleme_U.
Reimplemented in Probleme_Couple_Point_Fixe.
Definition at line 85 of file Probleme_Couple.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 Couplage_U.
Definition at line 310 of file Probleme_Couple.cpp.
|
protected |
|
protected |
Definition at line 94 of file Probleme_Couple.h.