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;
class Champ_Don_base base class of Given Fields (not calculated)
DoubleTab & valeurs() override
Overrides Champ_base::valeurs() Returns the array of values.
virtual DoubleTab & valeurs()=0
class Champ_base This class is the base of the fields hierarchy.
Champ_base & affecter(const Champ_base &)
Assign a field to another.
class Champ_front_base Base class for the hierarchy of boundary fields.
virtual DoubleTab & valeurs() override
Returns the array of field values.
std::vector< Nom > supp_discs
Domaine_Cl_dis_base & domaine_Cl_dis()
Returns the domain of discretized boundary conditions to which the object belongs.
std::vector< Motcle > app_domains
virtual Frontiere_dis_base & frontiere_dis()
Returns the discretized boundary to which the boundary conditions apply.
: 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
Changes the i-th future time of the BC.
void completer() override
DOES NOTHING must be overridden in derived classes.
OWN_PTR(Champ_front_base) coeff_ap
int avancer(double temps) override
Rotates the wheel of the BC.
int reculer(double temps) override
Rotates the wheel of the BC.
void mettre_a_jour(double temps) override
Performs a time update of the boundary condition.
void changer_temps_futur(double temps, int i) override
Changes the i-th future time of the BC.
int initialiser(double temps) override
Initialization at the beginning of the calculation.
Classe Echange_global_impose This class represents the special case of the class.
void set_temps_defaut(double temps) override
Changes the i-th future time of the BC.
void mettre_a_jour(double temps) override
Performs a time update of the boundary condition.
int reculer(double temps) override
Rotates the wheel of the BC.
void completer() override
DOES NOTHING must be overridden in derived classes.
int avancer(double temps) override
Rotates the wheel of the BC.
int initialiser(double temps) override
Initialization at the beginning of the calculation.
void changer_temps_futur(double temps, int i) override
Changes the i-th future time of the BC.
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
Milieu_base This class is the base of the (physical) medium hierarchy.
virtual const Equation_base & equation(const std::string &nom_inc) const
virtual const Champ_Don_base & capacite_calorifique() const
Returns the heat capacity of the medium (const version).
virtual const Champ_base & masse_volumique() const
Returns the mass density of the medium (const version).
const Equation_base & equation() const
Returns the reference to the equation pointed to by MorEqn::mon_equation.
class Nom: a character string for naming TRUST objects.
virtual int debute_par(const char *const n) 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.
Base class for output streams.
_SIZE_ dimension(int d) const