16#include <Fluide_Quasi_Compressible.h>
17#include <Loi_Etat_GR_base.h>
18#include <Champ_Uniforme.h>
53 le_fluide->inco_chaleur().
nommer(
"enthalpie");
55 const DoubleTab& tab_H = le_fluide->inco_chaleur().valeurs();
56 const DoubleTab& tab_rho = le_fluide->masse_volumique().valeurs();
58 DoubleTab& tab_T = temperature_->valeurs();
60 double Pth = le_fluide->pression_th();
67 tab_Cp.ref(le_fluide->capacite_calorifique().valeurs());
84 DoubleTab& tab_TH = le_fluide->inco_chaleur().valeurs();
85 double Pth = le_fluide->pression_th();
86 DoubleTab& tab_rho = le_fluide->masse_volumique().valeurs();
90 if (le_fluide->inco_chaleur().le_nom() ==
"enthalpie")
92 for (som=0 ; som<n ; som++)
97 for (som=0 ; som<n ; som++)
103 Cerr<<
"FIN Loi_Etat_GR_base::initialiser_H Pth = "<<Pth<<
" H = "<<tab_TH(0,0)<<finl;
113 const DoubleTab& tab_H = le_fluide->inco_chaleur().valeurs();
115 DoubleTab& tab_T = temperature_->valeurs();
116 double Pth = le_fluide->pression_th();
117 for (i=0 ; i<n ; i++)
131 if (
R==-1) res = 1./(
DT_DH(P,h));
142 double Pth = le_fluide->pression_th();
143 const DoubleTab& tab_h = le_fluide->inco_chaleur().valeurs();
153 const DoubleTab& tab_mu = mu.
valeurs();
155 DoubleTab& tab_lambda = lambda.
valeurs();
157 int i, n=tab_lambda.
size();
162 for (i=0 ; i<n ; i++) tab_lambda(i,0) = tab_mu(0,0) *
tab_Cp(i) /
Pr_;
166 for (i=0 ; i<n ; i++) tab_lambda(i,0) = tab_mu(i,0) *
tab_Cp(i) /
Pr_;
174 Cerr<<
"Loi_Etat_GR_base::De_DP non accede normalement"<<finl;
181 Cerr<<
"Loi_Etat_GR_base::De_DP non accede normalement"<<finl;
191 double P = le_fluide->pression_th();
194 while (std::fabs(acc)>1e-8 && i<1000)
200 if (std::fabs(acc)>1e-8)
202 Cerr<<
"Probleme dans l'inversion de la pression : nb_iter="<<i<<finl;
203 Cerr<<
" Pth="<<P<<
" H="<<H<<
" rho="<<rho<<finl;
classe Champ_Don_base classe de base des Champs donnes (non calcules)
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
Class defining operators and methods for all reading operation in an input flow (file,...
classe Loi_Etat_GR_base Cette classe represente la loi d'etat base pour les gaz reels.
void calculer_Cp() override
Calcule le Cp avec le polynome PolyCp_.
void initialiser_inco_ch() override
Initialise l'enthalpie.
double De_DT(double, double) const override
virtual double calculer_temperature(double, double)=0
double De_DP(double, double) const override
void calculer_lambda() override
Calcule la conductivite /Cp : equivlent a k*dT/dh pour utiliser l'enthalpie dans l'operatur de diffus...
void calculer_masse_volumique() override
Recalcule la masse volumique.
double calculer_H(double, double) const override=0
Cas gaz parfait : ne fait rien Cas gaz Reel : doit recalculer l'enthalpie a partir de la pression et ...
double inverser_Pth(double, double) override
Calcule la pression avec la temperature et la masse volumique.
double Cp_calc(double, double) const
Calcule le Cp en fonction des grandeurs physiques P, T, rho Cp = dh/dT = de/dT - 1/rho^2*drho/dT.
void remplir_T() override
Remplit le tableau de la temperature : T=temp+273.
const Nom type_fluide() const override
Renvoie le type de fluide associe.
void initialiser() override
Initialise la loi d'etat : calcul Pth.
virtual double DT_DH(double, double) const =0
double Drho_DP(double, double) const override=0
classe Loi_Etat_base Cette classe est la base de la hierarchie des lois d'etat.
virtual void calculer_masse_volumique()
Recalcule la masse volumique.
class Nom Une chaine de caractere pour nommer les objets de TRUST
virtual void nommer(const Nom &)
Donne un nom a l'Objet_U Methode virtuelle a surcharger.
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 abort()
Routine de sortie de Trio-U sur une erreur abort().
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const