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]");
78 rho_la_vitesse_->nommer(
"rho_u");
88 if (le_fluide->a_gravite())
90 Cerr <<
"Gravity=" << le_fluide->gravite() << finl;
92 if (le_fluide->has_beta_t())
94 Cerr <<
"Beta_t !=0 -> Boussinesq is currently used :" << finl;
98 Cerr <<
"Creation of the buoyancy source term for the Navier_Stokes_Turbulent_QC equation :" << finl;
101 Nom type_so =
"Source_QC_Gravite_";
103 if (disc ==
"VEFPreP1B")
107 so->associer_eqn(*
this);
108 Cerr << so->que_suis_je() << finl;
168 throw std::runtime_error(std::string(
"Field ") + nom.
getString() + std::string(
" not found !"));
200 const DoubleTab& tab_rho = fluide_QC.
rho_discvit();
202 DoubleTab& rhovitesse = rho_la_vitesse_->valeurs();
class Champ_Don_base base class of Given Fields (not calculated)
DoubleTab & valeurs() override
Returns the array of field values at the current time.
class Champ_base This class is the base of the fields hierarchy.
Turbulent convection-diffusion of heat for a quasi-compressible fluid.
class Discret_Thyd This class is the base class representing a discretization
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
Returns the discretization associated with the equation.
virtual int impr(Sortie &os) const
Prints the equation operators to an output stream, unconditionally.
Probleme_base & probleme()
Returns the problem associated with the equation.
Schema_Temps_base & schema_temps()
Returns the time scheme associated with the equation.
virtual void discretiser()
Discretizes the equation.
Domaine_dis_base & domaine_dis()
Returns the discretized domain associated with the equation.
const DoubleTab & rho_discvit() const
Fluide_Quasi_Compressible class This class represents a quasi-compressible fluid,.
const Champ_Don_base & viscosite_dynamique() const
Matrice_Morse class - Represents a (sparse) matrix M, not necessarily square,.
A character string (Nom) in uppercase.
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)
Computes the time derivative of the velocity unknown, i.e. the acceleration dU/dt,...
void assembler_impl(Matrice_Morse &mat_morse, const DoubleTab &present, DoubleTab &secmem)
Navier-Stokes equation for a quasi-compressible fluid with turbulence modelling.
const Champ_Don_base & diffusivite_pour_transport() const override
void discretiser() override
Discretizes the equation.
int preparer_calcul() override
See Equation_base::preparer_calcul(). Assembles the pressure solver and initializes the pressure.
bool initTimeStep(double dt) override
Allocation and initialization of the unknown and boundary conditions until 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
Computes the time derivative of the velocity unknown, i.e. the acceleration dU/dt,...
void mettre_a_jour(double) override
Calls Navier_Stokes_Turbulent::mettre_a_jour and Convection_Diffusion_Chaleur_Turbulent_QC::mettre_a_...
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
Prints some information to an output stream: - maximum of div U.
void imprimer(Sortie &os) const override
Prints the equation operators if the time scheme indicates it is necessary.
void completer() override
Successive calls to: Navier_Stokes_std::completer().
const Champ_base & get_champ(const Motcle &nom) const override
Navier-Stokes equation for a viscous incompressible fluid (div U = 0) with turbulence modelling.
void mettre_a_jour(double) override
Performs a time update of the equation.
int preparer_calcul() override
Prepares the computation.
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
bool initTimeStep(double dt) override
Allocation and initialization of the unknown and boundary conditions until present+dt.
void completer() override
Successive calls to: Navier_Stokes_std::completer().
void imprimer(Sortie &) const override
Prints the equation operators if the time scheme indicates it is necessary.
const Milieu_base & milieu() const override
Returns the physical medium of the equation (Fluide_base upcast to Milieu_base).
const Champ_Inc_base & inconnue() const override
Returns the velocity (unknown field of the equation) (const version).
const Fluide_base & fluide() const
Returns the incompressible fluid (physical medium of the equation) associated with the equation.
OBS_PTR(Fluide_base) le_fluide
class Nom: a character string for naming TRUST objects.
const std::string & getString() const
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
Base class for output streams.
Source Generic class of the source term hierarchy. A Source object can.
void typer_direct(const Nom &)