16#include <Lire_Ideas.h>
21Implemente_instanciable(
Lire_Ideas,
"Lire_Ideas",Interprete_geometrique_base);
53 Cerr <<
"First pass to determine the sizes of arrays" << finl;
56 for (
int ii=0; ii<80; ii++)
58 strcpy(nom_fic2,nom_fic);
59 F77NAME(LIREPREM) (nom_fic2,
69 Cerr <<
"Number of nodes : " << NNOEUDS << finl;
70 Cerr <<
"Number of elements : " << NELEM << finl;
71 Cerr <<
"Number of tetrahedra : " << NTETRA << finl;
72 Cerr <<
"Number of boundary faces : " << NFACB << finl;
73 Cerr <<
"Number of boundary segments : " << NSEG << finl;
74 Cerr <<
"Number of groups : " << NGROUPE << finl;
76 ArrOfInt NGELEM(NGROUPE);
77 ArrOfInt WORK(std::max(NTETRA,NFACB*4));
82 IntTab TETRA(4,NTETRA);
84 IntTab GROUP(NFACB,NGROUPE);
86 ArrOfDouble X(NNOEUDS);
87 ArrOfDouble Y(NNOEUDS);
88 ArrOfDouble Z(NNOEUDS);
89 Cerr <<
"call of LIREIDEAS " << finl;
91 F77NAME(LIREIDEAS)(nom_fic2,
108 Cerr <<
" Reading completed " << finl;
111 dom.type_elem().
typer(
"Tetraedre");
112 dom.type_elem()->associer_domaine(dom);
119 for(
int i=0; i<NNOEUDS; i++)
127 Cerr <<
" Completing the assignment of coordinates of nodes" << finl;
133 for(
int i=0; i<NTETRA; i++)
140 les_elems(i,j)= TETRA(j,i)-1 ;
144 Cerr <<
" Completing the assignment of elements" << finl;
162 Nom nom1=
"nom.groupe";
165 Cerr <<
"Reading of the file : " << nom1 << finl;
180 for(
int k=0; k<NGROUPE; k++)
183 Bord& nouveau=les_bords.add(Bord());
186 nouveau.
faces().
typer(Type_Face::triangle_3D);
191 for (
int j=0; j<NGELEM[k]; j++)
207 Cerr <<
" Completing the assignment of the boundary faces" << finl;
209 Cerr <<
" Exit of Lire_Ideas " << finl;
void associer_domaine(const Domaine_t &)
Associe un domaine a tous les bords de la liste.
DoubleTab_t & les_sommets()
void fixer_premieres_faces_frontiere()
void typer(const Nom &)
Type les elements du domaine avec le nom passe en parametre.
Fichier en lecture Cette classe est a la classe C++ ifstream ce que la classe Entree est a la.
Class defining operators and methods for all reading operation in an input flow (file,...
virtual void set_check_types(bool flag)
indique si le stream doit verifier les types des objets lus (ints et nombres flottants).
void typer(const Motcle &)
Type les faces.
int_t dimensionner(int_t)
(Re-)dimensionne les faces On redimensionne les voisins en consequence.
int_t sommet(int_t, int) const
Renvoie le numero du j-ieme sommet de la i-ieme face.
void nommer(const Nom &) override
Donne un nom a la frontiere.
void associer_domaine(const Domaine_t &)
Associe la frontiere au domaine dont elle depend.
const Faces_t & faces() const
void associer_domaine(Nom &nom_dom)
Domaine_t & domaine(int i=0)
Entree & interpreter_(Entree &) override
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.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
static void init_sequential_domain(Domaine_32_64< _SIZE_ > &dom)
Create parallel descriptors for the vertex and element arrays of the domain (necessary because Scatte...
Classe de base des flux de sortie.
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)