16#include <Neumann_paroi_rayo_semi_transp_VDF.h>
17#include <Pb_rayo_semi_transp.h>
18#include <Fluide_Incompressible.h>
19#include <Champ_front_uniforme.h>
20#include <Schema_Temps_base.h>
21#include <Champ_Uniforme.h>
22#include <communications.h>
23#include <Domaine_VDF.h>
45 int elem = face_voisins(ndeb + i, 0);
47 elem = face_voisins(ndeb + i, 1);
52 if (le_champ_front->valeurs().size() == 1)
53 return signe * le_champ_front->valeurs()(0, 0) - flux_radiatif(i, 0);
54 else if (le_champ_front->valeurs().dimension(1) == 1)
55 return signe * (le_champ_front->valeurs()(i, 0) - flux_radiatif(i, 0));
57 Cerr <<
"Neumann_paroi_rayo_semi_transp_VDF::flux_impose error" << finl;
69 int elem = face_voisins(ndeb + i, 0);
71 elem = face_voisins(ndeb + i, 1);
75 if (le_champ_front->valeurs().dimension(0) == 1)
76 return le_champ_front->valeurs()(0, j) - flux_radiatif(i);
78 return le_champ_front->valeurs()(i, j) - flux_radiatif(i);
101 double d_Cp, d_rho, d_Lambda;
106 tmp[0] = local_max_vect(Cp);
107 tmp[1] = local_max_vect(rho);
108 tmp[2] = local_max_vect(Lambda);
119 d_Lambda = Lambda(0, 0);
128 const DoubleTab& T_f = mon_dom_cl_dis->equation().inconnue().valeurs();
129 DoubleTab& T_b = temperature_bord_->valeurs_au_temps(temps);
135 for (face = 0; face < nb_faces; face++)
137 num_face = face + ndeb;
139 int elem = face_voisins(num_face, 0);
141 elem = face_voisins(num_face, 1);
144 double omega = d_Lambda * dt / (d_Lambda * dt + eF * eF * d_rho * d_Cp);
148 T_b(face, 0) = omega * (T_f(elem) + (le_champ_front->valeurs()(0, 0) - flux_radiatif(face, 0)) / (d_Lambda / eF)) + (1 - omega) * T_b(face, 0);
151 T_b(face, 0) = omega * (T_f(elem) + (le_champ_front->valeurs()(face, 0) - flux_radiatif(face, 0)) / (d_Lambda / eF)) + (1 - omega) * T_b(face, 0);
158 Motcle Thermique =
"Thermique";
159 Motcle indetermine =
"indetermine";
160 if ((dom_app == Thermique) || (dom_app == indetermine))
177 temperature_bord_.typer(
"Champ_front_fonc");
178 temperature_bord_->fixer_nb_comp(nb_comp);
179 DoubleTab& tab = temperature_bord_->valeurs();
187 const DoubleTab& T = mon_dom_cl_dis->equation().inconnue().valeurs();
193 for (face = 0; face < front_vf.
nb_faces(); face++)
195 int elem = face_voisins(face + ndeb, 0);
197 elem = face_voisins(face + ndeb, 1);
198 tab(face, 0) = T(elem);
DoubleTab & valeurs() override
Overrides Champ_base::valeurs() Returns the array of values.
virtual DoubleTab & valeurs()=0
virtual DoubleTab & valeurs() override
Returns the array of field values.
class Cond_lim_base Base class for the hierarchy of classes that represent the different boundary con...
void err_pas_compatible(const Equation_base &) const
This method is called when the boundary condition is not compatible with the equation on which we try...
Domaine_Cl_dis_base & domaine_Cl_dis()
Returns the domain of discretized boundary conditions to which the object belongs.
virtual void completer()
DOES NOTHING must be overridden in derived classes.
virtual Frontiere_dis_base & frontiere_dis()
Returns the discretized boundary to which the boundary conditions apply.
const Pb_rayo_semi_transp & pb_rayo_semi_transp() const
double dist_norm_bord(int num_face) const override
Returns the normal distance for a boundary face (Cartesian coordinates).
int face_voisins(int num_face, int i) const
Returns the neighbouring element of num_face in direction i.
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 Milieu_base & milieu() const =0
virtual const Motcle & domaine_application() const
Returns "indeterminate" Navier_Stokes_standard for example overrides this method.
virtual int nb_comp() const
int num_premiere_face() const
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_Don_base & conductivite() const
Returns the conductivity of the medium (const version).
virtual const Champ_base & masse_volumique() const
Returns the mass density of the medium (const version).
A character string (Nom) in uppercase.
void completer() override
DOES NOTHING must be overridden in derived classes.
double flux_impose(int i) const override
Returns the value of the imposed flux on the i-th component of the field representing the flux at the...
int compatible_avec_eqn(const Equation_base &) const override
void calculer_temperature_bord(double temps)
const Cond_lim_base & la_cl() const override
Classe Neumann_paroi This boundary condition corresponds to an imposed flux for the.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual const Nom & le_nom() const
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
const Champ_front_base & flux_radiatif(const Nom &nom_bord) const
static void mp_max_for_each_item(TRUSTArray< _TYPE_ > &x, int n=-1)
double pas_de_temps() const
Returns the current time step (delta_t).
Base class for output streams.
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
virtual const MD_Vector & get_md_vector() const