16#include <Convection_Diffusion_Chaleur_Turbulent_QC.h>
17#include <Navier_Stokes_Turbulent_QC.h>
18#include <Fluide_Quasi_Compressible.h>
19#include <Assembleur_base.h>
20#include <Probleme_base.h>
21#include <Discret_Thyd.h>
33 if (!sub_type(Fluide_Quasi_Compressible, le_fluide.valeur()))
35 Cerr <<
"ERROR: the equation " << this->
que_suis_je() <<
" can be associated only to a quasi-compressible fluid." << finl;
39 divergence.set_description((Nom)
"Mass flow rate=Integral(rho*u*ndS) [kg.s-1]");
77 rho_la_vitesse_->nommer(
"rho_u");
87 if (le_fluide->a_gravite())
89 Cerr <<
"Gravity=" << le_fluide->gravite() << finl;
91 if (le_fluide->has_beta_t())
93 Cerr <<
"Beta_t !=0 -> Boussinesq is currently used :" << finl;
97 Cerr <<
"Creation of the buoyancy source term for the Navier_Stokes_Turbulent_QC equation :" << finl;
100 Nom type_so =
"Source_QC_Gravite_";
102 if (disc ==
"VEFPreP1B")
106 so->associer_eqn(*
this);
107 Cerr << so->que_suis_je() << finl;
169 throw std::runtime_error(std::string(
"Field ") + nom.
getString() + std::string(
" not found !"));
202 const DoubleTab& tab_rho = fluide_QC.
rho_discvit();
204 DoubleTab& rhovitesse = rho_la_vitesse_->valeurs();
classe Champ_Don_base classe de base des Champs donnes (non calcules)
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 Convection_Diffusion_Chaleur_Turbulent_QC Cette classe represente le cas particulier de
classe Discret_Thyd Cette classe est la classe de base representant une discretisation
void vitesse(const Schema_Temps_base &, Domaine_dis_base &, OWN_PTR(Champ_Inc_base)&, int nb_comp=1) const
Class defining operators and methods for all reading operation in an input flow (file,...
const Discretisation_base & discretisation() const
Renvoie la discretisation associee a l'equation.
virtual int impr(Sortie &os) const
Imprime les operateurs de l'equation sur un flot de sortie, de facon inconditionnelle.
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
Schema_Temps_base & schema_temps()
Renvoie le schema en temps associe a l'equation.
virtual void discretiser()
Discretise l'equation.
Domaine_dis_base & domaine_dis()
Renvoie le domaine discretise associe a l'equation.
const DoubleTab & rho_discvit() const
classe Fluide_Quasi_Compressible Cette classe represente un d'un fluide quasi compressible
const Champ_Don_base & viscosite_dynamique() const
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
Une chaine de caractere (Nom) en majuscules.
void assembler_avec_inertie_impl(const Navier_Stokes_std &eqn, Matrice_Morse &mat_morse, const DoubleTab &present, DoubleTab &secmem)
DoubleTab & rho_vitesse_impl(const DoubleTab &tab_rho, const DoubleTab &vit, DoubleTab &rhovitesse) const
int impr_impl(const Navier_Stokes_std &eqn, Sortie &os) const
DoubleTab & derivee_en_temps_inco_impl(Navier_Stokes_std &, DoubleTab &res)
Calcule la derivee en temps de l'inconnue vitesse, i.
void assembler_impl(Matrice_Morse &mat_morse, const DoubleTab &present, DoubleTab &secmem)
classe Navier_Stokes_Turbulent Cette classe represente l'equation de la dynamique pour un fluide
const Champ_Don_base & diffusivite_pour_transport() const override
void discretiser() override
Dicretise l'equation.
int preparer_calcul() override
cf Equation_base::preparer_calcul() Assemblage du solveur pression et
bool initTimeStep(double dt) override
Allocation et initialisation de l'inconnue et des CLs jusqu'a present+dt.
const Champ_Inc_base & rho_la_vitesse() const override
void assembler_avec_inertie(Matrice_Morse &mat_morse, const DoubleTab &present, DoubleTab &secmem) override
DoubleTab & derivee_en_temps_inco(DoubleTab &) override
Calcule la derivee en temps de l'inconnue vitesse, i.
void mettre_a_jour(double) override
appel Navier_Stokes_Turbulent::mettre_a_jour et Convection_Diffusion_Chaleur_Turbulent_QC::mettre_a_j...
void assembler(Matrice_Morse &mat_morse, const DoubleTab &present, DoubleTab &secmem) override
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
int impr(Sortie &) const override
Effectue quelques impressions sur un flot de sortie: - maximum de div U.
void imprimer(Sortie &os) const override
Imprime les operateurs de l'equation si le schema en temps indique que c'est necessaire.
void completer() override
Appels successifs a: Navier_Stokes_std::completer().
const Champ_base & get_champ(const Motcle &nom) const override
classe Navier_Stokes_Turbulent Cette classe represente l'equation de la dynamique pour un fluide
void mettre_a_jour(double) override
Effecttue une mise a jour en temps de l'equation.
int preparer_calcul() override
Prepare le calcul.
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
bool initTimeStep(double dt) override
Allocation et initialisation de l'inconnue et des CLs jusqu'a present+dt.
void completer() override
Appels successifs a: Navier_Stokes_std::completer().
void imprimer(Sortie &) const override
Imprime les operateurs de l'equation si le schema en temps indique que c'est necessaire.
const Milieu_base & milieu() const override
Renvoie le milieu physique de l'equation (le Fluide_base upcaste en Milieu_base).
const Champ_Inc_base & inconnue() const override
Renvoie la vitesse (champ inconnue de l'equation) (version const).
const Fluide_base & fluide() const
Renvoie le fluide incompressible (milieu physique de l'equation) associe a l'equation.
OBS_PTR(Fluide_base) le_fluide
class Nom Une chaine de caractere pour nommer les objets de TRUST
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 Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
classe Source Classe generique de la hierarchie des sources, un objet Source peut
void typer_direct(const Nom &)