15#include <Terme_Source_Constituant_Vortex_VEF_Face.h>
17#include <Transport_Interfaces_FT_Disc.h>
18#include <communications.h>
19#include <Probleme_base.h>
25 Cerr <<
"Reading Terme_Source_Constituant_Vortex_VEF_Face\n"
26 <<
" (parameters for expression are (x,y,z,u,v,w) where u,v,w is the interface sensor position)" << finl;
36 param.lire_avec_accolades_depuis(is);
42 Cerr <<
"Error: wrong segments dimension or nb_points_tests" << finl;
66 const DoubleTab& xv = domaine_vef.
xv();
67 const int nb_faces = domaine_vef.
nb_faces();
73 double integrale = 0.;
75 for (
int i_face = 0; i_face < nb_faces; i_face++)
82 f = exp((-x*x-y*y-z*z) * omega);
84 double volume = (i_face < premiere_face_std) ? volumes_cl[i_face] : volumes[i_face];
85 double por = porosites(i_face);
86 double x = f * volume * por;
89 if (faces_doubles[i_face])
91 integrale += x * facteur;
94 integrale =
mp_sum(integrale);
111 for (
int i = 0; i < n; i++)
120 Cerr <<
"Source_Constituant_Vortex "
130 const DoubleVect& volumes = domaine_vef.
volumes();
131 const DoubleTab& xp = domaine_vef.
xp();
139 double integrale = 0.;
142 for (elem = 0; elem < nb_elem; elem++)
147 double f = exp((-x*x-y*y-z*z) * omega) * volumes[elem];
151 integrale =
mp_sum(integrale);
157 Cerr <<
"Terme_Source_Constituant_Vortex_VEF_Face::ajouter_terme_div_u " << integrale << finl;
158 for (elem = 0; elem < nb_elem; elem++)
159 secmem_pression[elem] += tmp[elem] * facteur;
DoubleVect & volumes_entrelaces_Cl()
int premiere_face_std() const
int nb_faces() const
renvoie le nombre global de faces.
DoubleVect & volumes_entrelaces()
double xv(int num_face, int k) const
ArrOfInt & faces_doubles()
renvoie 1 pour les faces appartenant a un bord perio ou un item commun, 0 par defaut
double volumes(int i) const
double xp(int num_elem, int k) const
const Domaine & domaine() const
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 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.
Domaine_dis_base & domaine_dis()
Renvoie le domaine discretise associe a l'equation.
DoubleVect & porosite_face()
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
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 Probleme_base C'est un Probleme_U qui n'est pas un couplage.
static double mp_sum(double)
Calcule la somme de x sur tous les processeurs du groupe courant.
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_array(_SIZE_ new_size, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
_SIZE_ dimension(int d) const
_SIZE_ size_totale() const
class Terme_Source_Constituant_VEF_Face
Senseur_Interface senseur_
ArrOfDouble position_spot_
void associer_pb(const Probleme_base &pb) override
DoubleTab & calculer(DoubleTab &tab) const override
DoubleTab & ajouter(DoubleTab &tab) const override
void mettre_a_jour(double temps) override
DOES NOTHING - to override in derived classes.
void ajouter_terme_div_u(DoubleVect &secmem_pression, double dt) const