16#include <Echange_contact_rayo_semi_transp_VDF.h>
17#include <Pb_Conduction.h>
18#include <Pb_rayo_semi_transp.h>
19#include <Champ_front_calc.h>
20#include <Milieu_base.h>
21#include <Domaine_VDF.h>
59 if (
T_autre_pb().valeurs_au_temps(temps).size() == 0)
64 if (domaine_dis1.
domaine().
raccord(nom_racc1)->que_suis_je() !=
"Raccord_distant_homogene")
69 DoubleTab& mon_h = h_imp_->valeurs();
73 double invhparoi = 1. /
h_paroi;
101 Cerr <<
"fin de construction dans " <<
que_suis_je() << finl;
135 if (domaine_dis1.
domaine().
raccord(nom_racc1)->que_suis_je() !=
"Raccord_distant_homogene")
140 assert(nb_comp == 1);
142 DoubleTab& mon_h = h_imp_->valeurs();
146 double invhparoi = 1. /
h_paroi;
150 int is_pb_fluide = 0;
155 for (
int ii = 0; ii < taille; ii++)
156 for (
int jj = 0; jj < nb_comp; jj++)
158 mon_h(ii, jj) = 1. / (1. /
autre_h(ii, jj) + 1. / mon_h(ii, jj));
167 Motcle Thermique =
"Thermique";
168 Motcle indetermine =
"indetermine";
169 if ((dom_app == Thermique) || (dom_app == indetermine))
186 T_paroi.typer(
"Champ_front_fonc");
187 T_paroi->fixer_nb_comp(nb_comp);
205 int nb_faces_bord = ma_front_vf.
nb_faces();
208 Teta_p.
resize(nb_faces_bord, 1);
213 for (
int numfa = 0; numfa < nb_faces_bord; numfa++)
215 ind_fac = numfa + ndeb;
221 double flux_radia = flux_radiatif(numfa, 0);
222 Teta_p(numfa, 0) = (mon_h(numfa, 0) * mon_inco(elem) + lautre_h(numfa, 0) * t_autre(numfa, 0) - flux_radia) / (mon_h(numfa, 0) + lautre_h(numfa, 0));
229 Cerr <<
"On ne devrait pas a avoir a calculer la temperature de bord pour le probleme" << finl;
230 Cerr <<
"solide " << finl;
246 int nb_faces_bord = ma_front_vf.
nb_faces();
248 assert(Teta_eq.
dimension(0) == nb_faces_bord);
253 for (
int numfa = 0; numfa < nb_faces_bord; numfa++)
254 Teta_eq(numfa, 0) = t_autre(numfa, 0) - (1 / lautre_h(numfa, 0)) * flux_radiatif(numfa, 0);
274 Cerr <<
"Erreur lors de la recherche de la CL opposee." << finl;
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
classe Champ_front_base Classe de base pour la hierarchie des champs aux frontieres.
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.
virtual DoubleTab & valeurs_au_temps(double temps)=0
virtual void mettre_a_jour(double temps)
NE FAIT RIEN, a surcharger.
classe Champ_front_calc Classe derivee de Champ_front_var qui represente les
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 Champ_Inc_base & inconnue() const
Renvoie le champ inconnue associe.
const Milieu_base & milieu() const
Renvoie le milieu associe a l'equation qui porte le champ inconnue dont on prend la trace.
classe Cond_lim_base Classe de base pour la hierarchie des classes qui representent les differentes c...
void err_pas_compatible(const Equation_base &) const
Cette methode est appelee quand la condition aux limites n'est pas compatible avec l'equation sur laq...
Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limites discretisee dont l'objet fait partie.
virtual Frontiere_dis_base & frontiere_dis()
Renvoie la frontiere discretisee a laquelle les conditions aux limites s'appliquent.
const Pb_rayo_semi_transp & pb_rayo_semi_transp() const
virtual void associer_pb_rayo_semi_transp(const Pb_rayo_semi_transp &)
virtual void recherche_emissivite_et_A()
classe Cond_lim Classe generique servant a representer n'importe quelle classe
Raccord_t & raccord(int i)
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
int nb_cond_lim() const
Renvoie le nombre de conditions aux limites.
Domaine_dis_base & domaine_dis()
Renvoie une reference sur le domaine discretise associe aux conditions aux limites.
const Cond_lim & les_conditions_limites(int) const
Renvoie la i-ieme condition aux limites.
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.
const Frontiere_dis_base & frontiere_dis(const Nom &) const
Renvoie la frontiere de Nom nom.
const Domaine & domaine() const
void mettre_a_jour(double temps) override
Effectue une mise a jour en temps de la condition aux limites.
virtual Champ_front_base & T_ext()
Renvoie le champ T_ext de temperature imposee a la frontiere.
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
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
Domaine_dis_base & domaine_dis()
Renvoie le domaine discretise associe a l'equation.
virtual const Motcle & domaine_application() const
Renvoie "indetermine" Navier_Stokes_standard par exemple surcharge cette methode.
virtual int nb_comp() const
int 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.
const Frontiere & frontiere() const
Renvoie la frontiere geometrique associee.
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.
virtual bool is_rayo_semi_transp() const
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
Une chaine de caractere (Nom) en majuscules.
class Nom Une chaine de caractere pour nommer les objets de TRUST
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 const Nom & le_nom() const
Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
Classe Pb_Conduction Cette classe represente un probleme de conduction avec rho et Cp non uniformes :
Le Pb_rayo_semi_transp est un Probleme_base qui a 4 particularites : * Son equation doit etre typee e...
const Champ_front_base & flux_radiatif(const Nom &nom_bord) const
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.
virtual const Milieu_base & milieu() const
Renvoie le milieu physique associe au probleme.
virtual const Equation_base & equation(int) const =0
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
_SIZE_ dimension(int d) const
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")