17#include <Neumann_sortie_libre.h>
18#include <Navier_Stokes_std.h>
19#include <Equation_base.h>
44 app_domains = {Motcle(
"Thermique"), Motcle(
"Thermique_H"),
45 Motcle(
"Transport_Keps"), Motcle(
"Transport_Keps_V2"),
46 Motcle(
"Transport_Keps_Bas_Re"), Motcle(
"Transport_Keps_Rea"),
47 Motcle(
"Concentration"), Motcle(
"Fraction_massique"),
48 Motcle(
"Fraction_volumique"), Motcle(
"Transport_V2"),
49 Motcle(
"Turbulence"), Motcle(
"Interfacial_area"),
50 Motcle(
"indetermine"), Motcle(
"Transport_Komega")
54 Motcles les_motcles(16);
56 les_motcles[0] =
"T_ext";
57 les_motcles[1] =
"C_ext";
58 les_motcles[2] =
"K_Eps_ext";
59 les_motcles[3] =
"F_M_ext";
60 les_motcles[4] =
"Fluctu_Temperature_ext";
61 les_motcles[5] =
"Flux_Chaleur_Turb_ext";
62 les_motcles[6] =
"V2_ext";
63 les_motcles[7] =
"Y_ext";
64 les_motcles[8] =
"A_ext";
65 les_motcles[9] =
"k_ext";
66 les_motcles[10] =
"tau_ext";
67 les_motcles[11] =
"omega_ext";
68 les_motcles[12] =
"k_WIT_ext";
69 les_motcles[13] =
"a_i_ext";
70 les_motcles[14] =
"K_Omega_ext";
71 les_motcles[15] =
"H_ext";
74 int rang = les_motcles.search(motlu);
79 Cerr <<
"Erreur a la lecture de la condition aux limites de type: " << finl;
81 Cerr <<
"On attendait " << les_motcles <<
" a la place de " << motlu << finl;
85 le_champ_front = le_champ_ext;
99 const int nb_comp = le_champ_front->nb_comp();
102 (
que_suis_je() ==
"Frontiere_ouverte_rayo_semi_transp") ||
103 (
que_suis_je() ==
"Frontiere_ouverte_rayo_transp") ||
104 (
que_suis_je() ==
"Sortie_libre_temperature_imposee_H"))
122 if (le_champ_ext->valeurs().size() == 1)
123 return le_champ_ext->valeurs()(0, 0);
124 else if (le_champ_ext->valeurs().dimension(1) == 1)
125 return le_champ_ext->valeurs()(i, 0);
128 Cerr <<
"Neumann_sortie_libre::val_ext" << finl;
129 Cerr << le_champ_ext << finl;
138 assert(le_champ_ext);
139 return le_champ_ext->initialiser(temps,
domaine_Cl_dis().equation().inconnue());
145 assert(le_champ_ext);
146 le_champ_ext->associer_fr_dis_base(fr);
158 if (le_champ_ext->valeurs().dimension(0) == 1)
159 return le_champ_ext->valeurs()(0, j);
161 return le_champ_ext->valeurs()(i, j);
170 if (
val_ext_.dimension(0) != nb_faces_tot)
171 val_ext_.resize(nb_faces_tot, le_champ_ext->valeurs().dimension(1));
173 int nb_comp =
val_ext_.dimension(1);
174 for (
int i = 0; i < size; i++)
175 for (
int j = 0; j < nb_comp; j++)
183 return le_champ_ext->valeurs();
188 return le_champ_ext->valeurs();
194 le_champ_ext->fixer_nb_valeurs_temporelles(nb_cases);
200 le_champ_ext->mettre_a_jour(temps);
206 le_champ_ext->set_temps_defaut(temps);
212 le_champ_ext->changer_temps_futur(temps, i);
virtual void changer_temps_futur(double temps, int i)
Change le i-eme temps futur de la CL.
virtual void mettre_a_jour(double temps)
Effectue une mise a jour en temps de la condition aux limites.
virtual void fixer_nb_valeurs_temporelles(int nb_cases)
Appele par Conds_lim::completer Appel cha_front_base::fixer_nb_valeurs_temporelles.
virtual void associer_fr_dis_base(const Frontiere_dis_base &)
Associe la frontiere a l'objet.
virtual int avancer(double temps)
Tourne la roue de la CL.
Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limites discretisee dont l'objet fait partie.
virtual int reculer(double temps)
Tourne la roue de la CL.
std::vector< Motcle > app_domains
virtual int initialiser(double temps)
Initialisation en debut de calcul.
virtual Frontiere_dis_base & frontiere_dis()
Renvoie la frontiere discretisee a laquelle les conditions aux limites s'appliquent.
virtual void set_temps_defaut(double temps)
Change le i-eme temps futur de la cl.
Class defining operators and methods for all reading operation in an input flow (file,...
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
virtual const Champ_Inc_base & inconnue() const =0
virtual void verifie_ch_init_nb_comp_cl(const Champ_Inc_base &ch_ref, const int nb_comp, const Cond_lim_base &cl) const
classe Frontiere_dis_base Classe representant une frontiere discretisee.
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
classe Navier_Stokes_std Cette classe porte les termes de l'equation de la dynamique
Champ_Inc_base & pression()
classe Neumann_sortie_libre Cette classe represente une frontiere ouverte sans vitesse imposee
int avancer(double temps) override
Tourne la roue de la CL.
void mettre_a_jour(double temps) override
Effectue une mise a jour en temps de la condition aux limites.
const DoubleTab & val_ext() const
void changer_temps_futur(double temps, int i) override
Change le i-eme temps futur de la CL.
int initialiser(double temps) override
Initialisation en debut de calcul.
void associer_fr_dis_base(const Frontiere_dis_base &) override
Associe la frontiere a l'objet.
const DoubleTab & tab_ext() const override
void verifie_ch_init_nb_comp() const override
Appel la verification du champ lu par l intermediaire de l equation pour laquelle on considere la con...
int reculer(double temps) override
Tourne la roue de la CL.
void set_temps_defaut(double temps) override
Change le i-eme temps futur de la cl.
void fixer_nb_valeurs_temporelles(int nb_cases) override
Appele par Conds_lim::completer Appel cha_front_base::fixer_nb_valeurs_temporelles.
Classe Neumann_val_ext Cette classe est la classe de base de la hierarchie des conditions.
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.