16#include <Op_Dift_Multiphase_VDF_Elem.h>
17#include <Op_Dift_Multiphase_VDF_Face.h>
18#include <Pb_Multiphase.h>
61 Cerr <<
"Error in " <<
que_suis_je() <<
": no turbulent momentum diffusion found!" << finl;
68 Cerr <<
"Error in " <<
que_suis_je() <<
": no turbulent viscosity correlation found!" << finl;
81 double dt_stab, coef = -1.e10;
83 const IntTab& elem_faces = domaine_VDF.
elem_faces();
89 double mu_turbulent, mu_physique, nu_physique, alfa;
91 ArrOfInt numfa(2 * dim);
92 for (
int elem = 0; elem < domaine_VDF.
nb_elem(); elem++)
96 for (
int i = 0; i < 2 * dim; i++)
97 numfa[i] = elem_faces(elem, i);
99 for (
int d = 0; d < dim; d++)
101 const double hd = domaine_VDF.
dist_face(numfa[d], numfa[dim + d], d);
102 deltax += 1. / (hd * hd);
109 alfa = (alp ? (*alp)(elem, ncomp) : 1.0);
112 if (alfa != 0.0 ) mu_turbulent = mu_turbulent/alfa;
114 mu_physique = rho(!cR * elem, ncomp) * lambda(!cL * elem, ncomp);
115 nu_physique = diffu(!cD * elem, ncomp);
120 diflo = deltax * (mu_physique + mu_turbulent) * (nu_physique / mu_physique);
122 coef = std::max(coef, diflo);
127 dt_stab = 0.5 / (coef + DMINFLOAT);
virtual DoubleTab & valeurs()=0
virtual DoubleTab & passe(int i=1)
virtual void creer_champ(const Motcle &motlu)=0
virtual void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const =0
classe Convection_Diffusion_std Cette classe est la base des equations modelisant le transport
static void typer_lire_correlation(OWN_PTR(Correlation_base)&, const Probleme_base &, const Nom &, Entree &)
double dist_face(int, int, int k) const
int elem_faces(int i, int j) const
renvoie le numero de le ieme face de la maille num_elem la facon dont ces faces sont numerotees est
const Domaine & domaine() const
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Milieu_base & milieu() const =0
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
virtual const Operateur & operateur(int) const =0
virtual const Champ_base & masse_volumique() const
Renvoie la masse volumique du milieu.
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
Une chaine de caractere (Nom) en majuscules.
Un tableau de chaine de caracteres (VECT(Nom)).
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.
std::enable_if_t< _TYPE_==Type_Operateur::Op_DIFT_MULTIPHASE_FACE, void > set_nut_impl(const DoubleTab &nut)
void associer_pb(const Probleme_base &pb)
std::enable_if_t< _TYPE_==Type_Operateur::Op_DIFT_MULTIPHASE_FACE||_TYPE_==Type_Operateur::Op_DIFT_MULTIPHASE_ELEM, void > associer_corr_impl(const Correlation_base &corr)
const DoubleTab & alpha_() const
void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const override
void completer() override
Associe l'operateur au domaine_dis, le domaine_Cl_dis, et a l'inconnue de son equation.
double calculer_dt_stab() const override
Calcul dt_stab.
void creer_champ(const Motcle &motlu) override
void mettre_a_jour(double) override
DOES NOTHING - to override in derived classes.
void associer_proto(const Probleme_base &, Champs_compris &)
void ajout_champs_proto_elem()
void mettre_a_jour_proto_elem(const double temps)
void creer_champ_proto_elem(const Motcle &motlu)
void completer_proto_elem(const Operateur_Diff_base &op)
DoubleTab nu_ou_lambda_turb_
void get_noms_champs_postraitables_proto(const Nom &, Noms &nom, Option opt) const
void call_compute_diff_turb(const Convection_Diffusion_std &eq, const Viscosite_turbulente_base &visc_turb)
void completer_Op_Dift_VDF_base()
virtual const Champ_base & diffusivite_pour_pas_de_temps() const
Renvoie le champ_don correspondant a la vraie diffusivite du milieu qui sert pour le calcul du pas de...
classe Operateur_base Classe est la base de la hierarchie des objets representant un
Champs_compris champs_compris_
virtual void mettre_a_jour(double temps)
DOES NOTHING - to override in derived classes.
virtual Operateur_base & l_op_base()=0
classe Pb_Multiphase Cette classe represente un probleme de thermohydraulique multiphase de type "3*N...
virtual const Equation_base & equation(int) const =0
static double mp_max(double)
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const
classe Viscosite_turbulente_base correlations de viscosite turbulente decrivant le tenseur de Reynold...