16#include <Convection_Diffusion_Chaleur_WC.h>
17#include <Source_WC_Chaleur_VEF.h>
18#include <Neumann_sortie_libre.h>
19#include <Navier_Stokes_WC.h>
20#include <Probleme_base.h>
21#include <Milieu_base.h>
22#include <Domaine_VF.h>
64 grad_Ptot.
resize(nb,nbcomp);
70 const Domaine_dis_base& domaine_dis = mon_equation->inconnue().domaine_dis_base();
72 assert (domaine_dis.
que_suis_je() ==
"Domaine_VEF");
78 DoubleTab grad_Ptot_face(la_vitesse);
81 elem_to_face(domaine,grad_Ptot,grad_Ptot_face);
85 assert (UgradP_face.
line_size() == 1 && n == domaine.nb_faces_tot());
86 for (
int i=0 ; i <n ; i++)
88 UgradP_face(i,0) = 0.;
89 for (
int j=0 ; j <nbcomp ; j++) UgradP_face(i,0) += la_vitesse(i,j) * grad_Ptot_face(i,j);
94void Source_WC_Chaleur_VEF::elem_to_face(
const Domaine_VF& domaine,
const DoubleTab& grad_Ptot,DoubleTab& grad_Ptot_face)
const
96 const DoubleVect& vol = domaine.volumes();
97 const IntTab& elem_faces = domaine.elem_faces();
98 const int nb_face_elem = elem_faces.
line_size(), nb_elem_tot = domaine.nb_elem_tot(), nb_comp = grad_Ptot_face.
line_size();
100 assert (grad_Ptot.
line_size() == nb_comp);
103 for (
int ele = 0; ele < nb_elem_tot; ele++)
104 for (
int s = 0; s < nb_face_elem; s++)
106 const int face = elem_faces(ele,s);
107 for (
int comp = 0; comp < nb_comp; comp++) grad_Ptot_face(face,comp) += grad_Ptot(ele,comp)*vol(ele);
110 for (
int f=0; f<domaine.nb_faces_tot(); f++)
111 for (
int comp=0; comp<nb_comp; comp++) grad_Ptot_face(f,comp) /=
volumes(f)*nb_face_elem;
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
classe Convection_Diffusion_Chaleur_WC Cas particulier de Convection_Diffusion_Chaleur_Fluide_Dilatab...
const Operateur_Grad & operateur_gradient_WC() const
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Class defining operators and methods for all reading operation in an input flow (file,...
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
virtual const Champ_Don_base & conductivite() const
Renvoie la conductivite du milieu.
classe Navier_Stokes_WC Cette classe porte les termes de l'equation de la dynamique
const Milieu_base & milieu() const override
Renvoie le milieu physique de l'equation (le Fluide_base upcaste en Milieu_base).
virtual const Champ_Inc_base & vitesse() const
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 Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
Classe Operateur_Grad Classe generique de la hierarchie des operateurs calculant le gradient.
DoubleTab & calculer(const DoubleTab &, DoubleTab &) const override
Initialise le tableau passe en parametre avec la contribution de l'operateur.
virtual const Equation_base & equation(int) const =0
Classe de base des flux de sortie.
void associer_domaines_impl(const Domaine_dis_base &domaine, const Domaine_Cl_dis_base &domaine_cl)
void associer_volume_porosite_impl(const Domaine_dis_base &domaine, DoubleVect &volumes, DoubleVect &porosites)
class Source_WC_Chaleur_VEF
void associer_domaines(const Domaine_dis_base &, const Domaine_Cl_dis_base &) override
void compute_interpolate_gradP(DoubleTab &UgradP_face, const DoubleTab &Ptot) const override
const DoubleTab & correct_grad_boundary(const Domaine_VF &domaine, DoubleTab &grad_Ptot) const
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
_SIZE_ dimension_tot(int) const override
_SIZE_ size_totale() const