16#include <Loi_Etat_Binaire_GP_base.h>
17#include <Fluide_Dilatable_base.h>
18#include <Champ_Fonc_Tabule.h>
19#include <Champ_Uniforme.h>
43 param.lire_avec_accolades_depuis(is);
59 const DoubleTab& tab_Y1 = le_fluide->inco_chaleur().valeurs();
60 DoubleTab& tab_mu = le_fluide->viscosite_dynamique().valeurs();
62 int i, n=tab_mu.
size();
66 double m2om1 = 1./m1om2;
68 double mu2omu1 = 1./mu1omu2;
71 double a1 = 1. + sqrt(mu1omu2) * pow(mu2omu1,0.25);
72 double a2 = 1. + sqrt(mu2omu1) * pow(mu1omu2,0.25);
75 double b1 = sqrt(8.*(1.+m1om2));
76 double b2 = sqrt(8.*(1.+m2om1));
77 double phi_12 = m1om2*a1*a1/b1;
78 double phi_21 = m2om1*a2*a2/b2;
80 double y1 = tab_Y1(i,0);
83 tab_mu(i,0) = (
mu1_*y1)/(y1+y2*phi_12) + (
mu2_*y2)/(y2+y1*phi_21);
99 Cerr <<
"We should not have a dynamic viscosity of type Champ_Fonc_Tabule !" << finl;
107 Cerr <<
"We should not have a dynamic viscosity of type Champ_Uniforme !" << finl;
131 const Champ_base& rho = le_fluide->masse_volumique();
132 DoubleTab& tab_mu_sur_Sc = mu_sur_Sc.
valeurs();
133 const DoubleTab& tab_rho = rho.
valeurs();
134 const int n=tab_mu_sur_Sc.
size();
140 Cerr <<
"We should not have a density field of type Champ_Uniforme !" << finl;
144 for (
int i=0 ; i<n ; i++) tab_mu_sur_Sc(i,0) = tab_rho(i,0)*
diff_coeff_;
148 Cerr <<
"We should not have a mu_sur_Sc of type Champ_Uniforme !" << finl;
152 double temps_champ = rho.
temps();
170 DoubleTab& tab_nu_sur_Sc = nu_sur_Sc.
valeurs();
171 const int n=tab_nu_sur_Sc.
size();
173 for (
int i=0 ; i<n ; i++) tab_nu_sur_Sc(i,0) =
diff_coeff_;
175 double temps_champ = le_fluide->masse_volumique().temps();
195 return "Melange_Binaire";
211 Cerr <<
"We should not enter in the method Loi_Etat_Binaire_GP_base::inverser_Pth !" << finl;
212 Cerr <<
"This means that you are trying to solve an ODE for pth which is forbidden for this EOS!" << finl;
231 const double rh = PM2/(RT*mix);
classe Champ_Don_base classe de base des Champs donnes (non calcules)
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.
virtual DoubleTab & valeurs()=0
classe Champ_base Cette classe est la base de la hierarchie des champs.
virtual double changer_temps(const double t)
Fixe le temps auquel se situe le champ.
double temps() const
Renvoie le temps du champ.
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_Binaire_GP_base Cette classe represente la loi d'etat pour les melanges binaires.
void calculer_masse_volumique() override=0
Recalcule la masse volumique.
void calculer_lambda() override
Calcule la conductivite.
void calculer_mu_sur_Sc() override
Calcule la viscosite dynamique sur Schmidt.
void calculer_nu_sur_Sc() override
Calcule la viscosite dynamique sur Schmidt.
Loi_Etat_Binaire_GP_base()
void calculer_Cp() override
Calcule le Cp NE FAIT RIEN : le Cp est constant.
const Nom type_fluide() const override
Renvoie le type de fluide associe.
void calculer_mu() override
Calcule la viscosite dynamique.
void calculer_alpha() override
Calcule la diffusivite.
void calculer_mu_wilke()
Calcule la viscosite dynamique de melange (depend des fraction massique) Voir Wilke https://aip.
double inverser_Pth(double, double) override
Calcule la pression avec la temperature et la masse volumique.
classe Loi_Etat_Melange_GP_base Cette classe represente la loi d'etat pour un melange de gaz parfaits...
static constexpr double R_GAS
class Nom Une chaine de caractere pour nommer les objets de TRUST
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().
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")