42 MG_SOLUTION::MG_SOLUTION(
MG_MAILLAGE* mai,
int nb,
char* chemin,
int code,std::string nomsol,
int entite,
int type_solution):
MG_IDENTIFICATEUR(),nb_champs(nb),mgmai(mai),nomsolution(nomsol),typeentite(entite),dim_solution(type_solution)
47 MG_SOLUTION::MG_SOLUTION(
unsigned long num,
MG_MAILLAGE* mai,
int nb,
char* chemin,
int code,std::string nomsol,
int entite,
int type_solution):
MG_IDENTIFICATEUR(num),nb_champs(nb),mgmai(mai),nomsolution(nomsol),typeentite(entite),dim_solution(type_solution)
56 if (
in!=NULL) fclose(
in);
67 sprintf(mess,
"Champs_%d",i);
74 unsigned long nbele=0;
82 fwrite(&nbele,
sizeof(
unsigned long),1,
in);
83 for (
unsigned long i=0;i<nbele+1;i++)
86 fwrite(&val,
sizeof(
unsigned long),1,
in);
88 unsigned long *tab=
new unsigned long[nbele+1];
90 unsigned long cumul_iter=0;
93 LISTE_MG_NOEUD::iterator ite;
98 for (
unsigned long j=0;j<iter;j++)
101 fwrite(&val,
sizeof(
double),1,
in);
104 cumul_iter=cumul_iter+iter;
110 LISTE_MG_SEGMENT::iterator ite;
115 for (
unsigned long j=0;j<iter;j++)
118 fwrite(&val,
sizeof(
double),1,
in);
121 cumul_iter=cumul_iter+iter;
127 LISTE_MG_TRIANGLE::iterator itet;
132 for (
unsigned long j=0;j<iter;j++)
135 fwrite(&val,
sizeof(
double),1,
in);
138 cumul_iter=cumul_iter+iter;
140 LISTE_MG_QUADRANGLE::iterator iteq;
145 for (
unsigned long j=0;j<iter;j++)
148 fwrite(&val,
sizeof(
double),1,
in);
151 cumul_iter=cumul_iter+iter;
157 LISTE_MG_TETRA::iterator itet;
162 for (
unsigned long j=0;j<iter;j++)
165 fwrite(&val,
sizeof(
double),1,
in);
168 cumul_iter=cumul_iter+iter;
171 LISTE_MG_HEXA::iterator iteh;
176 for (
unsigned long j=0;j<iter;j++)
179 fwrite(&val,
sizeof(
double),1,
in);
182 cumul_iter=cumul_iter+iter;
188 LISTE_MG_TETRA::iterator itet;
193 for (
unsigned long j=0;j<iter;j++)
196 fwrite(&val,
sizeof(
double),1,
in);
199 cumul_iter=cumul_iter+iter;
201 LISTE_MG_HEXA::iterator iteh;
206 for (
unsigned long j=0;j<iter;j++)
209 fwrite(&val,
sizeof(
double),1,
in);
212 cumul_iter=cumul_iter+iter;
217 LISTE_MG_SEGMENT::iterator ite;
222 for (
unsigned long j=0;j<iter;j++)
225 fwrite(&val,
sizeof(
double),1,
in);
228 cumul_iter=cumul_iter+iter;
234 LISTE_MG_TRIANGLE::iterator itet;
239 for (
unsigned long j=0;j<iter;j++)
242 fwrite(&val,
sizeof(
double),1,
in);
245 cumul_iter=cumul_iter+iter;
247 LISTE_MG_QUADRANGLE::iterator iteq;
252 for (
unsigned long j=0;j<iter;j++)
255 fwrite(&val,
sizeof(
double),1,
in);
258 cumul_iter=cumul_iter+iter;
262 tab[nbele]=cumul_iter;
263 fseek(
in,
sizeof(
unsigned long),SEEK_SET);
264 for (
unsigned long i=0;i<nbele+1;i++)
267 fwrite(&(tab[i]),
sizeof(
unsigned long),1,
in);
274 fseek(
in,0,SEEK_SET);
276 fread(&nb,
sizeof(
unsigned long),1,
in);
278 for (
unsigned long i=0;i<nb+1;i++)
281 fread(&val,
sizeof(
unsigned long),1,
in);
298 unsigned long nb=
hash[0];
299 unsigned long pos=
hash[i+1];
300 unsigned long pospro=
hash[i+2];
303 fseek(
in,posval,SEEK_SET);
305 fread(&val,
sizeof(
double),1,
in);
311 unsigned long nb=
hash[0];
312 unsigned long pos=
hash[i+1];
313 unsigned long pospro=
hash[i+2];
316 fseek(
in,posval,SEEK_SET);
317 fwrite(&val,
sizeof(
double),1,
in);
361 for (
int j=0;j<9;j++)
369 LISTE_MG_NOEUD::iterator it;
374 double val=
lire(i,num,k);
375 no->change_solution(val,k);
384 LISTE_MG_SEGMENT::iterator it;
389 double val=
lire(i,num,k);
390 seg->change_solution(val,k);
399 LISTE_MG_TRIANGLE::iterator it;
404 double val=
lire(i,num,k);
405 tri->change_solution(val,k);
411 LISTE_MG_QUADRANGLE::iterator it2;
416 double val=
lire(i,num,k);
417 quad->change_solution(val,k);
426 LISTE_MG_TETRA::iterator it;
431 double val=
lire(i,num,k);
432 tet->change_solution(val,k);
438 LISTE_MG_HEXA::iterator it2;
443 double val=
lire(i,num,k);
444 hex->change_solution(val,k);
475 o <<
");" << std::endl;
MG_TETRA * get_premier_tetra(LISTE_MG_TETRA::iterator &it)
MG_TETRA * get_suivant_tetra(LISTE_MG_TETRA::iterator &it)
unsigned int get_nb_mg_segment(void)
unsigned int get_nb_mg_triangle(void)
MG_SEGMENT * get_premier_segment(LISTE_MG_SEGMENT::iterator &)
MG_TRIANGLE * get_premier_triangle(LISTE_MG_TRIANGLE::iterator &it)
MG_TRIANGLE * get_suivant_triangle(LISTE_MG_TRIANGLE::iterator &it)
MG_HEXA * get_suivant_hexa(LISTE_MG_HEXA::iterator &it)
MG_HEXA * get_premier_hexa(LISTE_MG_HEXA::iterator &it)
MG_NOEUD * get_premier_noeud(LISTE_MG_NOEUD::iterator &it)
MG_SEGMENT * get_suivant_segment(LISTE_MG_SEGMENT::iterator &)
MG_NOEUD * get_suivant_noeud(LISTE_MG_NOEUD::iterator &it)
MG_QUADRANGLE * get_premier_quadrangle(LISTE_MG_QUADRANGLE::iterator &it)
unsigned int get_nb_mg_noeud(void)
unsigned int get_nb_mg_hexa(void)
unsigned int get_nb_mg_quadrangle(void)
unsigned int get_nb_mg_tetra(void)
MG_QUADRANGLE * get_suivant_quadrangle(LISTE_MG_QUADRANGLE::iterator &it)
virtual void enregistrer(std::ostream &o, double version)
void change_legende(int num, std::string val)
MG_SOLUTION(class MG_MAILLAGE *mai, int nb, char *chemin, int code, std::string nomsol, int entite=MAGIC::ENTITE_SOLUTION::ENTITE_NOEUD, int type_solution=MAGIC::TYPE_SOLUTION::SCALAIRE)
int get_entite_solution(void)
int get_dim_solution(void)
void inisolution(char *chemin, int code)
virtual void get_fichier_dependant(std::vector< std::string > &liste_fichier)
double get_legende_min(int num=0)
MG_MAILLAGE * get_maillage(void)
void active_solution(int num)
double solmax[MAX_TYPE_SOLUTION]
double get_legende_max(int num=0)
double lire(int i, int j, int coord=0, int num_no=0)
std::string get_nom(void)
std::string get_legende(int num)
double solmin[MAX_TYPE_SOLUTION]
void ecrire(double val, int i, int j, int coord=0, int num_no=0)
std::vector< unsigned long > hash
std::string get_nom_fichier(void)
static int egal(double a, double b, double eps)
std::ostream & operator<<(std::ostream &o, MG_SOLUTION &sol)
#define MAGIC_VERSION_FICHIER_DOUBLE