ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/carte/src/main.cpp
Revision: 1067
Committed: Thu Jun 10 20:03:17 2021 UTC (4 years, 2 months ago) by francois
File size: 19247 byte(s)
Log Message:
suite commit précedent2.

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�re et Vincent FRANCOIS
5     // D�partement de G�nie M�canique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�partement
8     // de g�nie m�canique de l'Universit� du Qu�bec �
9     // Trois Rivi�res
10     // Les librairies ne peuvent �tre utilis�es sans l'accord
11     // des auteurs (contact : francois@uqtr.ca)
12     //------------------------------------------------------------
13     //------------------------------------------------------------
14     //
15     // main.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H25
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25    
26    
27     #include "gestionversion.h"
28     #ifdef WINDOWS_VERSION
29     #include "fenetre.h"
30     #endif
31    
32     #pragma hdrstop
33     #include "mg_file.h"
34     #include "mg_export.h"
35     #include "fct_generateur_frontiere.h"
36     #include "fct_generateur_constante.h"
37     #include "fct_generateur_fichier.h"
38 francois 469 #include "fct_taille_fem_solution_generateur_constant.h"
39 francois 523 #include "fct_taille_fem_solution_generateur_echantillon_frontiere.h"
40     #include "fct_taille_fem_solution_generateur_fichier.h"
41 francois 432 #include "magic_application.h"
42 francois 283 #include <string.h>
43     //---------------------------------------------------------------------------
44    
45    
46    
47    
48     int main(int argc,char **argv)
49     {
50 francois 432 std::vector<MAGIC_PARAMETRE_APPLICATION> lst;
51 francois 523 MAGIC_PARAMETRE_APPLICATION p1(3,(char*)"-fichierpoint",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier d'échantillonage");
52 francois 432 MAGIC_PARAMETRE_APPLICATION p2(4,(char*)"-dg",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Densité globale");
53     MAGIC_PARAMETRE_APPLICATION p3(5,(char*)"-eps",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Écart entre le maillage et la géométrie");
54     MAGIC_PARAMETRE_APPLICATION p4(6,(char*)"-taillezone",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Facteur pour la distance de variation de la carte autour de l'échantillon - Defaut 4");
55     MAGIC_PARAMETRE_APPLICATION p5(7,(char*)"-tauxtransfert",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Poid de l'échantillon virtuel place en dehors de la zone de raffinement - Defaut 0.25");
56     MAGIC_PARAMETRE_APPLICATION p6(8,(char*)"-fechantillonnage",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Nombre d'échantillon par entité - Defaut 20");
57     MAGIC_PARAMETRE_APPLICATION p7(9,(char*)"-festimation",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Nombre de cellule dans une direction pour la grille virtuelle - Defaut 10");
58     MAGIC_PARAMETRE_APPLICATION p8(10,(char*)"-constante",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Carte de taille constante");
59     MAGIC_PARAMETRE_APPLICATION p9(11,(char*)"-fichierechan",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Carte de taille par un echantillonnage dans un fichier exterieur");
60     MAGIC_PARAMETRE_APPLICATION p10(12,(char*)"-courbure",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Carte de taille par approximation des courbures");
61     MAGIC_PARAMETRE_APPLICATION p11(13,(char*)"-groupe",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Groupe topologique utilise pour faire le calcul - Defaut 0");
62     MAGIC_PARAMETRE_APPLICATION p12(14,(char*)"-numgeo",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Géométrie du groupe topologique - Defaut 0");
63 francois 469 MAGIC_PARAMETRE_APPLICATION p13(15,(char*)"-constante2",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Carte de taille constante définie par une FEM_SOLUTION");
64     MAGIC_PARAMETRE_APPLICATION p14(16,(char*)"-nx",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Nombre d'intervals sur x - Defaut 10");
65     MAGIC_PARAMETRE_APPLICATION p15(17,(char*)"-ny",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Nombre d'intervals sur y - Defaut 10");
66     MAGIC_PARAMETRE_APPLICATION p16(18,(char*)"-nz",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Nombre d'intervals sur z - Defaut 10");
67 francois 523 MAGIC_PARAMETRE_APPLICATION p19(19,(char*)"-courbure2",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Carte de taille par approximation des courbures définie par une FEM_SOLUTION");
68     MAGIC_PARAMETRE_APPLICATION p18(20,(char*)"-fichierechan2",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Carte de taille par un echantillonnage dans un fichier exterieur définie par une FEM_SOLUTION");
69 sattarpa 545 MAGIC_PARAMETRE_APPLICATION p20(21,(char*)"-constante2mai",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Carte de taille constante définie par une FEM_SOLUTION basé sur maillage");
70     MAGIC_PARAMETRE_APPLICATION p21(22,(char*)"-nummai",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numéro de maillage - Defaut le premier");
71 francois 432 p8.ajouter_dependance(1);p8.ajouter_dependance(2);p8.ajouter_dependance(4);p8.ajouter_dependance(8);p8.ajouter_dependance(9);p8.ajouter_dependance(13);p8.ajouter_dependance(14);
72     p9.ajouter_dependance(1);p9.ajouter_dependance(2);p9.ajouter_dependance(3);p9.ajouter_dependance(4);p9.ajouter_dependance(6);p9.ajouter_dependance(7);p9.ajouter_dependance(8);p9.ajouter_dependance(9);
73 francois 523 p10.ajouter_dependance(1);p10.ajouter_dependance(2);p10.ajouter_dependance(3);p10.ajouter_dependance(4);p10.ajouter_dependance(5);p10.ajouter_dependance(6);p10.ajouter_dependance(7);p10.ajouter_dependance(8);p10.ajouter_dependance(9);p10.ajouter_dependance(13);p10.ajouter_dependance(14);
74     p13.ajouter_dependance(1);p13.ajouter_dependance(2);p13.ajouter_dependance(4);p13.ajouter_dependance(8);p13.ajouter_dependance(14);p13.ajouter_dependance(16);p13.ajouter_dependance(17);p13.ajouter_dependance(18);
75     p18.ajouter_dependance(1);p18.ajouter_dependance(2);p18.ajouter_dependance(3);p18.ajouter_dependance(4);p18.ajouter_dependance(6);p18.ajouter_dependance(7);p18.ajouter_dependance(8);p18.ajouter_dependance(14);p18.ajouter_dependance(16);p18.ajouter_dependance(17);p18.ajouter_dependance(18);
76 francois 1066 p19.ajouter_dependance(1);p19.ajouter_dependance(2);p19.ajouter_dependance(4);p19.ajouter_dependance(5);p19.ajouter_dependance(6);p19.ajouter_dependance(7);p19.ajouter_dependance(8);p19.ajouter_dependance(14);p19.ajouter_dependance(16);p19.ajouter_dependance(17);p19.ajouter_dependance(18);p19.ajouter_dependance(3);
77 sattarpa 545 p20.ajouter_dependance(1);p20.ajouter_dependance(2);p20.ajouter_dependance(4);p20.ajouter_dependance(8);p20.ajouter_dependance(22);p20.ajouter_dependance(16);p20.ajouter_dependance(17);p20.ajouter_dependance(18);
78 francois 432 lst.push_back(p1);
79     lst.push_back(p2);
80     lst.push_back(p3);
81     lst.push_back(p4);
82     lst.push_back(p5);
83     lst.push_back(p6);
84     lst.push_back(p7);
85     lst.push_back(p8);
86     lst.push_back(p9);
87     lst.push_back(p10);
88     lst.push_back(p11);
89     lst.push_back(p12);
90 francois 469 lst.push_back(p13);
91     lst.push_back(p14);
92     lst.push_back(p15);
93     lst.push_back(p16);
94 francois 1053 lst.push_back(p19);
95 couturad 919 lst.push_back(p18);
96 sattarpa 545 lst.push_back(p20);
97     lst.push_back(p21);
98 francois 432 MAGIC_APPLICATION app((char*)"Generation de carte de taille",argc,argv,lst,true,true);
99     if (app.get_erreur()==true) return 0;
100    
101    
102     if (app.get_action()==12)
103 francois 283 {
104 francois 432 char nomfichier[500];
105     char nomfichiersortie[500];
106     char nomfichierpoint[500];
107     double eng;
108     double eps;
109     double ind1,ind2;
110     int fechan,festim;
111     int numgroupe,numgeo;
112 francois 1051 app.recupere_parametre_string(1,nomfichier,(char*)"Fichier entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
113 francois 432 app.recupere_parametre_string(2,nomfichiersortie,(char*)"Fichier de sortie manquant");
114     app.recupere_parametre_string_avec_defaut(3,nomfichierpoint,(char*)"");
115     app.recupere_parametre_double(4,eng,(char*)"Valeur de l'écart nodal global");
116     app.recupere_parametre_double(5,eps,(char*)"Valeur de l'écart entre la géométrie et le maillage");
117     app.recupere_parametre_double_avec_defaut(6,ind1,4.);
118     app.recupere_parametre_double_avec_defaut(7,ind2,0.25);
119     app.recupere_parametre_int_avec_defaut(8,fechan,20);
120     app.recupere_parametre_int_avec_defaut(9,festim,10);
121     app.recupere_parametre_int_avec_defaut(13,numgroupe,0);
122     app.recupere_parametre_int_avec_defaut(14,numgeo,0);
123     if (app.get_erreur()==true) return 0;
124 francois 529 app.affiche((char*)"Generation de carte de taille basee sur la courbure des frontieres V1");
125 francois 432 app.affiche((char*)"Lecture du fichier");
126 francois 283 MG_FILE gest(nomfichier);
127     int nbptctl=0;
128     double *ptctl=NULL;
129     char mess[255];
130 francois 432 if (strlen(nomfichierpoint)>0)
131     {
132     FILE* in=fopen(nomfichierpoint,"rt");
133     if (in!=NULL)
134     {
135     app.affiche((char*)"Lecture du fichier de points de controles");
136     char mess[255];
137     char* res=fgets(mess,255,in);
138     sscanf(mess,"%d",&nbptctl);
139     ptctl=new double[4*nbptctl];
140     for (int i=0;i<nbptctl;i++)
141     {
142 francois 283 char* res=fgets(mess,255,in);
143     sscanf(mess,"%lf %lf %lf %lf",ptctl+4*i,ptctl+4*i+1,ptctl+4*i+2,ptctl+4*i+3);
144 francois 432 }
145     fclose(in);
146     }
147     }
148 francois 283 FCT_GENERATEUR_FRONTIERE carte(gest,eng,eps,ind1,ind2,ptctl,nbptctl);
149 francois 432 app.affiche((char*)"Construction de la carte");
150 francois 283 MG_GROUPE_TOPOLOGIQUE* mggt=NULL;
151     if (numgroupe!=0)
152     {
153     MG_GEOMETRIE* geo=gest.get_mg_geometrieid(numgeo);
154     mggt=geo->get_mg_groupe_topologiqueid(numgroupe);
155     }
156     carte.construit(fechan,festim,mggt);
157 francois 432 app.affiche((char*)"Enregistrement de la carte");
158 francois 283 carte.enregistrer(nomfichiersortie);
159     if (nbptctl!=0) delete [] ptctl;
160 francois 432 app.affiche((char*)"Fin");
161 francois 283 }
162 francois 523 if (app.get_action()==19)
163     {
164     char nomfichier[500];
165     char nomfichiersortie[500];
166     char nomfichierpoint[500];
167     double eng;
168     double eps;
169     double ind1,ind2;
170     int fechan;
171     int numgeo;
172     int nx,ny,nz;
173 francois 1051 app.recupere_parametre_string(1,nomfichier,(char*)"Fichier entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
174 francois 523 app.recupere_parametre_string(2,nomfichiersortie,(char*)"Fichier de sortie manquant");
175     app.recupere_parametre_double(4,eng,(char*)"Valeur de l'écart nodal global");
176     app.recupere_parametre_double(5,eps,(char*)"Valeur de l'écart entre la géométrie et le maillage");
177 francois 1066 app.recupere_parametre_string_avec_defaut(3,nomfichierpoint,(char*)"",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
178 francois 523 app.recupere_parametre_double_avec_defaut(6,ind1,4.);
179     app.recupere_parametre_double_avec_defaut(7,ind2,0.25);
180     app.recupere_parametre_int_avec_defaut(8,fechan,20);
181     app.recupere_parametre_int_avec_defaut(14,numgeo,0);
182     app.recupere_parametre_int_avec_defaut(16,nx,10);
183     app.recupere_parametre_int_avec_defaut(17,ny,10);
184     app.recupere_parametre_int_avec_defaut(18,nz,10);
185     if (app.get_erreur()==true) return 0;
186 francois 529 app.affiche((char*)"Generation de carte de taille basee sur la courbure des frontieres V2");
187 francois 523 app.affiche((char*)"Lecture du fichier");
188     MG_FILE gest(nomfichier);
189     char mess[255];
190     MG_GESTIONNAIRE gest1;
191     char nomsolution[500];
192     sprintf(nomsolution,"%sctt.sol",nomfichiersortie);
193 francois 1066 int nbptctl;double *ptctl;
194     if (strlen(nomfichierpoint)>0)
195     {
196     FILE* in=fopen(nomfichierpoint,"rt");
197     if (in!=NULL)
198     {
199     app.affiche((char*)"Lecture du fichier de points de controles");
200     char mess[255];
201     char* res=fgets(mess,255,in);
202     sscanf(mess,"%d",&nbptctl);
203     ptctl=new double[4*nbptctl];
204     for (int i=0;i<nbptctl;i++)
205     {
206     char* res=fgets(mess,255,in);
207     sscanf(mess,"%lf %lf %lf %lf",ptctl+4*i,ptctl+4*i+1,ptctl+4*i+2,ptctl+4*i+3);
208     }
209     fclose(in);
210     }
211     }
212 francois 523 app.affiche((char*)"Construction de la carte");
213     MG_GEOMETRIE *geo;
214     if (numgeo==0) geo=gest.get_mg_geometrie(0); else geo=gest.get_mg_geometrieid(numgeo);
215 francois 1067 FCT_TAILLE_FEM_SOLUTION_GENERATEUR_ECHANTILLON_FRONTIERE carte(&gest1,geo,eng,fechan,nx,ny,nz,nomsolution,eps,ind1,ind2,ptctl,nbptctl);
216     carte.active_affichage(app.affiche);
217     carte.construit();
218 francois 1066 if (nbptctl!=0) delete [] ptctl;
219 francois 523 app.affiche((char*)"Enregistrement de la carte");
220     carte.enregistrer(nomfichiersortie);
221     app.affiche((char*)"Fin");
222     }
223 francois 469 if (app.get_action()==10)
224 francois 283 {
225 francois 432 char nomfichier[500];
226     char nomfichiersortie[500];
227     double eng;
228     int fechan,festim;
229     int numgroupe,numgeo;
230 francois 1051 app.recupere_parametre_string(1,nomfichier,(char*)"Fichier entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
231 francois 432 app.recupere_parametre_string(2,nomfichiersortie,(char*)"Fichier de sortie manquant");
232     app.recupere_parametre_double(4,eng,(char*)"Valeur de l'écart nodal global");
233     app.recupere_parametre_int_avec_defaut(8,fechan,20);
234     app.recupere_parametre_int_avec_defaut(9,festim,10);
235     app.recupere_parametre_int_avec_defaut(13,numgroupe,0);
236     app.recupere_parametre_int_avec_defaut(14,numgeo,0);
237     if (app.get_erreur()==true) return 0;
238 francois 529 app.affiche((char*)"Generation de carte de taille constante V1");
239 francois 432 app.affiche((char*)"Lecture du fichier");
240 francois 283 MG_FILE gest(nomfichier);
241     FCT_GENERATEUR_CONSTANTE carte(gest,eng);
242 francois 432 app.affiche((char*)"Construction de la carte");
243 francois 283 MG_GROUPE_TOPOLOGIQUE* mggt=NULL;
244     if (numgroupe!=0)
245     {
246     MG_GEOMETRIE* geo=gest.get_mg_geometrieid(numgeo);
247     mggt=geo->get_mg_groupe_topologiqueid(numgroupe);
248     }
249     carte.construit(fechan,festim,mggt);
250 francois 432 app.affiche((char*)"Enregistrement de la carte");
251 francois 283 carte.enregistrer(nomfichiersortie);
252 francois 432 app.affiche((char*)"Fin");
253 francois 283 }
254 francois 432 if (app.get_action()==11)
255 francois 283 {
256 francois 432 char nomfichier[500];
257     char nomfichiersortie[500];
258     char nomfichierpoint[500];
259     double eng;
260     int fechan,festim;
261     double ind1,ind2;
262 francois 1051 app.recupere_parametre_string(1,nomfichier,(char*)"Fichier entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
263 francois 432 app.recupere_parametre_string(2,nomfichiersortie,(char*)"Fichier de sortie manquant");
264 francois 1051 app.recupere_parametre_string(3,nomfichierpoint,(char*)"Fichier de points manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
265 francois 432 app.recupere_parametre_double(4,eng,(char*)"Valeur de l'écart nodal global");
266     app.recupere_parametre_double_avec_defaut(6,ind1,4.);
267     app.recupere_parametre_double_avec_defaut(7,ind2,0.25);
268     app.recupere_parametre_int_avec_defaut(8,fechan,20);
269     app.recupere_parametre_int_avec_defaut(9,festim,10);
270     if (app.get_erreur()==true) return 0;
271     app.affiche((char*)"Generation de carte de taille");
272 francois 529 app.affiche((char*)" a partir du fichier d'estimation V1");
273 francois 394 FCT_GENERATEUR_FICHIER carte(nomfichierpoint,eng,ind1,ind2);
274 francois 432 app.affiche((char*)"Construction de la carte");
275 francois 283 carte.construit(fechan,festim);
276 francois 432 app.affiche((char*)"Enregistrement de la carte");
277 francois 283 carte.enregistrer(nomfichiersortie);
278 francois 432 app.affiche((char*)"Fin");
279 francois 283 }
280 francois 523 if (app.get_action()==20)
281     {
282     char nomfichier[500];
283     char nomfichiersortie[500];
284     char nomfichierpoint[500];
285     double eng;
286     int fechan,nx,ny,nz,numgeo;
287     double ind1,ind2;
288 francois 1051 app.recupere_parametre_string(1,nomfichier,(char*)"Fichier entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
289 francois 523 app.recupere_parametre_string(2,nomfichiersortie,(char*)"Fichier de sortie manquant");
290 francois 1051 app.recupere_parametre_string(3,nomfichierpoint,(char*)"Fichier de points manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
291 francois 523 app.recupere_parametre_double(4,eng,(char*)"Valeur de l'écart nodal global");
292     app.recupere_parametre_double_avec_defaut(6,ind1,4.);
293     app.recupere_parametre_double_avec_defaut(7,ind2,0.25);
294     app.recupere_parametre_int_avec_defaut(8,fechan,20);
295     app.recupere_parametre_int_avec_defaut(14,numgeo,0);
296     app.recupere_parametre_int_avec_defaut(16,nx,10);
297     app.recupere_parametre_int_avec_defaut(17,ny,10);
298     app.recupere_parametre_int_avec_defaut(18,nz,10);
299     if (app.get_erreur()==true) return 0;
300     app.affiche((char*)"Generation de carte de taille");
301 francois 529 app.affiche((char*)" a partir du fichier d'estimation V2");
302 francois 523 app.affiche((char*)"Lecture du fichier");
303     MG_FILE gest(nomfichier);
304     MG_GESTIONNAIRE gest1;
305     char nomsolution[500];
306     sprintf(nomsolution,"%sctt.sol",nomfichiersortie);
307     MG_GEOMETRIE *geo;
308     if (numgeo==0) geo=gest.get_mg_geometrie(0); else geo=gest.get_mg_geometrieid(numgeo);
309     FCT_TAILLE_FEM_SOLUTION_GENERATEUR_FICHIER carte(&gest1,geo,eng,fechan,nx,ny,nz,nomsolution,nomfichierpoint,ind1,ind2);
310     app.affiche((char*)"Construction de la carte");
311     carte.construit();
312     app.affiche((char*)"Enregistrement de la carte");
313     carte.enregistrer(nomfichiersortie);
314     app.affiche((char*)"Fin");
315     }
316 francois 469 if (app.get_action()==15)
317     {
318     char nomfichier[500];
319     char nomfichiersortie[500];
320     double eng;
321     int fechan,nx,ny,nz;
322     int numgeo;
323 francois 1051 app.recupere_parametre_string(1,nomfichier,(char*)"Fichier entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
324 francois 469 app.recupere_parametre_string(2,nomfichiersortie,(char*)"Fichier de sortie manquant");
325     app.recupere_parametre_double(4,eng,(char*)"Valeur de l'écart nodal global");
326     app.recupere_parametre_int_avec_defaut(8,fechan,20);
327     app.recupere_parametre_int_avec_defaut(14,numgeo,0);
328     app.recupere_parametre_int_avec_defaut(16,nx,10);
329     app.recupere_parametre_int_avec_defaut(17,ny,10);
330     app.recupere_parametre_int_avec_defaut(18,nz,10);
331     if (app.get_erreur()==true) return 0;
332 francois 529 app.affiche((char*)"Generation de carte de taille constante V2");
333 francois 469 app.affiche((char*)"Lecture du fichier");
334     MG_FILE gest(nomfichier);
335     MG_GEOMETRIE* geo;
336     if (numgeo==0) geo=gest.get_mg_geometrie(0); else geo=gest.get_mg_geometrieid(numgeo);
337     MG_GESTIONNAIRE gest1;
338 francois 523 char nomsolution[500];
339     sprintf(nomsolution,"%sctt.sol",nomfichiersortie);
340 francois 469 app.affiche((char*)"Construction de la carte");
341 francois 523 FCT_TAILLE_FEM_SOLUTION_GENERATEUR_CONSTANT carte(&gest1,geo,eng,fechan,nx,ny,nz,nomsolution);
342     carte.construit();
343 francois 469 app.affiche((char*)"Enregistrement de la carte");
344     carte.enregistrer(nomfichiersortie);
345     app.affiche((char*)"Fin");
346     }
347 sattarpa 545 if (app.get_action()==21)
348     {
349     char nomfichier[500];
350     char nomfichiersortie[500];
351     double eng;
352     int fechan,nx,ny,nz;
353     int nummai;
354 francois 1051 app.recupere_parametre_string(1,nomfichier,(char*)"Fichier entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
355 sattarpa 545 app.recupere_parametre_string(2,nomfichiersortie,(char*)"Fichier de sortie manquant");
356     app.recupere_parametre_double(4,eng,(char*)"Valeur de l'écart nodal global");
357     app.recupere_parametre_int_avec_defaut(8,fechan,20);
358     app.recupere_parametre_int_avec_defaut(22,nummai,0);
359     app.recupere_parametre_int_avec_defaut(16,nx,10);
360     app.recupere_parametre_int_avec_defaut(17,ny,10);
361     app.recupere_parametre_int_avec_defaut(18,nz,10);
362     if (app.get_erreur()==true) return 0;
363     app.affiche((char*)"Generation de carte de taille constante V2");
364     app.affiche((char*)"Lecture du fichier");
365     MG_FILE gest(nomfichier);
366     MG_MAILLAGE* mai;
367 sattarpa 588 if (nummai==0) mai=gest.get_mg_maillage(0); else mai=gest.get_mg_maillageid(nummai);
368 sattarpa 545 MG_GESTIONNAIRE gest1;
369     char nomsolution[500];
370     sprintf(nomsolution,"%sctt.sol",nomfichiersortie);
371     app.affiche((char*)"Construction de la carte");
372     FCT_TAILLE_FEM_SOLUTION_GENERATEUR_CONSTANT carte(&gest1,mai,eng,fechan,nx,ny,nz,nomsolution);
373     carte.construit();
374     app.affiche((char*)"Enregistrement de la carte");
375     carte.enregistrer(nomfichiersortie);
376     app.affiche((char*)"Fin");
377     }
378 francois 283
379     return 0;
380     }
381    
382    
383    
384     #pragma package(smart_init)