16#include <Echange_contact_VDF_FT_Disc_solid.h>
18#include <Champ_front_calc.h>
19#include <Probleme_base.h>
20#include <Champ_Uniforme.h>
21#include <Schema_Temps_base.h>
22#include <Milieu_base.h>
23#include <Modele_turbulence_scal_base.h>
24#include <Domaine_VDF.h>
25#include <Equation_base.h>
26#include <Conduction.h>
28#include <Interprete.h>
29#include <Probleme_FT_Disc_gen.h>
30#include <Triple_Line_Model_FT_Disc.h>
31#include <Domaine_Cl_VDF.h>
32#include <EcrFicPartage.h>
39int meme_point2(
const DoubleVect& a,
const DoubleVect& b);
52 Cerr<<
"Lecture des parametres du contact (Echange_contact_VDF_FT_Disc_solid::readOn)"<<finl;
53 Param param(
"Echange_contact_VDF_FT_Disc_solid::readOn");
66 param.ajouter(
"Ri_liq",&
Ri_);
68 param.lire_avec_accolades(s);
74 T_autre_pb_.typer(
"Champ_front_calc");
75 le_champ_front.typer(
"Ch_front_var_instationnaire_dep");
82 T2_autre_pb_->mettre_a_jour(temps);
83 T_autre_pb_->mettre_a_jour(temps);
84 indicatrice_->mettre_a_jour(temps);
92 const DoubleTab& I = indicatrice_->valeurs_au_temps(temps);
96 DoubleTab& hh_imp= h_imp_->valeurs();
98 DoubleTab mon_h(hh_imp);
99 DoubleTab& Text=
T_ext(). valeurs();
100 DoubleTab& mon_Ti= Ti_wall_-> valeurs();
102 DoubleTab Texttmp(Text);
103 DoubleTab Twalltmp(Text);
114 for(
int n=0; n<2; n++)
128 for (
int ii=0; ii<taille; ii++)
130 if (est_egal(I(ii,0),I_ref_))
131 for (
int jj=0; jj<nb_comp; jj++)
133 hh_imp(ii,jj)=1./(1./
autre_h(ii,jj)+1./mon_h(ii,jj));
135 Text(ii,jj)=Texttmp(ii,jj);
136 mon_Ti(ii) = Twalltmp(ii, jj);
148 DoubleTab& mon_phi =
phi_ext_->valeurs ();
179 DoubleTab phi_filed(autre_inco);
183 const IntTab& face_voisins_loc = domainedis.
face_voisins();
185 for (
int ii = 0; ii < autre_phi.
dimension (0); ii++)
188 int elem = face_voisins_loc(face_loc, 0);
190 elem = face_voisins_loc(face_loc, 1);
191 phi_filed(elem) = autre_phi(ii);
195 if (mon_dom_cl_dis -> domaine().raccord(nom_racc1)->
que_suis_je() ==
"Raccord_distant_homogene")
213 for (
int jj = 0; jj < nb_comp; jj++)
215 for (
int ii = 0; ii < taille; ii++)
217 if (!est_egal(mon_phi(ii, jj), 0.))
219 mon_phi(ii, jj) = -mon_phi(ii, jj);
225 const int elemi = face_voisins(face, 0) + face_voisins(face, 1) + 1;
226 mon_Ti(ii, jj) = mon_inco(elemi, 0) + mon_phi(ii, jj) / mon_h(ii);
235 Ti_wall_->mettre_a_jour(temps);
255 double i, j, epsilon = 1.e-8;
269 Nom nom_pb=mon_dom_cl_dis->equation().probleme().
le_nom();
280 filTwall.
ouvrir(fichier,ios::app);
290 filTwall <<
"--------------------------------------------------------------------------------------------" << finl;
291 filTwall <<
"Time\t\t| X\t\t\t| Y\t\t\t| Twall" << finl;
292 filTwall <<
"--------------------------------------------------------------------------------------------" << finl;
297 for (
int face = ndeb; face < nfin; face++)
299 filTwall << temps <<
"\t| " << le_dom.
xv (face, 0) <<
"\t| " << le_dom.
xv (face, 1) <<
"\t| " <<
Ti_wall (face - ndeb) << finl;
313 T2_autre_pb_.typer(
"Champ_front_calc");
332 T2_autre_pb_->changer_temps_futur(temps,i);
341 ok = ok && T2_autre_pb_->avancer(temps);
351 ok = ok && T2_autre_pb_->reculer(temps);
DoubleTab & valeurs() override
Returns the array of field values at the current time.
virtual void associer_fr_dis_base(const Frontiere_dis_base &)
Associates a discretized boundary with the field.
virtual DoubleTab & valeurs() override
Returns the array of field values.
class Champ_front_calc Derived class of Champ_front_var representing
const Frontiere_dis_base & front_dis() const
Returns the discretized boundary corresponding to the domain on which the trace is taken.
void creer(const Nom &, const Nom &, const Motcle &)
Create the Champ_front_calc object representing the trace of an unknown field on a boundary from name...
int initialiser(double, const Champ_Inc_base &) override
Initialization at the beginning of calculation.
const Domaine_Cl_dis_base & domaine_Cl_dis() const
Returns the domain of discretized boundary conditions carried by the equation carrying the unknown fi...
const Domaine_dis_base & domaine_dis() const override
Returns the discretized domain associated with the equation carrying the unknown field whose trace is...
const Milieu_base & milieu() const
Returns the medium associated with the equation carrying the unknown field whose trace is taken.
void fixer_nb_valeurs_temporelles(int nb_cases) override
Overrides Champ_front_base::fixer_nb_valeurs_temporelles.
class Cond_lim_base Base class for the hierarchy of classes that represent the different boundary con...
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 Domaine_Cl_dis_base Domaine_Cl_dis_base objects represent discretized boundary conditions
const Cond_lim_base & condition_limite_de_la_frontiere(Nom frontiere) const
Returns the boundary condition associated with a boundary of the given name.
double xv(int num_face, int k) const
int face_voisins(int num_face, int i) const
Returns the neighbouring element of num_face in direction i.
class Domaine_dis_base This class is the base of the hierarchy of discretized domains.
virtual IntTab & face_voisins()
void mettre_a_jour(double temps) override
Performs a time update of the boundary condition.
Champ_front_base & phi_ext()
virtual Champ_front_base & T_ext()
Returns the T_ext field of temperature imposed at the boundary.
int ouvrir(const char *name, IOS_OPEN_MODE mode=ios::out) override
Opens the file with the given mode and prot parameters. These parameters are the parameters of the st...
Sortie & syncfile() override
Triggers writing to disk of the data accumulated on the different processors since the last call to s...
Class defining operators and methods for all reading operation in an input flow (file,...
class Equation_base The role of an equation is the calculation of one or more fields....
virtual const Champ_Inc_base & inconnue() const =0
Schema_Temps_base & schema_temps()
Returns the time scheme associated with the equation.
virtual void fixer_nb_comp(int i)
Sets the number of components of the field.
virtual int nb_comp() const
virtual void trace_elem_distant(const DoubleTab &, DoubleTab &) const
int_t num_premiere_face() const
const Nom & le_nom() const override
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual void trace_elem_local(const DoubleTab &, DoubleTab &) const
int_t nb_faces() const
Returns the number of faces of the boundary.
const Frontiere & frontiere() const
Returns the associated geometric boundary.
static Objet_U & objet(const Nom &)
See Interprete_bloc::objet_global(). BM: the Interprete class is not the best place for this.
Milieu_base This class is the base of the (physical) medium hierarchy.
virtual const Champ_Don_base & conductivite() const
Returns the conductivity 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.
const Nom & le_nom() const override
Returns *this.
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.
static const Nom & nom_du_cas()
Returns a constant reference to the case name. This method is static.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
const Triple_Line_Model_FT_Disc & tcl() const
class Probleme_base It is a Probleme_U that is not a coupling.
bool & reprise_effectuee()
static int je_suis_maitre()
Returns 1 if on the master processor of the current group (i.e. me() == 0), 0 otherwise.
double temps_courant() const
Returns the current time.
int nb_pas_dt_max_atteint() const
Returns 1 if (the number of time steps >= maximum number of time steps).
int temps_final_atteint() const
Returns 1 if the final time has been reached (or exceeded).
double pas_de_temps() const
Returns the current time step (delta_t).
virtual int nb_valeurs_temporelles() const =0
double temps_precedent() const
Returns the previous time.
Base class for output streams.
_SIZE_ dimension(int d) const
virtual void detach_vect()
bool is_activated() const