16#include <Champ_Don_Face_lu.h>
17#include <Probleme_base.h>
18#include <Domaine_VDF.h>
23int meme_point(
const ArrOfInt& x,
const DoubleTab& tab,
int rang_tab)
28 for (k = 0; k < dime; k++)
29 if (std::fabs(x[k] - tab(rang_tab, k)) >= 1.e-12)
38 const DoubleTab& tab =
valeurs();
39 os << tab.
size() <<
" ";
40 for (
int i = 0; i < tab.
size(); i++)
58 Cerr <<
"Champ_Don_Face_lu: lecture du fichier " << nom << finl;
60 fic.set_check_types(1);
64 const DoubleTab& xv = zvdf.
xv();
67 ArrOfBit flag(nb_faces);
73 int nb_faces_affectees = 0;
75 for (i = 0; i < nb_val_lues; i++)
80 for (k = 0; k < dim; k++)
84 for (
int j = 0; j < nb_faces; j++)
87 if (num_face >= nb_faces)
90 if (meme_point(point, xv, num_face))
93 mes_val(num_face) = val_lu[0];
95 for (k = 0; k < dim; k++)
96 mes_val(num_face, k) = val_lu[k];
97 if (!flag.testsetbit(num_face))
104 int erreur =
static_cast<int>(
mp_sum(nb_faces - nb_faces_affectees));
107 Cerr <<
"Erreur dans Champ_Don_Face_lu.\n" << erreur <<
" faces n'ont pas ete affectees.\n" <<
"Voir la liste des faces dans les fichiers .log" << finl;
108 Journal() <<
"Champ_Don_Face_lu. Liste des faces non affectees :\n";
109 for (i = 0; i < nb_faces; i++)
111 Journal() << i <<
" " << xv(i, 0) <<
" " << xv(i, 1) <<
" " << ((
dimension == 3) ? xv(i, 3) : 0.) << finl;
class Champ_Don_Face_lu Cette classe represente un champ de donnees que l'on lit
void dimensionner(int, int)
Fixe le nombre de composantes et le nombre de valeurs nodales.
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
classe Champ_Fonc_Face_VDF
void associer_domaine_dis_base(const Domaine_dis_base &) override
const Domaine_dis_base & domaine_dis_base() const override
int nb_faces() const
renvoie le nombre global de faces.
double xv(int num_face, int k) const
Class defining operators and methods for all reading operation in an input flow (file,...
static Objet_U & objet(const Nom &)
Voir Interprete_bloc::objet_global() BM: la classe Interprete n'est pas le meilleur endroit pour cett...
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.
const Domaine_dis_base & domaine_dis() const
Renvoie le domaine discretise associe au probleme.
static Sortie & Journal(int message_level=0)
Renvoie un objet statique de type Sortie qui sert de journal d'evenements.
static double mp_sum(double)
Calcule la somme de x sur tous les processeurs du groupe courant.
static void barrier()
Synchronise tous les processeurs du groupe courant (attend que tous les processeurs soient arrives a ...
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
_SIZE_ size_array() const
_SIZE_ dimension(int d) const