16#include <Echange_couplage_thermique.h>
17#include <Discretisation_base.h>
18#include <Domaine_Cl_dis_base.h>
19#include <Champ_Uniforme.h>
20#include <Probleme_base.h>
21#include <Equation_base.h>
22#include <Milieu_base.h>
35Echange_couplage_thermique::Echange_couplage_thermique()
45 if (
supp_discs.size() == 0)
supp_discs = { Nom(
"VDF"), Nom(
"VEFPreP1B"), Nom(
"EF_axi"), Nom(
"EF") };
47 Cerr <<
"Reading of coupled boundary" << finl;
49 EChaine ech1(
"Ch_front_var_instationnaire_dep 1");
50 EChaine ech2(
"Ch_front_var_instationnaire_dep 1");
53 ech2 >> le_champ_front;
56 noms.add(
"temperature_paroi");
57 noms.add(
"flux_paroi");
68 coeff_ap.typer(
"Ch_front_var_instationnaire_dep");
69 coeff_ap->fixer_nb_comp(1);
71 coeff_ap->fixer_nb_valeurs_temporelles(3);
73 coeff_sp.typer(
"Ch_front_var_instationnaire_dep");
74 coeff_sp->fixer_nb_comp(1);
76 coeff_sp->fixer_nb_valeurs_temporelles(3);
78 coeff_heff.typer(
"Ch_front_var_instationnaire_dep");
79 coeff_heff->fixer_nb_comp(1);
81 coeff_heff->fixer_nb_valeurs_temporelles(3);
83 type_echange_eff.typer(
"Ch_front_var_instationnaire_dep");
84 type_echange_eff->fixer_nb_comp(1);
86 type_echange_eff->fixer_nb_valeurs_temporelles(3);
88 temperature_Teff.typer(
"Ch_front_var_instationnaire_dep");
89 temperature_Teff->fixer_nb_comp(1);
91 temperature_Teff->fixer_nb_valeurs_temporelles(3);
93 rftc_paroi.typer(
"Ch_front_var_instationnaire_dep");
94 rftc_paroi->fixer_nb_comp(1);
96 rftc_paroi->fixer_nb_valeurs_temporelles(3);
98 flux_critique_paroi.typer(
"Ch_front_var_instationnaire_dep");
99 flux_critique_paroi->fixer_nb_comp(1);
101 flux_critique_paroi->fixer_nb_valeurs_temporelles(3);
104 const Champ_base& rho=mon_dom_cl_dis->equation().milieu().masse_volumique();
106 ||nom_pb==
Nom(
"Pb_Conduction") || nom_pb.
debute_par(
"Pb_Conduction_Combustible")
107 ||mon_dom_cl_dis->equation().que_suis_je()==
"Convection_Diffusion_Concentration")
124 return champ_ext.
valeurs()(0,j)/(d_rho*d_Cp);
126 return champ_ext.
valeurs()(i,j)/(d_rho*d_Cp);
131 return champ_ext.
valeurs()(0,j);
133 return champ_ext.
valeurs()(i,j);
140 coeff_ap->changer_temps_futur(temps,i);
141 coeff_sp->changer_temps_futur(temps,i);
142 coeff_heff->changer_temps_futur(temps,i);
143 type_echange_eff->changer_temps_futur(temps,i);
144 temperature_Teff->changer_temps_futur(temps,i);
145 rftc_paroi->changer_temps_futur(temps,i);
146 flux_critique_paroi->changer_temps_futur(temps,i);
151 coeff_ap->avancer(temps);
152 coeff_sp->avancer(temps);
153 coeff_heff->avancer(temps);
154 type_echange_eff->avancer(temps);
155 temperature_Teff->avancer(temps);
156 rftc_paroi->avancer(temps);
157 flux_critique_paroi->avancer(temps);
163 coeff_ap->reculer(temps);
164 coeff_sp->reculer(temps);
165 coeff_heff->reculer(temps);
166 type_echange_eff->reculer(temps);
167 temperature_Teff->reculer(temps);
168 rftc_paroi->reculer(temps);
169 flux_critique_paroi->reculer(temps);
176 coeff_ap->set_temps_defaut(temps);
177 coeff_sp->set_temps_defaut(temps);
178 coeff_heff->set_temps_defaut(temps);
179 type_echange_eff->set_temps_defaut(temps);
180 temperature_Teff->set_temps_defaut(temps);
181 rftc_paroi->set_temps_defaut(temps);
182 flux_critique_paroi->set_temps_defaut(temps);
188 coeff_ap->mettre_a_jour(temps);
189 coeff_sp->mettre_a_jour(temps);
190 coeff_heff->mettre_a_jour(temps);
191 type_echange_eff->mettre_a_jour(temps);
192 temperature_Teff->mettre_a_jour(temps);
193 rftc_paroi->mettre_a_jour(temps);
194 flux_critique_paroi->mettre_a_jour(temps);
197static bool initialized =
false;
208 DoubleTab& vals1 =le_champ_front->
valeurs();
211 ch->affecter(
lec_champs.champ_lu(
"flux_paroi"));
212 DoubleTab& vals =
phi_ext_->valeurs();
221 phi_ext_->changer_temps_futur(temps,0);
222 le_champ_front->set_temps_defaut(temps);
223 le_champ_front->mettre_a_jour(temps);
224 le_champ_front->changer_temps_futur(temps,0);
233 rftc_paroi->valeurs()=1e20;
234 flux_critique_paroi->initialiser(temps,
domaine_Cl_dis().inconnue());
235 flux_critique_paroi->valeurs()=1e20;
classe Champ_Don_base classe de base des Champs donnes (non calcules)
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
virtual DoubleTab & valeurs()=0
classe Champ_base Cette classe est la base de la hierarchie des champs.
Champ_base & affecter(const Champ_base &)
Affecter un champ dans un autre.
classe Champ_front_base Classe de base pour la hierarchie des champs aux frontieres.
virtual DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ.
std::vector< Nom > supp_discs
Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limites discretisee dont l'objet fait partie.
std::vector< Motcle > app_domains
virtual Frontiere_dis_base & frontiere_dis()
Renvoie la frontiere discretisee a laquelle les conditions aux limites s'appliquent.
: class Echange_couplage_thermique
double champ_exterieur(int i, int j, const Champ_front_base &champ_ext) const override
void set_temps_defaut(double temps) override
Change le i-eme temps futur de la cl.
void completer() override
NE FAIT RIEN A surcharger dans les classes derivees.
OWN_PTR(Champ_front_base) coeff_ap
int avancer(double temps) override
Tourne la roue de la CL.
int reculer(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.
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.
Classe Echange_global_impose Cette classe represente le cas particulier de la classe.
void set_temps_defaut(double temps) override
Change le i-eme temps futur de la cl.
void mettre_a_jour(double temps) override
Effectue une mise a jour en temps de la condition aux limites.
int reculer(double temps) override
Tourne la roue de la CL.
void completer() override
NE FAIT RIEN A surcharger dans les classes derivees.
int avancer(double temps) override
Tourne la roue de la CL.
int initialiser(double temps) override
Initialisation en debut de calcul.
void changer_temps_futur(double temps, int i) override
Change le i-eme temps futur de la CL.
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Milieu_base & milieu() const =0
virtual const Champ_Inc_base & inconnue() const =0
classe Milieu_base Cette classe est la base de la hierarchie des milieux (physiques)
virtual const Equation_base & equation(const std::string &nom_inc) const
virtual const Champ_Don_base & capacite_calorifique() const
Renvoie la capacite calorifique du milieu.
virtual const Champ_base & masse_volumique() const
Renvoie la masse volumique du milieu.
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
class Nom Une chaine de caractere pour nommer les objets de TRUST
virtual int debute_par(const char *const n) 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.
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const