16#include <Production_echelle_temp_taux_diss_turb_VDF.h>
18#include <Dissipation_type_helpers.h>
19#include <Navier_Stokes_std.h>
20#include <Domaine_Cl_VDF.h>
21#include <Champ_Face_VDF.h>
22#include <Pb_Multiphase.h>
23#include <Domaine_VF.h>
39 const DoubleVect& ve = domaine.volumes();
41 const int ne = domaine.nb_elem();
46 const std::string Type_diss = get_dissipation_type(
equation());
49 for (
int e = 0; e < ne; e++)
50 for (
int n = 0; n < N; n++)
52 double grad_grad = 0.;
53 for (
int d_U = 0; d_U < D; d_U++)
54 for (
int d_X = 0; d_X < D; d_X++)
55 grad_grad += ( tab_grad( e, N * ( D*d_U+d_X ) + n) + tab_grad( e, N * ( D*d_X+d_U ) + n) ) * tab_grad( e, N * ( D*d_U+d_X ) + n) ;
57 const double fac = std::max(grad_grad, 0.) * pe(e) * ve(e) *
alpha_omega_ ;
59 if (Type_diss ==
"tau")
61 secmem(e, n) -= fac * (2*tab_diss(e, n) - tab_pdiss(e, n)) * tab_pdiss(e, n) * alp(e,n) ;
62 for (
auto &&i_m : matrices)
64 if (i_m.first ==
"tau")
65 (*i_m.second)(N*e +n, N*e + n) += fac * 2 * tab_pdiss(e, n) * alp(e, n);
66 if (i_m.first ==
"alpha")
67 (*i_m.second)(N*e + n, Na*e + n) += fac * (2*tab_diss(e, n) - tab_pdiss(e, n)) * tab_pdiss(e, n);
70 else if (Type_diss ==
"omega")
72 secmem(e, n) += fac * alp(e,n);
73 for (
auto &&i_m : matrices)
74 if (i_m.first ==
"alpha")
75 (*i_m.second)(N*e + n, Na*e + n) += fac ;
DoubleTab & passe(int i=1) override
Renvoie les valeurs du champs a l'instant t-i.
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
virtual DoubleTab & valeurs()=0
virtual DoubleTab & passe(int i=1)
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Milieu_base & milieu() const =0
virtual const Champ_Inc_base & inconnue() const =0
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
DoubleVect & porosite_elem()
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
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.
classe Pb_Multiphase Cette classe represente un probleme de thermohydraulique multiphase de type "3*N...
const Champ_base & get_champ(const Motcle &nom) const override
Classe Production_echelle_temp_taux_diss_turb_VDF.
void ajouter_blocs(matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl={}) const override
Classe de base des flux de sortie.
Classe Source_Production_echelle_temp_taux_diss_turb Classe de base pour un operateur de production d...