16#include <EcritureLectureSpecial.h>
17#include <Momentum_Euler.h>
18#include <Density_Euler.h>
19#include <Discret_Thyd.h>
20#include <Domaine_VF.h>
37 terme_convectif.set_description(
"Mass flow rate=Integral(-rho*u*ndS) [kg/s] if SI units used");
50 Cerr <<
"Density_Euler discretization" << finl;
59 l_inco_ch_->fixer_nature_du_champ(N == 1 ? scalaire : multi_scalaire);
61 for (
int i = 0; i < N; i++)
62 l_inco_ch_->fixer_nom_compo(i,
Nom(
"alpha_rho_") + pb.
nom_phase(i));
67 densite_->fixer_nature_du_champ(N == 1 ? scalaire : multi_scalaire);
69 for (
int i = 0; i < N; i++)
70 densite_->fixer_nom_compo(i,
Nom(
"densite_") + pb.
nom_phase(i));
75 Cerr <<
"Density_Euler discretization ==> ok" << finl;
81 Cerr <<
"Reading of initial conditions\n";
88 Cerr <<
"We expected a { while reading " <<
que_suis_je() << finl;
89 Cerr <<
"and not : " << nom << finl;
101 const int nb_comp = ch_init->nb_comp();
109 Cerr <<
"We expected a } while reading " <<
que_suis_je() << finl;
110 Cerr <<
"and not : " << nom << finl;
118 const DoubleTab& alpha = ref_cast(
Pb_Euler,
probleme()).equation_fraction().inconnue().valeurs();
122 tab_multiply_any_shape(alpha_rho, alpha);
128 const DoubleTab& alpha = ref_cast(
Pb_Euler,
probleme()).equation_fraction().inconnue().valeurs();
132 tab_divide_any_shape(rho, alpha);
139 Cerr <<
que_suis_je() <<
" : wrong operator number " << i << finl;
149 Cerr <<
que_suis_je() <<
" : wrong operator number " << i << finl;
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.
Champ_base & affecter(const Champ_base &)
Affecter un champ dans un autre.
const Champ_Inc_base & inconnue() const override
Operateur_Conv terme_convectif
const Operateur & operateur(int) const override
const Champ_Inc_base & densite() const
void discretiser() override
Discretise l'equation.
OWN_PTR(Champ_Inc_base) densite_
void mettre_a_jour_champs_conserves(double temps, int reset) override
Entree & lire_cond_init(Entree &is) override
Lecture des conditions initiales dans un flot d'entree.
void set_param(Param ¶m) const override
classe Discret_Thyd Cette classe est la classe de base representant une discretisation
void discretiser_champ(const Motcle &directive, const Domaine_dis_base &z, const Nom &nom, const Nom &unite, int nb_comp, int nb_pas_dt, double temps, OWN_PTR(Champ_Inc_base)&champ, const Nom &sous_type=NOM_VIDE) const
Class defining operators and methods for all reading operation in an input flow (file,...
virtual void set_param(Param &titi) const override
const Nom & le_nom() const override
Renvoie le nom de l'equation.
const Discretisation_base & discretisation() const
Renvoie la discretisation associee a l'equation.
virtual void mettre_a_jour_champs_conserves(double temps, int reset=0)
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
virtual void verifie_ch_init_nb_comp(const Champ_Inc_base &ch_ref, const int nb_comp) const
Verification du nombre de composantes lues pour la specification d un champ.
Schema_Temps_base & schema_temps()
Renvoie le schema en temps associe a l'equation.
virtual void discretiser()
Discretise l'equation.
Champs_compris champs_compris_
Domaine_dis_base & domaine_dis()
Renvoie le domaine discretise associe a l'equation.
const Nom & le_nom() const override
Renvoie le nom du champ.
Une chaine de caractere (Nom) en majuscules.
class Nom Une chaine de caractere pour nommer les objets de TRUST
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.
classe Operateur Classe generique de la hierarchie des operateurs.
Helper class to factorize the readOn method of Objet_U classes.
void ajouter_non_std(const char *keyword, const Objet_U *value, Param::Nature nat=Param::OPTIONAL)
Register a keyword handled by Objet_U::lire_motcle_non_standard.
const Nom & nom_phase(int i) const
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
double temps_courant() const
Renvoie le temps courant.
virtual int nb_valeurs_temporelles() const =0
Classe de base des flux de sortie.