|
TrioCFD 1.9.8
TrioCFD documentation
|
#include <Assembleur_P_VDF.h>
Public Member Functions | |
| void | associer_domaine_dis_base (const Domaine_dis_base &) override |
| void | associer_domaine_cl_dis_base (const Domaine_Cl_dis_base &) override |
| const Domaine_dis_base & | domaine_dis_base () const override |
| const Domaine_Cl_dis_base & | domaine_Cl_dis_base () const override |
| int | assembler (Matrice &) override |
| Assemblage de la matrice de pression M telle que M*P = div(porosite * grad (P)). | |
| int | assembler_mat (Matrice &, const DoubleVect &, int incr_pression, int resoudre_en_u) override |
| int | assembler_rho_variable (Matrice &, const Champ_Don_base &rho) override |
| Assemblage de la matrice de pression M telle que M*P = div(porosite/rho * grad (P)). | |
| int | assembler_QC (const DoubleTab &, Matrice &) override |
| Assemble la matrice de pression pour un fluide quasi compressible. | |
| int | modifier_secmem (DoubleTab &) override |
| Modification du second membre pour appliquer les conditions aux limites. | |
| int | modifier_solution (DoubleTab &) override |
| void | completer (const Equation_base &) override |
| void | dimensionner_continuite (matrices_t matrices, int aux_only=0) const override |
| void | assembler_continuite (matrices_t matrices, DoubleTab &secmem, int aux_only=0) const override |
| DoubleTab | norme_continuite () const override |
| Public Member Functions inherited from Assembleur_base | |
| int | set_resoudre_increment_pression (int flag) |
| Definit la valeur du drapeau resoudre_increment_pression_. | |
| int | get_resoudre_increment_pression () const |
| Renvoie la valeur du drapeau resoudre_increment_pression_ (0 ou 1) Renvoie -1 si le drapeau n'a pas ete initialise. | |
| int | set_resoudre_en_u (int flag) |
| Definit la valeur du drapeau resoudre_en_u__. | |
| int | get_resoudre_en_u () const |
| Renvoie la valeur du drapeau resoudre_en_u_ (0 ou 1) Renvoie -1 si le drapeau n'a pas ete initialise. | |
| virtual void | modifier_secmem_pour_incr_p (const DoubleTab &press, const double fac, DoubleTab &incr) const |
| virtual void | corriger_vitesses (const DoubleTab &dP, DoubleTab &dv) const |
| 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 const Nom & | le_nom () const |
| Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation. | |
| virtual void | nommer (const Nom &) |
| Donne un nom a l'Objet_U Methode virtuelle a surcharger. | |
| 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 () |
Protected Member Functions | |
| int | construire (Matrice &la_matrice) |
| Determine les elements non nuls de la matrice et prepare le stockage. | |
| int | remplir (Matrice &la_matrice, const DoubleVect &volumes_entrelaces, const Champ_Don_base *rho_ptr) |
| Calcul des coefficients de la matrice de pression avec un champ de rho. | |
| void | modifier_secmem_pression_imposee (const Neumann_sortie_libre &cond_lim, const Front_VF &frontiere_vf, DoubleTab &secmem) |
| Modification du second membre du solveur en pression pour une condition "Neumann_sortie_libre". | |
| void | modifier_secmem_vitesse_imposee (const Entree_fluide_vitesse_imposee &cond_lim, const Front_VF &frontiere_vf, DoubleTab &secmem) |
| Modification du second membre du systeme en pression pour une condition aux limites de vitesse imposee. | |
| int | liste_faces_periodiques (ArrOfInt &faces) |
| Remplit le tableau faces avec la liste des indices des faces periodiques dans le tableau faces_voisins. | |
| OBS_PTR (Domaine_VDF) le_dom_VDF | |
| OBS_PTR (Domaine_Cl_VDF) le_dom_Cl_VDF | |
| 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 | |
| ArrOfDouble | les_coeff_pression |
| int | has_P_ref |
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 |
Definition at line 28 of file Assembleur_P_VDF.h.
|
overridevirtual |
Assemblage de la matrice de pression M telle que M*P = div(porosite * grad (P)).
et calcul des coefficients pour modifier_secmem.
Implements Assembleur_base.
Reimplemented in AssembleurPVDF_PF.
Definition at line 671 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Reimplemented from Assembleur_base.
Definition at line 782 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Reimplemented from Assembleur_base.
Definition at line 650 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Assemble la matrice de pression pour un fluide quasi compressible.
La matrice M est telle que M*P = div( porosite * grad(P) ). Le drapeau resoudre_increment_pression est mis a zero s'il n'a pas encore ete assigne.
| (DoubleTab& | tab_rho) mass volumique |
Reimplemented from Assembleur_base.
Reimplemented in AssembleurPVDF_PF.
Definition at line 727 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Assemblage de la matrice de pression M telle que M*P = div(porosite/rho * grad (P)).
et calcul des coefficients pour modifier_secmem.
| (matrice) | La matrice a assembler. Contrainte: Soit la matrice n'est pas encore typee (alors on la "construit"), soit c'est la meme que lors de l'appel precedent. |
| (rho) |
Reimplemented from Assembleur_base.
Reimplemented in AssembleurPVDF_PF.
Definition at line 693 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Implements Assembleur_base.
Reimplemented in AssembleurPVDF_PF.
Definition at line 821 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Implements Assembleur_base.
Reimplemented in AssembleurPVDF_PF.
Definition at line 816 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Implements Assembleur_base.
Reimplemented in AssembleurPVDF_PF.
Definition at line 826 of file Assembleur_P_VDF.cpp.
|
protected |
Determine les elements non nuls de la matrice et prepare le stockage.
Matrice creuse de taille nb_elements (lignes) * nb_elem_tot (colonnes) Codee comme une matrice bloc composee de deux matrices morse:
Definition at line 106 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Reimplemented from Assembleur_base.
Definition at line 771 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Implements Assembleur_base.
Reimplemented in AssembleurPVDF_PF.
Definition at line 811 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Implements Assembleur_base.
Reimplemented in AssembleurPVDF_PF.
Definition at line 806 of file Assembleur_P_VDF.cpp.
|
protected |
Remplit le tableau faces avec la liste des indices des faces periodiques dans le tableau faces_voisins.
Chaque face periodique figure deux fois dans faces_voisins (a chaque face correspond la face opposee). On ne met dans le tableau faces que celle des deux qui a l'indice le + petit dans la liste des faces de chaque bord periodique. Valeur de retour: nombre de faces periodiques (egal a la taille du tableau faces).
Definition at line 57 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Modification du second membre pour appliquer les conditions aux limites.
Les conditions prises en charge sont Neumann_sortie_libre, Entree_fluide_vitesse_imposee, Dirichlet_paroi_defilante (rien a faire), Dirichlet_paroi_fixe (rien a faire), Symetrie (rien a faire)
Implements Assembleur_base.
Reimplemented in AssembleurPVDF_PF.
Definition at line 478 of file Assembleur_P_VDF.cpp.
|
protected |
Modification du second membre du solveur en pression pour une condition "Neumann_sortie_libre".
Calcul en "increment de pression" : ajouter l'increment de pression, c'est a dire zero (c.l. instationnaire non supportee) Calcul en "pression" : Ajout du terme Pimpose * surface / volume_entrelace au second membre dans la discretisation de la pression au bord (entre un element elem0 et un element fictif exterieur a pression imposee) : grad P = (P(elem0) - Pimpose) * surface / volume_entrelace
Definition at line 541 of file Assembleur_P_VDF.cpp.
|
protected |
Modification du second membre du systeme en pression pour une condition aux limites de vitesse imposee.
Si on resout en increment de pression, ... sinon rien a faire.
Definition at line 585 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Implements Assembleur_base.
Reimplemented in AssembleurPVDF_PF.
Definition at line 631 of file Assembleur_P_VDF.cpp.
|
overridevirtual |
Reimplemented from Assembleur_base.
Definition at line 798 of file Assembleur_P_VDF.cpp.
|
protected |
|
protected |
|
protected |
Calcul des coefficients de la matrice de pression avec un champ de rho.
Si rho_ptr == 0, on calcule la matrice -div( porosite * grad P ), sinon on calcule -div( porosite/rho grad P ) et *rho_ptr doit etre un Champ_Fonc_Face_VDF.
Definition at line 281 of file Assembleur_P_VDF.cpp.
|
protected |
Definition at line 60 of file Assembleur_P_VDF.h.
|
protected |
Definition at line 57 of file Assembleur_P_VDF.h.