16#include <Modele_Shih_Zhu_Lumley_VDF.h>
17#include <Domaine_VDF.h>
18#include <Domaine_Cl_VDF.h>
21#include <Dirichlet_homogene.h>
22#include <Dirichlet_paroi_defilante.h>
23#include <Echange_externe_impose.h>
24#include <Periodique.h>
27#include <Neumann_homogene.h>
28#include <Champ_Face_VDF.h>
29#include <Champ_Uniforme.h>
52 param.lire_avec_accolades_depuis(is);
87 for (
int elem=0; elem<
nelem_; elem++)
94 double Sij = 0.5*( gij(elem,i,j,0) + gij(elem,j,i,0) ) ;
98 S_( elem ) = sqrt(2.*somme2);
106#ifdef __INTEL_COMPILER
109 for (
int elem=0; elem<
nelem_; elem++)
113 if (K_Eps(elem,1) <= EPS_MIN)
114 eta =
S_(elem) * K_Eps(elem,0)/BR_EPS;
116 eta =
S_(elem) * K_Eps(elem,0)/K_Eps(elem,1);
118 C1_[elem] = std::max( 0.43 , eta / ( 5. + eta ) );
127#ifdef __INTEL_COMPILER
130 for (
int elem=0; elem<
nelem_; elem++)
134 if (Eps(elem) <= EPS_MIN)
135 eta =
S_(elem) * K(elem)/BR_EPS;
137 eta =
S_(elem) * K(elem)/Eps(elem);
139 C1_[elem] = std::max( 0.43 , eta / ( 5. + eta ) );
155 DoubleTab U_etoile(
nelem_);
158 for (
int elem=0; elem<
nelem_; elem++)
167 double Sij = 0.5*( gij(elem,i,j,0) + gij(elem,j,i,0) ) ;
168 double Rij = 0.5*( gij(elem,i,j,0) - gij(elem,j,i,0) ) ;
170 somme += Sij*Sij+Rij*Rij;
175 double Sjk = 0.5*( gij(elem,j,k,0) + gij(elem,k,j,0) ) ;
176 double Ski = 0.5*( gij(elem,k,i,0) + gij(elem,i,k,0) ) ;
178 somme3 += Sij*Sjk*Ski;
182 U_etoile( elem ) = sqrt(somme);
183 double S_tilde = sqrt(somme2);
184 S_( elem ) = sqrt(2.*somme2);
185 double val_cosinus = sqrt(6.) * somme3 / ( S_tilde * S_tilde * S_tilde +1.e-20 );
187 if ( val_cosinus > 1. )
191 else if ( val_cosinus < -1. )
196 As( elem ) = sqrt(6.) * cos( (1./3.) * acos( val_cosinus ) );
204 Cmu_[elem] = 1./(
A0_+As(elem)*U_etoile(elem)*K_Eps(elem,0)/( K_Eps(elem,1) + BR_EPS ));
220 DoubleTab U_etoile(
nelem_);
223 for (
int elem=0; elem<
nelem_; elem++)
232 double Sij = 0.5*( gij(elem,i,j,0) + gij(elem,j,i,0) ) ;
233 double Rij = 0.5*( gij(elem,i,j,0) - gij(elem,j,i,0) ) ;
235 somme += Sij*Sij+Rij*Rij;
240 double Sjk = 0.5*( gij(elem,j,k,0) + gij(elem,k,j,0) ) ;
241 double Ski = 0.5*( gij(elem,k,i,0) + gij(elem,i,k,0) ) ;
243 somme3 += Sij*Sjk*Ski;
247 U_etoile( elem ) = sqrt(somme);
248 double S_tilde = sqrt(somme2);
249 S_( elem ) = sqrt(2.*somme2);
250 double val_cosinus = sqrt(6.) * somme3 / ( S_tilde * S_tilde * S_tilde +1.e-20 );
252 if ( val_cosinus > 1. )
256 else if ( val_cosinus < -1. )
261 As( elem ) = sqrt(6.) * cos( (1./3.) * acos( val_cosinus ) );
269 Cmu_[elem] = 1./(
A0_+As(elem)*U_etoile(elem)*K(elem)/( Eps(elem) + BR_EPS ));
293 Calcul_C1(domaine_dis,domaine_Cl_dis,vitesse,K_Eps,EPS_MIN);
297 const DoubleTab& visco_tab,
const DoubleTab& visco_turb,
const DoubleTab& tab_paroi,
const int idt)
301 Calcul_C1(domaine_dis,domaine_Cl_dis,vitesse,K_Eps,EPS_MIN);
308 Calcul_C1_BiK(domaine_dis,domaine_Cl_dis,vitesse,K,Eps,EPS_MIN);
312 const DoubleTab& visco_tab,
const DoubleTab& visco_turb,
const DoubleTab& tab_paroi,
const int idt)
316 Calcul_C1_BiK(domaine_dis,domaine_Cl_dis,vitesse,K,Eps,EPS_MIN);
class Champ_Face_VDF Cette classe sert a representer un champ vectoriel dont on ne calcule
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Class defining operators and methods for all reading operation in an input flow (file,...
void Calcul_Cmu_et_S(const Domaine_dis_base &domaine_dis, const Domaine_Cl_dis_base &domaine_Cl_dis, const DoubleTab &vitesse, const DoubleTab &K_Eps, const double EPS_MIN) override
void Calcul_C1_BiK(const Domaine_dis_base &domaine_dis, const Domaine_Cl_dis_base &domaine_Cl_dis, const DoubleTab &vitesse, const DoubleTab &K, const DoubleTab &Eps, const double EPS_MIN) override
void Calcul_C1(const Domaine_dis_base &domaine_dis, const Domaine_Cl_dis_base &domaine_Cl_dis, const DoubleTab &vitesse, const DoubleTab &K_Eps, const double EPS_MIN) override
void Contributions_Sources_Paroi(const Domaine_dis_base &domaine_dis, const Domaine_Cl_dis_base &domaine_Cl_dis, const DoubleTab &vitesse, const DoubleTab &K_Eps, const double EPS_MIN, const DoubleTab &visco_tab, const DoubleTab &visco_turb, const DoubleTab &tab_paroi, const int idt) override
void Contributions_Sources_Paroi_BiK(const Domaine_dis_base &domaine_dis, const Domaine_Cl_dis_base &domaine_Cl_dis, const DoubleTab &vitesse, const DoubleTab &K, const DoubleTab &Eps, const double EPS_MIN, const DoubleTab &visco_tab, const DoubleTab &visco_turb, const DoubleTab &tab_paroi, const int idt) override
virtual void set_param(Param ¶m) const override
void Calcul_S(const Domaine_dis_base &domaine_dis, const Domaine_Cl_dis_base &domaine_Cl_dis, const DoubleTab &vitesse) override
void Contributions_Sources_BiK(const Domaine_dis_base &domaine_dis, const Domaine_Cl_dis_base &domaine_Cl_dis, const DoubleTab &vitesse, const DoubleTab &K, const DoubleTab &Eps, const double EPS_MIN) override
void Initialisation(const Domaine_dis_base &domaine_dis)
void associer(const Domaine_dis_base &, const Domaine_Cl_dis_base &) override
void mettre_a_jour(double) override
void Calcul_Cmu_et_S_BiK(const Domaine_dis_base &domaine_dis, const Domaine_Cl_dis_base &domaine_Cl_dis, const DoubleTab &vitesse, const DoubleTab &K, const DoubleTab &Eps, const double EPS_MIN) override
void Contributions_Sources(const Domaine_dis_base &domaine_dis, const Domaine_Cl_dis_base &domaine_Cl_dis, const DoubleTab &vitesse, const DoubleTab &K_Eps, const double EPS_MIN) override
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.
Helper class to factorize the readOn method of Objet_U classes.
void ajouter(const char *keyword, const int *value, Param::Nature nat=Param::OPTIONAL)
Register an integer parameter.
Classe de base des flux de sortie.