16#include <LecFicDiffuse.h>
17#include <Champ_Don_lu.h>
38 int nb_elems = domaine.nb_elem();
42 domaine.creer_tableau_elements(
valeurs());
45 LecFicDiffuse fic(nom);
46 Cerr <<
"Open and read the file : " << nom << finl;
56 Cerr <<
"STAR-CCM csv file detected..." << finl;
57 Cerr <<
"Find component 1 of the field: " << chaine << finl;
58 for (
int i=0; i<dim; i++)
62 if (i<dim-1) Cerr <<
"Find component " << i+2 <<
" of the field: " << chaine << finl;
66 Cerr <<
"Error in the file. There must be one field with " << dim <<
" components." << finl;
72 LecFicDiffuse tmp(nom);
84 nb_val_lues=atoi(chaine);
85 Cerr <<
"The format of this file containing values of a field should be:" << finl;
88 for (
int line=1; line<=nb_lines; line++)
90 if (line==nb_lines-1) Cerr <<
"..." << finl;
94 if (line==nb_lines) l=
"N";
97 Cerr <<
"x["<<l<<
"] y["<<l<<
"] ";
99 for (
int k=0; k<dim; k++)
100 Cerr <<
"value["<<l<<
","<<k<<
"] ";
105 Cerr << finl <<
"Read number of values (N)=" << nb_val_lues << finl;
107 DoubleTab& mes_val =
valeurs();
108 IntTab compteur(nb_elems);
111 DoubleVect val_lu(dim);
115 for (
int i=0; i<nb_val_lues; i++)
117 tmp=(i+1)*10/nb_val_lues;
121 Cerr<<
"\rProcess "<<
Process::me()<<
" has read "<<pourcent*10<<
"% of values"<<flush;
127 for (
int k=0; k<dim; k++) fic >> val_lu[k];
128 for (
int k=0; k<dimension; k++) fic >> point[k];
132 for (
int k=0; k<dimension; k++) fic >> point[k];
133 for (
int k=0; k<dim; k++) fic >> val_lu[k];
140 elem2=domaine.chercher_elements(x,y,z);
141 if ((elem2!=-1) && (elem2<nb_elems))
143 for (
int k=0; k<dim; k++) mes_val(elem2,k) = val_lu[k];
144 compteur[elem2] += 1;
149 for (
int num_elem=0; num_elem<nb_elems; num_elem++)
150 if (compteur[num_elem] == 0)
152 Cerr <<
"Error when using Champ_Don_lu keyword:" << finl;
153 Cerr <<
"There is no value found for the cell number " << num_elem << finl;
154 Cerr <<
"Check your mesh and/or the file " << nom << finl;
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.
: class Champ_Don_lu Cette classe represente un champ de donnees que l'on lit dans un fichier avec le...
int lire_dimension(Entree &, const Nom &)
Verification de la dimension du champ Renvoie la dimension du champ.
Class defining operators and methods for all reading operation in an input flow (file,...
virtual int debute_par(const char *const n) const
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.
static int me()
renvoie mon rang dans le groupe de communication courant.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
Domaine & interprete_get_domaine(const Nom &nom)
Sortie & printOn(Sortie &os) const override
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")