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
Overrides Champ_base::valeurs() Returns the array of values.
DoubleTab & valeurs() override
Returns the array of field values at the current time.
Particular case of Convection_Diffusion_Chaleur_Fluide_Dilatable_base for a weakly compressible fluid...
const Operateur_Grad & operateur_gradient_WC() const
class Domaine_Cl_dis_base Domaine_Cl_dis_base objects represent discretized boundary conditions
class Domaine_dis_base This class is the base of the hierarchy of discretized domains.
Class defining operators and methods for all reading operation in an input flow (file,...
Probleme_base & probleme()
Returns the problem associated with the equation.
virtual const Champ_Don_base & conductivite() const
Returns the conductivity of the medium (const version).
Carries the terms of the momentum equation for a weakly compressible fluid without turbulence modelli...
const Milieu_base & milieu() const override
Returns the physical medium of the equation (Fluide_base upcast to Milieu_base).
virtual const Champ_Inc_base & vitesse() const
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.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
Classe Operateur_Grad Generic class of the hierarchy of operators computing the gradient.
DoubleTab & calculer(const DoubleTab &, DoubleTab &) const override
Initializes the array passed as parameter with the contribution of the operator.
virtual const Equation_base & equation(int) const =0
Base class for output streams.
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