16#include <Source_Reaction_Particules_VEF.h>
18#include <Transport_Marqueur_FT.h>
20#include <Domaine_VF.h>
21#include <Champ_implementation_P1.h>
23#include <Dirichlet_homogene.h>
24#include <Milieu_base.h>
26#include <Echange_EV_Options.h>
27#include <MD_Vector_tools.h>
28#include <Probleme_base.h>
50 const DoubleTab& source_action = eq_marqueur_->source_stockage();
54 const Domaine& domaine_geom = zdis.
domaine();
56 const IntTab& sommet_poly = domaine_geom.
les_elems();
59 const DoubleTab& positions = maillage.
sommets();
66 int nb_som_face = domaine_geom.type_elem()->nb_som_face();
73 const int nb_elem_reels = domaine_geom.
nb_elem();
77 DoubleTab source_som(0, dim);
86 const DoubleTab& rho_faces = champ_rho.
valeurs();
91 for (
int pos=0; pos<nb_pos; pos++)
93 x_pos = positions(pos,0);
94 y_pos = positions(pos,1);
96 z_pos = positions(pos,2);
101 if (elem < nb_elem_reels)
103 for (
int som=0; som<nb_som_elem; som++)
105 som_glob = sommet_poly(elem,som);
107 coord_b = coord_barycentrique_P1_triangle(sommet_poly,coord,x_pos,y_pos,elem,som) ;
109 coord_b = coord_barycentrique_P1_tetraedre(sommet_poly,coord,x_pos,y_pos,z_pos,elem,som) ;
111 for (
int k=0; k<dim; k++)
112 source_som(som_glob,k) -= source_action(pos,k)*coord_b;
125 for (num_cl=0 ; num_cl<zdis.
nb_front_Cl() ; num_cl++)
130 int nfin = ndeb + le_bord.
nb_faces();
134 for (
int face=ndeb ; face<nfin ; face++)
138 rho = (is_FT==1?rho_faces(face):rho_faces(0,0));
139 for (
int nbsf=0; nbsf<nb_som_face; nbsf++)
141 som_glob = face_som(face,nbsf);
142 for (
int k=0; k<dim; k++)
143 resu(face,k) += (1./nb_som_face)*source_som(som_glob,k)/rho;
149 for (
int face=premiere_face_interne; face<nb_faces; face++)
153 rho = (is_FT==1?rho_faces(face):rho_faces(0,0));
155 for (
int nbsf=0; nbsf<nb_som_face; nbsf++)
157 som_glob = face_som(face,nbsf);
158 for (
int k=0; k<dim; k++)
159 resu(face,k) += (1./nb_som_face)*source_som(som_glob,k)/rho;
virtual DoubleTab & valeurs()=0
classe Champ_base Cette classe est la base de la hierarchie des champs.
classe Cond_lim Classe generique servant a representer n'importe quelle classe
Classe Dirichlet_homogene Cette classe est la classe de base de la hierarchie des conditions aux limi...
classe Dirichlet Cette classe est la classe de base de la hierarchie des conditions aux limites de ty...
int nb_som_elem() const
Renvoie le nombre de sommets des elements geometriques constituants le domaine.
const DoubleTab_t & coord_sommets() const
virtual void creer_tableau_sommets(Array_base &, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT) const
Cree un tableau ayant une "ligne" par sommet du maillage.
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
const Cond_lim & les_conditions_limites(int) const
Renvoie la i-ieme condition aux limites.
int nb_faces() const
renvoie le nombre global de faces.
int face_sommets(int i, int j) const
renvoie le numero du ieme sommet de la face num_face.
int premiere_face_int() const
une face est interne ssi elle separe deux elements.
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
const Domaine & domaine() const
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Milieu_base & milieu() const =0
virtual Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
Domaine_dis_base & domaine_dis()
Renvoie le domaine discretise associe a l'equation.
int num_premiere_face() const
: class Maillage_FT_Disc Cette classe decrit un maillage:
const DoubleTab & sommets() const
renvoie le tableau des sommets (reels et virtuels) dimension(0) = nombre de sommets,
const ArrOfInt & sommet_elem() const
pour postraitement, renvoie sommet_elem_
virtual const Champ_base & masse_volumique() const
Renvoie la masse volumique du milieu.
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
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.
bool is_dilatable() const
Classe de base des flux de sortie.
Classe Source_Reaction_Particules_VEF.
DoubleTab & ajouter(DoubleTab &) const override
Classe Source_Reaction_Particules Calcul du terme source a ajouter dans Navier_Stokes pour prendre en...
_SIZE_ dimension(int d) const