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
Renvoie le tableau des valeurs du champ au temps courant.
virtual void associer_fr_dis_base(const Frontiere_dis_base &)
Associe une frontiere discretisee au champ.
virtual DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ.
classe Champ_front_calc Classe derivee de Champ_front_var qui represente les
const Frontiere_dis_base & front_dis() const
Renvoie la frontiere discretisee correspondante au domaine sur lequel prend la trace.
void creer(const Nom &, const Nom &, const Motcle &)
Cree l'objet Champ_front_calc representant la trace d'un champ inconnue sur une frontiere a partir de...
int initialiser(double, const Champ_Inc_base &) override
Initialisation en debut de calcul.
const Domaine_Cl_dis_base & domaine_Cl_dis() const
Renvoie le domaine des conditions au limites discretisees porte par l'equation qui porte le champ inc...
const Domaine_dis_base & domaine_dis() const override
Renvoie le domaine discretise associe a l'equation qui porte le champ inconnue dont on prend la trace...
const Milieu_base & milieu() const
Renvoie le milieu associe a l'equation qui porte le champ inconnue dont on prend la trace.
void fixer_nb_valeurs_temporelles(int nb_cases) override
Surcharge Champ_front_base::fixer_nb_valeurs_temporelles.
classe Cond_lim_base Classe de base pour la hierarchie des classes qui representent les differentes c...
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.
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
const Cond_lim_base & condition_limite_de_la_frontiere(Nom frontiere) const
Renvoie la condition limite associee a une frontiere de nom donne.
double xv(int num_face, int k) const
int face_voisins(int num_face, int i) const
renvoie l'element voisin de numface dans la direction i.
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
virtual IntTab & face_voisins()
void mettre_a_jour(double temps) override
Effectue une mise a jour en temps de la condition aux limites.
Champ_front_base & phi_ext()
virtual Champ_front_base & T_ext()
Renvoie le champ T_ext de temperature imposee a la frontiere.
int ouvrir(const char *name, IOS_OPEN_MODE mode=ios::out) override
Ouvre le fichier avec les parametres mode et prot donnes Ces parametres sont les parametres de la met...
Sortie & syncfile() override
Provoque l'ecriture sur disque des donnees accumulees sur les differents processeurs depuis le dernie...
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
Schema_Temps_base & schema_temps()
Renvoie le schema en temps associe a l'equation.
virtual void fixer_nb_comp(int i)
Fixe le nombre de composantes du champ.
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
Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
virtual void trace_elem_local(const DoubleTab &, DoubleTab &) const
int_t nb_faces() const
Renvoie le nombre de faces de la frontiere.
const Frontiere & frontiere() const
Renvoie la frontiere geometrique associee.
static Objet_U & objet(const Nom &)
Voir Interprete_bloc::objet_global() BM: la classe Interprete n'est pas le meilleur endroit pour cett...
classe Milieu_base Cette classe est la base de la hierarchie des milieux (physiques)
virtual const Champ_Don_base & conductivite() const
Renvoie la conductivite 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
const Nom & le_nom() const override
Renvoie *this;.
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.
static const Nom & nom_du_cas()
Renvoie une reference constante vers le nom du cas.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
const Triple_Line_Model_FT_Disc & tcl() const
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.
bool & reprise_effectuee()
static int je_suis_maitre()
renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0),...
double temps_courant() const
Renvoie le temps courant.
int nb_pas_dt_max_atteint() const
Renvoie 1 si (le nombre de pas de temps >= nombre de pas de temps maximum).
int temps_final_atteint() const
Renvoie 1 si le temps final est atteint (ou depasse).
double pas_de_temps() const
Renvoie le pas de temps (delta_t) courant.
virtual int nb_valeurs_temporelles() const =0
double temps_precedent() const
Renvoie le temps courant.
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const
virtual void detach_vect()
bool is_activated() const