16#ifndef Iterateur_Source_EF_Som_included
17#define Iterateur_Source_EF_Som_included
19#include <Iterateur_Source_base.h>
20#include <Champ_Uniforme.h>
21#include <TRUSTSingle.h>
22#include <Milieu_base.h>
23#include <Domaine_EF.h>
25template<
typename _TYPE_>
49 DoubleTab&
ajouter(DoubleTab&)
const override;
58 template <
typename Type_Double>
62template<
typename _TYPE_>
81 Cerr <<
"Cas non prevu dans Iterateur_Source_EF_Som<_TYPE_>::ajouter(DoubleTab& resu) const" << finl;
91template<
typename _TYPE_>
template<
typename Type_Double>
94 Type_Double source(ncomp);
95 const IntTab& elems = le_dom->domaine().les_elems();
96 const DoubleTab& IPhi_thilde = ref_cast(
Domaine_EF,le_dom.valeur()).IPhi_thilde();
97 int nb_som_elem = le_dom->domaine().nb_som_elem();
98 for (
int num_elem = 0; num_elem <
nb_elems; num_elem++)
101 for (
int k = 0; k < ncomp; k++)
102 for (
int i = 0; i < nb_som_elem; i++)
104 double src = source[k];
105 src *= IPhi_thilde(num_elem, i);
107 resu(elems(num_elem, i),k) += src;
113template<
typename _TYPE_>
116 for (
int k = 0; k <
bilan.size(); k++)
120 os <<
" : " <<
bilan(k) << finl;
virtual DoubleTab & valeurs()=0
classe Champ_base Cette classe est la base de la hierarchie des champs.
virtual const Milieu_base & milieu() const =0
void completer_() override
_TYPE_ evaluateur_source_elem
Iterateur_Source_EF_Som(const Iterateur_Source_EF_Som &iter)
int impr(Sortie &) const override
DoubleTab & ajouter_elems_standard(const int, DoubleTab &) const
DoubleTab & ajouter(DoubleTab &) const override
Iterateur_Source_EF_Som()
Evaluateur_Source & evaluateur() override
int equation_divisee_par_rho() const
classe Milieu_base Cette classe est la base de la hierarchie des milieux (physiques)
virtual const Equation_base & equation(const std::string &nom_inc) const
virtual const Champ_base & masse_volumique() const
Renvoie la masse volumique du milieu.
virtual int duplique() const =0
virtual unsigned taille_memoire() const =0
int numero() const
Renvoie l'indice de l'objet dans Memoire::data.
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.
static int je_suis_maitre()
renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0),...
Classe de base des flux de sortie.