1 |
francois |
1157 |
//####//------------------------------------------------------------ |
2 |
|
|
//####//------------------------------------------------------------ |
3 |
|
|
//####// MAGiC |
4 |
|
|
//####// Jean Christophe Cuilliere et Vincent FRANCOIS |
5 |
|
|
//####// Departement de Genie Mecanique - UQTR |
6 |
|
|
//####//------------------------------------------------------------ |
7 |
|
|
//####// MAGIC est un projet de recherche de l equipe ERICCA |
8 |
|
|
//####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres |
9 |
|
|
//####// http://www.uqtr.ca/ericca |
10 |
|
|
//####// http://www.uqtr.ca/ |
11 |
|
|
//####//------------------------------------------------------------ |
12 |
|
|
//####//------------------------------------------------------------ |
13 |
|
|
//####// |
14 |
|
|
//####// main4.cpp |
15 |
|
|
//####// |
16 |
|
|
//####//------------------------------------------------------------ |
17 |
|
|
//####//------------------------------------------------------------ |
18 |
|
|
//####// COPYRIGHT 2000-2024 |
19 |
|
|
//####// jeu 13 jun 2024 11:57:20 EDT |
20 |
|
|
//####//------------------------------------------------------------ |
21 |
|
|
//####//------------------------------------------------------------ |
22 |
chebbi |
463 |
#include "gestionversion.h" |
23 |
|
|
#include "magic_application.h" |
24 |
|
|
#include <string.h> |
25 |
|
|
#include "mg_file.h" |
26 |
|
|
#include "mg_maillage.h" |
27 |
|
|
#include "fem_maillage.h" |
28 |
|
|
#include "mg_gestionnaire.h" |
29 |
|
|
#include "mailleur3d_structure.h" |
30 |
francois |
1053 |
#include "mailleur2d_structure.h" |
31 |
chebbi |
463 |
|
32 |
francois |
751 |
|
33 |
mejri |
750 |
double fx(double x) |
34 |
|
|
{ |
35 |
mejri |
892 |
double eq=(1.5*x)+0.3; |
36 |
mejri |
750 |
return eq; |
37 |
|
|
} |
38 |
chebbi |
463 |
|
39 |
mejri |
750 |
double fy(double y) |
40 |
|
|
{ |
41 |
mejri |
892 |
double eq1=(0.7*y)+0.1; |
42 |
mejri |
750 |
return eq1; |
43 |
|
|
} |
44 |
|
|
|
45 |
|
|
double fz(double z) |
46 |
|
|
{ |
47 |
mejri |
892 |
double eq2=(0.1*z)+0.1; |
48 |
mejri |
750 |
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 |
1053 |
MAGIC_PARAMETRE_APPLICATION p14(15,(char*)"-plan",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Mailleur plan dans le plan x,y");lst.push_back(p14); |
70 |
francois |
558 |
MAGIC_APPLICATION app((char*)"Mailleur structure",argc,argv,lst,false,true); |
71 |
chebbi |
463 |
if (app.get_erreur()==true) return 0; |
72 |
|
|
char fichiersortie[500]; |
73 |
|
|
double xmin; |
74 |
|
|
double xmax; |
75 |
|
|
double ymin; |
76 |
|
|
double ymax; |
77 |
|
|
double zmin; |
78 |
|
|
double zmax; |
79 |
|
|
int n; |
80 |
|
|
int m; |
81 |
|
|
int k; |
82 |
francois |
835 |
int fonction; |
83 |
mejri |
750 |
bool geo,densitevariable; |
84 |
francois |
591 |
double unite; |
85 |
francois |
1053 |
bool plan; |
86 |
|
|
app.recupere_parametre_bool_avec_defaut(15,plan,false); |
87 |
chebbi |
463 |
app.recupere_parametre_string(1,fichiersortie,(char*)"Fichier de sortie manquant"); |
88 |
|
|
app.recupere_parametre_double(2,xmin,(char*)"Valeur de xmin manquante"); |
89 |
|
|
app.recupere_parametre_double(3,xmax,(char*)"Valeur de xmax manquante"); |
90 |
|
|
app.recupere_parametre_double(4,ymin,(char*)"Valeur de ymin manquante"); |
91 |
|
|
app.recupere_parametre_double(5,ymax,(char*)"Valeur de ymax manquante"); |
92 |
francois |
1053 |
if (!plan) app.recupere_parametre_double(6,zmin,(char*)"Valeur de zmin manquante"); |
93 |
|
|
if (!plan) app.recupere_parametre_double(7,zmax,(char*)"Valeur de zmax manquante"); |
94 |
chebbi |
463 |
app.recupere_parametre_int(8,n,(char*)"Nombre d'intervalles sur x manquant"); |
95 |
|
|
app.recupere_parametre_int(9,m,(char*)"Nombre d'intervalles sur y manquant"); |
96 |
francois |
1053 |
if (!plan) app.recupere_parametre_int(10,k,(char*)"Nombre d'intervalles sur z manquant"); |
97 |
francois |
576 |
app.recupere_parametre_bool_avec_defaut(11,geo,false); |
98 |
francois |
591 |
app.recupere_parametre_double_avec_defaut(12,unite,1.); |
99 |
mejri |
750 |
app.recupere_parametre_bool_avec_defaut(13,densitevariable,false); |
100 |
francois |
835 |
app.recupere_parametre_int_avec_defaut(14,fonction,0); |
101 |
mejri |
750 |
if (app.get_erreur()==true) return 0; |
102 |
chebbi |
463 |
MG_GESTIONNAIRE gest; |
103 |
mejri |
750 |
if (densitevariable==false) |
104 |
|
|
{ |
105 |
francois |
1053 |
if (!plan) |
106 |
|
|
{ |
107 |
|
|
MAILLEUR3D_STRUCTURE mgstruct(xmin,xmax,ymin,ymax,zmin,zmax,n,m,k,&gest,geo,unite); |
108 |
|
|
mgstruct.active_affichage(app.affiche); |
109 |
|
|
mgstruct.ajouter_fonction_geometrie(fonction); |
110 |
|
|
mgstruct.maille(); |
111 |
|
|
} |
112 |
|
|
else |
113 |
|
|
{ |
114 |
|
|
MAILLEUR2D_STRUCTURE mgstruct(xmin,xmax,ymin,ymax,n,m,&gest,geo,unite); |
115 |
|
|
mgstruct.active_affichage(app.affiche); |
116 |
|
|
mgstruct.ajouter_fonction_geometrie(fonction); |
117 |
|
|
mgstruct.maille(); |
118 |
|
|
} |
119 |
mejri |
750 |
} |
120 |
|
|
else |
121 |
|
|
{ |
122 |
francois |
1053 |
if (!plan) |
123 |
|
|
{ |
124 |
|
|
MAILLEUR3D_STRUCTURE mgstruct(xmin,xmax,ymin,ymax,zmin,zmax,fx,fy,fz,&gest,geo,unite); |
125 |
|
|
mgstruct.active_affichage(app.affiche); |
126 |
|
|
mgstruct.ajouter_fonction_geometrie(fonction); |
127 |
|
|
mgstruct.maille(); |
128 |
|
|
} |
129 |
|
|
else |
130 |
|
|
{ |
131 |
|
|
MAILLEUR2D_STRUCTURE mgstruct(xmin,xmax,ymin,ymax,fx,fy,&gest,geo,unite); |
132 |
|
|
mgstruct.active_affichage(app.affiche); |
133 |
|
|
mgstruct.ajouter_fonction_geometrie(fonction); |
134 |
|
|
mgstruct.maille(); |
135 |
|
|
} |
136 |
mejri |
750 |
} |
137 |
|
|
|
138 |
chebbi |
463 |
gest.enregistrer(fichiersortie); |
139 |
|
|
app.affiche((char*)"Fin"); |
140 |
|
|
return 0; |
141 |
|
|
} |
142 |
|
|
|
143 |
|
|
|
144 |
|
|
|
145 |
|
|
|