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
class Champ_base This class is the base of the fields hierarchy.
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
Milieu_base This class is the base of the (physical) medium hierarchy.
virtual const Equation_base & equation(const std::string &nom_inc) const
virtual const Champ_base & masse_volumique() const
Returns the mass density of the medium (const version).
virtual int duplique() const =0
virtual unsigned taille_memoire() const =0
int numero() const
Returns the index of the object in Memoire::data.
static double mp_sum(double)
Computes the sum of x over all processors in the current group.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
static int je_suis_maitre()
Returns 1 if on the master processor of the current group (i.e. me() == 0), 0 otherwise.
Base class for output streams.