16#include <LecFicDiffuse.h>
17#include <Champ_P0_VDF.h>
18#include <Domaine_VDF.h>
33 const DoubleTab& xp = domaine_vdf.
xp();
34 int nb_poly = domaine_vdf.
nb_elem();
41 domaine.calculer_centres_gravite(positions);
55 const DoubleTab& val =
valeurs();
58 DoubleVect moy(nb_compo);
60 double coef, sum_vol = 0;
64 coef = porosite_elem(num_elem) * volumes(num_elem);
65 for (k = 0; k < nb_compo; k++)
66 moy[k] += val(num_elem, k) * coef;
80 const DoubleTab& val =
valeurs();
83 double coef, sum_vol = 0;
87 coef = porosite_elem(num_elem) * volumes(num_elem);
88 moy += val(num_elem, ncomp) * coef;
135 np=(ni-1)*(nj-1)*(nk-1);
137 for(k=0; k<nk-1; k++)
138 for(ii=0; ii<ni-1; ii++)
139 for(jj=0; jj<nj-1; jj++)
141 elem=jj+(nj-1)*(ii+k*(ni-1));
142 Grille(elem,0)=0.5*(xi(ii)+xi(ii+1));
143 Grille(elem,1)=0.5*(yj(jj)+yj(jj+1));
144 Grille(elem,2)=0.5*(zk(k)+zk(k+1));
148 for(k=0; k<nk-1; k++)
151 os <<
"Coupe a K= " << k << finl;
156 n2=std::min(ni-1,n2+cmax);
159 for(
int i=n1; i<n2; i++)
162 for(
int j=nj-2; j>-1; j--)
164 os <<
"J= " << j <<
" ";
165 for(
int i=n1; i<n2; i++)
167 elem=j+(nj-1)*(i+k*(ni-1));
168 os << tab_valeurs(elem,0) <<
" ";
179 for(ii=0; ii<ni-1; ii++)
180 for(jj=0; jj<nj-1; jj++)
183 Grille(elem,0)=0.5*(xi(ii)+xi(ii+1));
184 Grille(elem,1)=0.5*(yj(jj)+yj(jj+1));
192 n2=std::min(ni-1,n2+cmax);
195 for(
int i=n1; i<n2; i++)
198 for(
int j=nj-2; j>-1; j--)
200 os <<
"J= " << j <<
" ";
201 for(
int i=n1; i<n2; i++)
204 os << tab_valeurs(elem,0) <<
" ";
213 Cerr <<
"Champ_P0_VDF::imprime_P0_VDF avec nb_compo_>1 non code." << finl;
232 const DoubleTab& val =
valeurs();
235 for (elem = 0; elem < nb_elem; elem++)
236 integr += val(elem, ncomp) * volumes(elem);
: class Champ_Inc_P0_base
const Domaine & domaine() const
const Domaine_dis_base & domaine_dis_base() const override
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
DoubleTab & valeur_aux(const DoubleTab &positions, DoubleTab &valeurs) const override
Calcule les valeurs du champs inconnue aux positions specifiees.
classe Champ_P0_VDF Classe qui represente un champ discret P0 par element associe a un domaine discre...
DoubleTab & remplir_coord_noeuds(DoubleTab &) const override
int imprime(Sortie &os, int nb_compo_) const override
Ecrit le champ sous la forme IJK.
DoubleVect moyenne(const DoubleVect &porosite_elem) const
renvoie la moyenne du champ au sens P0 i.
const Domaine_VDF & domaine_VDF() const
double integrale_espace(int ncomp) const override
Appel a l'objet sous-jacent calcule l'integrale de l'une des composantes.
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,...
const Nom & le_nom() const override
Renvoie le nom du champ.
virtual int nb_comp() const
Cette classe implemente les operateurs et les methodes virtuelles de la classe EFichier de la facon s...
class Nom Une chaine de caractere pour nommer les objets de TRUST
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.
static const Nom & nom_du_cas()
Renvoie une reference constante vers le nom du cas.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
virtual void ref(const TRUSTTab &)
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
_SIZE_ dimension(int d) const