1 |
chebbi |
463 |
//------------------------------------------------------------ |
2 |
|
|
//------------------------------------------------------------ |
3 |
|
|
// MAGiC |
4 |
|
|
// Jean Christophe Cuilli�e et Vincent FRANCOIS |
5 |
|
|
// D�artement de G�ie M�anique - UQTR |
6 |
|
|
//------------------------------------------------------------ |
7 |
|
|
// Le projet MAGIC est un projet de recherche du d�artement |
8 |
|
|
// de g�ie m�anique de l'Universit�du Qu�ec � |
9 |
|
|
// Trois Rivi�es |
10 |
|
|
// Les librairies ne peuvent �re utilis�s 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 |
|
|
#include "gestionversion.h" |
24 |
|
|
#include "magic_application.h" |
25 |
|
|
#include <string.h> |
26 |
|
|
#include "mg_file.h" |
27 |
|
|
#include "mg_maillage.h" |
28 |
|
|
#include "fem_maillage.h" |
29 |
|
|
#include "mg_gestionnaire.h" |
30 |
|
|
#include "mailleur3d_structure.h" |
31 |
|
|
|
32 |
francois |
751 |
|
33 |
mejri |
750 |
double fx(double x) |
34 |
|
|
{ |
35 |
|
|
double eq=(4*x)+0.5; |
36 |
|
|
return eq; |
37 |
|
|
} |
38 |
chebbi |
463 |
|
39 |
mejri |
750 |
double fy(double y) |
40 |
|
|
{ |
41 |
|
|
double eq1=(0.8*y)+0.1; |
42 |
|
|
return eq1; |
43 |
|
|
} |
44 |
|
|
|
45 |
|
|
double fz(double z) |
46 |
|
|
{ |
47 |
|
|
double eq2=(0.2*z)+0.1; |
48 |
|
|
return eq2; |
49 |
|
|
} |
50 |
|
|
|
51 |
|
|
|
52 |
|
|
|
53 |
chebbi |
463 |
int main(int argc,char **argv) |
54 |
|
|
{ |
55 |
|
|
std::vector<MAGIC_PARAMETRE_APPLICATION> lst; |
56 |
|
|
MAGIC_PARAMETRE_APPLICATION p1(2,(char*)"-xmin",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"x du premier point de l'enveloppe");lst.push_back(p1); |
57 |
|
|
MAGIC_PARAMETRE_APPLICATION p2(3,(char*)"-xmax",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"x du deusieme point de l'enveloppe");lst.push_back(p2); |
58 |
|
|
MAGIC_PARAMETRE_APPLICATION p3(4,(char*)"-ymin",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"y du premier point de l'enveloppe");lst.push_back(p3); |
59 |
|
|
MAGIC_PARAMETRE_APPLICATION p4(5,(char*)"-ymax",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"y du deusieme point de l'enveloppe");lst.push_back(p4); |
60 |
|
|
MAGIC_PARAMETRE_APPLICATION p5(6,(char*)"-zmin",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"z du premier point de l'enveloppe");lst.push_back(p5); |
61 |
|
|
MAGIC_PARAMETRE_APPLICATION p6(7,(char*)"-zmax",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"z du deusieme point de l'enveloppe");lst.push_back(p6); |
62 |
|
|
MAGIC_PARAMETRE_APPLICATION p7(8,(char*)"-n",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"nombre d'intervalles sur x");lst.push_back(p7); |
63 |
|
|
MAGIC_PARAMETRE_APPLICATION p8(9,(char*)"-m",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"nombre d'intervalles sur y");lst.push_back(p8); |
64 |
|
|
MAGIC_PARAMETRE_APPLICATION p9(10,(char*)"-k",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"nombre d'intervalles sur z");lst.push_back(p9); |
65 |
francois |
576 |
MAGIC_PARAMETRE_APPLICATION p10(11,(char*)"-geo",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"ajouter une géomtrie virtuelle");lst.push_back(p10); |
66 |
francois |
591 |
MAGIC_PARAMETRE_APPLICATION p11(12,(char*)"-unite",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Facteur multiplication pour exprimer les unités en m");lst.push_back(p11); |
67 |
mejri |
750 |
MAGIC_PARAMETRE_APPLICATION p12(13,(char*)"-densitevariable",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"choix de la densité du maillage structuré");lst.push_back(p12); |
68 |
francois |
835 |
MAGIC_PARAMETRE_APPLICATION p13(14,(char*)"-fonction",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Nombre de fonction geometrique a creer");lst.push_back(p13); |
69 |
francois |
558 |
MAGIC_APPLICATION app((char*)"Mailleur structure",argc,argv,lst,false,true); |
70 |
chebbi |
463 |
if (app.get_erreur()==true) return 0; |
71 |
|
|
char fichiersortie[500]; |
72 |
|
|
double xmin; |
73 |
|
|
double xmax; |
74 |
|
|
double ymin; |
75 |
|
|
double ymax; |
76 |
|
|
double zmin; |
77 |
|
|
double zmax; |
78 |
|
|
int n; |
79 |
|
|
int m; |
80 |
|
|
int k; |
81 |
francois |
835 |
int fonction; |
82 |
mejri |
750 |
bool geo,densitevariable; |
83 |
francois |
591 |
double unite; |
84 |
chebbi |
463 |
app.recupere_parametre_string(1,fichiersortie,(char*)"Fichier de sortie manquant"); |
85 |
|
|
app.recupere_parametre_double(2,xmin,(char*)"Valeur de xmin manquante"); |
86 |
|
|
app.recupere_parametre_double(3,xmax,(char*)"Valeur de xmax manquante"); |
87 |
|
|
app.recupere_parametre_double(4,ymin,(char*)"Valeur de ymin manquante"); |
88 |
|
|
app.recupere_parametre_double(5,ymax,(char*)"Valeur de ymax manquante"); |
89 |
|
|
app.recupere_parametre_double(6,zmin,(char*)"Valeur de zmin manquante"); |
90 |
|
|
app.recupere_parametre_double(7,zmax,(char*)"Valeur de zmax manquante"); |
91 |
|
|
app.recupere_parametre_int(8,n,(char*)"Nombre d'intervalles sur x manquant"); |
92 |
|
|
app.recupere_parametre_int(9,m,(char*)"Nombre d'intervalles sur y manquant"); |
93 |
|
|
app.recupere_parametre_int(10,k,(char*)"Nombre d'intervalles sur z manquant"); |
94 |
francois |
576 |
app.recupere_parametre_bool_avec_defaut(11,geo,false); |
95 |
francois |
591 |
app.recupere_parametre_double_avec_defaut(12,unite,1.); |
96 |
mejri |
750 |
app.recupere_parametre_bool_avec_defaut(13,densitevariable,false); |
97 |
francois |
835 |
app.recupere_parametre_int_avec_defaut(14,fonction,0); |
98 |
mejri |
750 |
if (app.get_erreur()==true) return 0; |
99 |
chebbi |
463 |
MG_GESTIONNAIRE gest; |
100 |
mejri |
750 |
if (densitevariable==false) |
101 |
|
|
{ |
102 |
francois |
591 |
MAILLEUR3D_STRUCTURE mgstruct(xmin,xmax,ymin,ymax,zmin,zmax,n,m,k,&gest,geo,unite); |
103 |
chebbi |
463 |
mgstruct.active_affichage(app.affiche); |
104 |
francois |
835 |
mgstruct.ajouter_fonction_geometrie(fonction); |
105 |
chebbi |
463 |
mgstruct.maille(); |
106 |
mejri |
750 |
} |
107 |
|
|
else |
108 |
|
|
{ |
109 |
|
|
MAILLEUR3D_STRUCTURE mgstruct(xmin,xmax,ymin,ymax,zmin,zmax,fx,fy,fz,&gest,geo,unite); |
110 |
|
|
mgstruct.active_affichage(app.affiche); |
111 |
francois |
835 |
mgstruct.ajouter_fonction_geometrie(fonction); |
112 |
mejri |
750 |
mgstruct.maille(); |
113 |
|
|
} |
114 |
|
|
|
115 |
chebbi |
463 |
gest.enregistrer(fichiersortie); |
116 |
|
|
app.affiche((char*)"Fin"); |
117 |
|
|
return 0; |
118 |
|
|
} |
119 |
|
|
|
120 |
|
|
|
121 |
|
|
|
122 |
|
|
|