16#include <Loi_Etat_Multi_GP_base.h>
17#include <Fluide_Dilatable_base.h>
18#include <Champ_Fonc_Tabule.h>
19#include <Champ_Uniforme.h>
20#include <Champ_Inc_base.h>
21#include <Domaine_VF.h>
40 const int num = liste_Y(0)->valeurs().size();
66 DoubleTab& tab_Cp = Cp.
valeurs();
78 const DoubleTab& tab_mu = mu.
valeurs();
80 DoubleTab& tab_lambda = lambda.
valeurs();
81 const DoubleTab& tab_Cp = le_fluide->capacite_calorifique().valeurs();
82 int i, n = tab_lambda.
size();
94 double mu0 = tab_mu(0,0);
95 for (i=0 ; i<n ; i++) tab_lambda(i,0) = mu0 *
Cp_ /
Pr_;
98 for (i=0 ; i<n ; i++) tab_lambda(i,0) = tab_mu(i,0) * tab_Cp(i,0) /
Pr_;
110 const DoubleTab& tab_lambda = lambda.
valeurs();
112 DoubleTab& tab_alpha = le_fluide->diffusivite().
valeurs();
113 const DoubleTab& tab_rho = le_fluide->masse_volumique().valeurs();
114 const DoubleTab& tab_Cp = le_fluide->capacite_calorifique().valeurs();
115 int i, n = tab_alpha.
size(), isVDF = 0;
116 if (alpha.
que_suis_je()==
"Champ_Fonc_P0_VDF") isVDF = 1;
122 double lambda0 = tab_lambda(0,0);
123 for (i=0 ; i<n ; i++) tab_alpha(i,0) = lambda0 / ( tab_rho(i,0) * tab_Cp(i,0) );
127 for (i=0 ; i<n ; i++) tab_alpha(i,0) = tab_lambda(i,0) / ( tab_rho(i,0) * tab_Cp(i,0) );
132 const IntTab& elem_faces=ref_cast(
Domaine_VF,le_fluide->vitesse().domaine_dis_base()).elem_faces();
133 double rhoelem, Cpelem;
138 double lambda0 = tab_lambda(0,0);
139 for (i=0 ; i<n ; i++)
143 for (face=0; face<nfe; face++)
145 rhoelem += tab_rho(elem_faces(i,face),0);
146 Cpelem += tab_Cp(elem_faces(i,face),0);
150 tab_alpha(i,0) = lambda0 / ( rhoelem * Cpelem );
155 for (i=0 ; i<n ; i++)
159 for (face=0; face<nfe; face++)
161 rhoelem += tab_rho(elem_faces(i,face),0);
162 Cpelem += tab_Cp(elem_faces(i,face),0);
166 tab_alpha(i,0) = tab_lambda(i,0) / ( rhoelem * Cpelem );
176 if (inf_ou_egal(T,0))
178 Cerr << finl <<
"Warning: Temperature T must be defined in Kelvin." << finl;
179 Cerr <<
"Check your data file." << finl;
182 return P / ( r * T );
187 Cerr <<
"You should not call the method Loi_Etat_Multi_GP_base::calculer_masse_volumique(double P, double T) !" << finl;
208 DoubleTab& tab_mu = le_fluide->viscosite_dynamique().
valeurs();
209 const int nb_elem = tab_mu.
size();
212 for (
int elem=0; elem < nb_elem; elem++) tab_mu(elem,0) = mu(elem);
216 const IntTab& elem_faces=ref_cast(
Domaine_VF,le_fluide->vitesse().domaine_dis_base()).elem_faces();
219 for (
int elem=0; elem<nb_elem; elem++)
221 for (
int face = 0; face < nfe; face++) tab_mu(elem,0) += mu(elem_faces(elem, face));
223 tab_mu(elem,0) /= nfe;
classe Champ_Don_base classe de base des Champs donnes (non calcules)
void mettre_a_jour(double temps) override
Mise a jour en temps.
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
Classe Champ_Fonc_Tabule Classe derivee de Champ_Fonc_base qui represente les.
static void verifier(const char *const msg, double)
Class defining operators and methods for all reading operation in an input flow (file,...
classe Loi_Etat_Melange_GP_base Cette classe represente la loi d'etat pour un melange de gaz parfaits...
classe Loi_Etat_Multi_GP_base Cette classe represente la loi d'etat pour un melange de gaz parfaits.
void calculer_masse_volumique() override=0
Recalcule la masse volumique.
virtual void calculer_mu_wilke()=0
void calculer_lambda() override
Calcule la conductivite.
void calculer_mu() override
Calcule la viscosite dynamique.
void calculer_tab_mu(const DoubleTab &mu, int size)
void calculer_Cp() override
Calcule le Cp NE FAIT RIEN : le Cp est constant.
void calculer_masse_molaire()
void initialiser_inco_ch() override
Initialise l'inconnue de l'equation de chaleur : ne fai rien.
virtual void associer_inconnue(const Champ_Inc_base &inconnue)
Associe l inconnue de chaque equation de fraction massique a la loi d'etat.
void calculer_alpha() override
Calcule la diffusivite.
virtual void calculer_tab_Cp(DoubleTab &cp) const =0
virtual void initialiser_inco_ch()
Initialise l'inconnue de l'equation de chaleur : ne fai rien.
OBS_PTR(Fluide_Dilatable_base) le_fluide
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")