16#include <Modele_turbulence_hyd_K_Omega.h>
17#include <Navier_Stokes_Turbulent.h>
18#include <Op_Diff_K_Omega_VDF_base.h>
19#include <Fluide_Dilatable_base.h>
20#include <Operateur_base.h>
21#include <Probleme_base.h>
22#include <Champ_P0_VDF.h>
23#include <Perf_counters.h>
34 iter->associer_champ_convecte_ou_inc(
equation().inconnue(),
nullptr);
35 iter->set_name_champ_inco(
equation().inconnue().
le_nom().getString());
36 iter->set_convective_op_pb_type(
false , 0 );
70 Cerr <<
"Bad equation type, a Transport_K_Omega type is needed." << finl;
102 Cerr<<
" erreur dans Op_Diff_K_Omega_VDF_base::associer_diffusivite ... cas non prevu "<<finl;
132 const auto& tab1=matrice.
get_tab1();
135 const IntTab& face_voisins = iter->domaine().face_voisins();
145 int nb_cl=les_cl.size();
146 for (
int num_cl=0; num_cl<nb_cl; num_cl++)
149 const Cond_lim& la_cl = les_cl[num_cl];
151 int nbfaces = la_front_dis.
nb_faces();
153 int nfin = ndeb + nbfaces;
156 for (
int num_face=ndeb; num_face<nfin; num_face++)
158 int elem= face_voisins(num_face,0);
159 if (elem==-1) elem= face_voisins(num_face,1);
161 for (
int comp=0; comp<nb_comp; comp++)
164 int idiag = tab1[elem*nb_comp+comp]-1;
167 int nbvois = tab1[elem*nb_comp+1+comp] - tab1[elem*nb_comp+comp];
168 for (
int k=1; k < nbvois; k++) coeff[idiag+k]=0;
170 secmem(elem,comp)=val(elem,comp);
177 Cerr<<
" erreur dans Op_Diff_K_Omega_VDF_base::modifier_pour_Cl ... cas non prevu "<<finl;
186 Matrice_Morse *mat = matrices.count(nom_inco) ? matrices.at(nom_inco) :
nullptr, mat2;
195 Matrice_Morse* mat = matrices.count(nom_inco) ? matrices.at(nom_inco) :
nullptr;
198 if(mat) iter->ajouter_contribution(inco, *mat);
200 iter->ajouter(inco,secmem);
classe Champ_Fonc_base Classe de base des champs qui sont fonction d'une grandeur calculee
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
classe Champ_base Cette classe est la base de la hierarchie des champs.
classe Cond_lim Classe generique servant a representer n'importe quelle classe
classe Conds_lim Cette classe represente un vecteur de conditions aux limites.
classe Dirichlet_paroi_defilante Impose la vitesse de paroi dnas une equation de type Navier_Stokes.
classe Dirichlet_paroi_fixe Represente une paroi immobile dans une equation de type Navier_Stokes.
int_t nb_elem_tot() const
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
const Cond_lim & les_conditions_limites(int) const
Renvoie la i-ieme condition aux limites.
const Domaine & domaine() const
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Champ_Inc_base & inconnue() const =0
virtual Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
Domaine_dis_base & domaine_dis()
Renvoie le domaine discretise associe a l'equation.
void associer(const Champ_base &diffu)
const Champ_base & diffusivite() const
const Champ_Fonc_base & diffusivite_turbulente() const
void associer_diff_turb(const Champ_Fonc_base &diffu)
void associer_tab_F1(const DoubleTab &tabF1)
void associer_Sigma_K_Omega(double Sigma_K, double Sigma_Omega)
void raise_is_SST_or_BSL()
void associer_mvolumique(const Champ_base &mvol)
void initialize_tab_F1(const int nb_elem_tot)
void associer_Sigma_K_Omega_SST(double Sigma_K1, double Sigma_K2, double Sigma_Omega1, double Sigma_Omega2)
const Nom & le_nom() const override
Renvoie le nom du champ.
classe Fluide_base Cette classe represente un d'un fluide incompressible ainsi que
int num_premiere_face() const
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
const auto & get_tab1() const
int nb_colonnes() const override
Return local number of columns (=size on the current proc).
virtual const Champ_base & masse_volumique() const
Renvoie la masse volumique du milieu.
Classe Modele_turbulence_hyd_K_Omega Cette classe represente le modele de turbulence (k,...
const DoubleTab & get_tabF1() const
Returns the blending table F1 for SST.
const Transport_K_Omega_base & get_eq_transport() const override
bool is_SST_or_BSL() const
Classe Modele_turbulence_hyd_RANS_K_Omega_base Classe de base des modeles de type RANS_komega.
const double & get_Sigma_Omega1() const
const double & get_Sigma_K() const
const double & get_Sigma_K1() const
const double & get_Sigma_Omega2() const
const double & get_Sigma_K2() const
const double & get_Sigma_Omega() const
Classe Modele_turbulence_hyd_base Cette classe sert de base a la hierarchie des classes.
const Turbulence_paroi_base & loi_paroi() const
const Champ_Fonc_base & viscosite_turbulente() const
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
classe Navier_Stokes_Turbulent Cette classe represente l'equation de la dynamique pour un fluide
const Modele_turbulence_hyd_base & modele_turbulence() const
class Nom Une chaine de caractere pour nommer les objets de TRUST
virtual int debute_par(const char *const n) const
const std::string & getString() const
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 const Nom & le_nom() const
Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
void ajouter_blocs(matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl) const override
void dimensionner_blocs(matrices_t matrices, const tabs_t &semi_impl) const override
void associer_diffusivite(const Champ_base &ch_diff) override
virtual void mettre_a_jour_diffusivite() const
const Champ_Fonc_base & diffusivite_turbulente() const
const Champ_base & diffusivite() const override
void completer() override
Associe l'operateur au domaine_dis, le domaine_Cl_dis, et a l'inconnue de son equation.
void modifier_pour_Cl(Matrice_Morse &, DoubleTab &) const override
DOES NOTHING - to override in derived classes.
void associer_diffusivite_turbulente()
void modifier_pour_Cl(const Domaine_VDF &, const Domaine_Cl_VDF &, Matrice_Morse &, DoubleTab &) const
void dimensionner(const Domaine_VDF &, const Domaine_Cl_VDF &, Matrice_Morse &, const bool) const
virtual void completer()
Associe l'operateur au domaine_dis, le domaine_Cl_dis, et a l'inconnue de son equation.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
const Modele_turbulence_hyd_2_eq_base & modele_turbulence() const
Renvoie le modele de turbulence associe a l'equation.
Classe Transport_K_Omega_base Classe de base pour les equations.
const Champ_Inc_base & inconnue() const override
Renvoie le champ inconnue de l'equation.
classe Transport_K_Omega Cette classe represente l'equation de transport de l'energie cinetique
Classe Turbulence_paroi_base Classe de base pour la hierarchie des classes representant les modeles.