|
TrioCFD 1.9.9_beta
TrioCFD documentation
|
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 |
| Asks the problem to post-process its fields, probes, etc. | |
| int | limpr () const override |
| Should we print the execution statistics now? | |
| int | lsauv () const override |
| Should we save the problem state to disk now? | |
| void | sauver () const override |
| Save the problem state to disk. | |
| bool | updateGivenFields () override |
| WARNING: | |
| 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 () |
| For possible re-implementation and unified call from 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 () |
| This method is a sort of main() for the Problem. It can be used if the problem is not coupled with any other. | |
| 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 |
| Assigns a name to the Objet_U. Virtual method to override. | |
| const Nom & | le_nom () const override |
| Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation. | |
| Public Member Functions inherited from Objet_U | |
| ~Objet_U () override | |
| Destructor. Removes the object from the list of objects registered in "memory". | |
| int | numero () const |
| Returns the index of the object in Memoire::data. | |
| virtual int | duplique () const =0 |
| virtual Sortie & | printOn (Sortie &) const |
| Writes the object to an output stream. Virtual method to override. | |
| virtual Entree & | readOn (Entree &) |
| Reads an Objet_U from an input stream. Virtual method to override. | |
| virtual unsigned | taille_memoire () const =0 |
| virtual int | est_egal_a (const Objet_U &) const |
| Returns 1 if x and *this are the same instance (same memory address). | |
| virtual int | reprendre (Entree &) |
| Restores an Objet_U from an input stream. Virtual method to override. | |
| virtual int | sauvegarder (Sortie &) const |
| Saves an Objet_U to an output stream. Virtual method to override. | |
| int | get_object_id () const |
| Returns the unique identifier of the object (object_id_). | |
| virtual const Type_info * | get_info () const |
| Returns type information for the Objet_U. | |
| const Nom & | que_suis_je () const |
| Returns the string identifying the class. | |
| const char * | le_type () const |
| Returns the type name of the Objet_U. | |
| virtual int | change_num (const int *const) |
| Changes the internal number of the Objet_U. | |
| virtual int | lire_motcle_non_standard (const Motcle &motlu, Entree &is) |
| Reads non-simple-type parameters of an Objet_U from an input stream. | |
| virtual int | associer_ (Objet_U &) |
| Associates the Objet_U with another Objet_U. Virtual method to override. | |
| 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 () |
| Returns a constant reference to the case name. This method is static. | |
| static Nom & | get_set_nom_du_cas () |
| Returns a non-constant reference to the case name (to allow modification). This method is static. | |
| static const Type_info * | info () |
| Returns type information for the Objet_U (static version). | |
| static const Objet_U & | self_cast (const Objet_U &) |
| Method added for casting in Python. | |
| static Objet_U & | self_cast (Objet_U &) |
| Static Public Member Functions inherited from Process | |
| static int | me () |
| Returns the rank of the local processor in the current communication group. See Comm_Group::rank() and PE_Groups::current_group(). | |
| static int | nproc () |
| Returns the number of processors in the current group. See Comm_Group::nproc() and PE_Groups::current_group(). | |
| static bool | is_parallel () |
| static void | exit (int exit_code=-1) |
| Exit routine for TRUST within a Kokkos region. | |
| static double | mp_sum (double) |
| Computes the sum of x over all processors in the current group. | |
| static float | mp_sum (float) |
| static trustIdType | mp_sum (trustIdType) |
| Computes the sum of x over all processors in the current group. | |
| static double | mp_max (double) |
| static double | mp_min (double) |
| static int | mp_max (int) |
| Returns the maximum value of x across all processors in the current group. | |
| static int | mp_min (int) |
| Returns the minimum value of x across all processors in the current group. | |
| static double | mp_sum_as_double (int v) |
| static trustIdType | mppartial_sum (trustIdType i) |
| Computes the partial sum of x over processors 0 to me()-1 (returns 0 on processor 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) |
| Computes the logical AND of b across all processors in the current group. | |
| static bool | mp_or (bool) |
| static int | check_int_overflow (trustIdType) |
| static int | je_suis_maitre () |
| Returns 1 if on the master processor of the current group (i.e. me() == 0), 0 otherwise. | |
| static KOKKOS_INLINE_FUNCTION void | Kokkos_exit (const char *) |
| Exit routine for TRUST within a Kokkos region. | |
| static int | node_master () |
| Returns 1 if on the NUMA node master processor, 0 otherwise. | |
| static void | exit (const Nom &message, int exit_code=-1) |
| static bool | is_sequential () |
| static void | barrier () |
| Synchronizes all processors in the current group (waits until all processors have reached the barrier). | |
| static void | abort () |
| Abort routine for TRUST on a fatal error. | |
| static Sortie & | Journal (int message_level=0) |
| Returns a static Sortie object used as an event journal. | |
| 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 () | |
| Default constructor: assigns a unique identifier to the object (object_id_) and registers the object in "memory" by giving it a num_obj number. | |
| Objet_U (const Objet_U &) | |
| Copy constructor. | |
| const Objet_U & | operator= (const Objet_U &) |
| Assignment operator: does nothing (the number and identifier are preserved). | |
| 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
This class implements Probleme_U in the case of a composite problem coupling several 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 |
Should we print the execution statistics now?
Reimplemented from Probleme_U.
Definition at line 147 of file Couplage_U.cpp.
|
overridevirtual |
Should we save the problem state to disk now?
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 |
Asks the problem to post-process its fields, probes, etc.
In Probleme_U::run(), postraiter() is called at each time step with force=0 and at the beginning and end of the computation with force=1. WEC: it would be good if, one day, postraiter were const.
| (force) | 1=post-process unconditionally, 0=post-process if necessary. |
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 |
Save the problem state to disk.
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 |
WARNING:
Everything that does not fit the normal Problem API goes here.
Currently it updates boundary conditions and source terms, knowing that some of them fetch information from neighboring problems themselves...
Work plan: everything in this method must be made independent of external state, and can then be merged into initTimeStep. The rest moves into the field exchange interface. This work will be done when updateGivenFields is empty and removed!
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.