ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/mailleur/src/main4.cpp
Revision: 1053
Committed: Fri Oct 16 16:17:23 2020 UTC (4 years, 10 months ago) by francois
File size: 6049 byte(s)
Log Message:
mailleur2d_structure de quadrangle

File Contents

# User Rev Content
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 francois 1053 #include "mailleur2d_structure.h"
32 chebbi 463
33 francois 751
34 mejri 750 double fx(double x)
35     {
36 mejri 892 double eq=(1.5*x)+0.3;
37 mejri 750 return eq;
38     }
39 chebbi 463
40 mejri 750 double fy(double y)
41     {
42 mejri 892 double eq1=(0.7*y)+0.1;
43 mejri 750 return eq1;
44     }
45    
46     double fz(double z)
47     {
48 mejri 892 double eq2=(0.1*z)+0.1;
49 mejri 750 return eq2;
50     }
51    
52    
53    
54 chebbi 463 int main(int argc,char **argv)
55     {
56     std::vector<MAGIC_PARAMETRE_APPLICATION> lst;
57     MAGIC_PARAMETRE_APPLICATION p1(2,(char*)"-xmin",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"x du premier point de l'enveloppe");lst.push_back(p1);
58     MAGIC_PARAMETRE_APPLICATION p2(3,(char*)"-xmax",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"x du deusieme point de l'enveloppe");lst.push_back(p2);
59     MAGIC_PARAMETRE_APPLICATION p3(4,(char*)"-ymin",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"y du premier point de l'enveloppe");lst.push_back(p3);
60     MAGIC_PARAMETRE_APPLICATION p4(5,(char*)"-ymax",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"y du deusieme point de l'enveloppe");lst.push_back(p4);
61     MAGIC_PARAMETRE_APPLICATION p5(6,(char*)"-zmin",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"z du premier point de l'enveloppe");lst.push_back(p5);
62     MAGIC_PARAMETRE_APPLICATION p6(7,(char*)"-zmax",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"z du deusieme point de l'enveloppe");lst.push_back(p6);
63     MAGIC_PARAMETRE_APPLICATION p7(8,(char*)"-n",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"nombre d'intervalles sur x");lst.push_back(p7);
64     MAGIC_PARAMETRE_APPLICATION p8(9,(char*)"-m",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"nombre d'intervalles sur y");lst.push_back(p8);
65     MAGIC_PARAMETRE_APPLICATION p9(10,(char*)"-k",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"nombre d'intervalles sur z");lst.push_back(p9);
66 francois 576 MAGIC_PARAMETRE_APPLICATION p10(11,(char*)"-geo",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"ajouter une géomtrie virtuelle");lst.push_back(p10);
67 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);
68 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);
69 francois 835 MAGIC_PARAMETRE_APPLICATION p13(14,(char*)"-fonction",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Nombre de fonction geometrique a creer");lst.push_back(p13);
70 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);
71 francois 558 MAGIC_APPLICATION app((char*)"Mailleur structure",argc,argv,lst,false,true);
72 chebbi 463 if (app.get_erreur()==true) return 0;
73     char fichiersortie[500];
74     double xmin;
75     double xmax;
76     double ymin;
77     double ymax;
78     double zmin;
79     double zmax;
80     int n;
81     int m;
82     int k;
83 francois 835 int fonction;
84 mejri 750 bool geo,densitevariable;
85 francois 591 double unite;
86 francois 1053 bool plan;
87     app.recupere_parametre_bool_avec_defaut(15,plan,false);
88 chebbi 463 app.recupere_parametre_string(1,fichiersortie,(char*)"Fichier de sortie manquant");
89     app.recupere_parametre_double(2,xmin,(char*)"Valeur de xmin manquante");
90     app.recupere_parametre_double(3,xmax,(char*)"Valeur de xmax manquante");
91     app.recupere_parametre_double(4,ymin,(char*)"Valeur de ymin manquante");
92     app.recupere_parametre_double(5,ymax,(char*)"Valeur de ymax manquante");
93 francois 1053 if (!plan) app.recupere_parametre_double(6,zmin,(char*)"Valeur de zmin manquante");
94     if (!plan) app.recupere_parametre_double(7,zmax,(char*)"Valeur de zmax manquante");
95 chebbi 463 app.recupere_parametre_int(8,n,(char*)"Nombre d'intervalles sur x manquant");
96     app.recupere_parametre_int(9,m,(char*)"Nombre d'intervalles sur y manquant");
97 francois 1053 if (!plan) app.recupere_parametre_int(10,k,(char*)"Nombre d'intervalles sur z manquant");
98 francois 576 app.recupere_parametre_bool_avec_defaut(11,geo,false);
99 francois 591 app.recupere_parametre_double_avec_defaut(12,unite,1.);
100 mejri 750 app.recupere_parametre_bool_avec_defaut(13,densitevariable,false);
101 francois 835 app.recupere_parametre_int_avec_defaut(14,fonction,0);
102 mejri 750 if (app.get_erreur()==true) return 0;
103 chebbi 463 MG_GESTIONNAIRE gest;
104 mejri 750 if (densitevariable==false)
105     {
106 francois 1053 if (!plan)
107     {
108     MAILLEUR3D_STRUCTURE mgstruct(xmin,xmax,ymin,ymax,zmin,zmax,n,m,k,&gest,geo,unite);
109     mgstruct.active_affichage(app.affiche);
110     mgstruct.ajouter_fonction_geometrie(fonction);
111     mgstruct.maille();
112     }
113     else
114     {
115     MAILLEUR2D_STRUCTURE mgstruct(xmin,xmax,ymin,ymax,n,m,&gest,geo,unite);
116     mgstruct.active_affichage(app.affiche);
117     mgstruct.ajouter_fonction_geometrie(fonction);
118     mgstruct.maille();
119     }
120 mejri 750 }
121     else
122     {
123 francois 1053 if (!plan)
124     {
125     MAILLEUR3D_STRUCTURE mgstruct(xmin,xmax,ymin,ymax,zmin,zmax,fx,fy,fz,&gest,geo,unite);
126     mgstruct.active_affichage(app.affiche);
127     mgstruct.ajouter_fonction_geometrie(fonction);
128     mgstruct.maille();
129     }
130     else
131     {
132     MAILLEUR2D_STRUCTURE mgstruct(xmin,xmax,ymin,ymax,fx,fy,&gest,geo,unite);
133     mgstruct.active_affichage(app.affiche);
134     mgstruct.ajouter_fonction_geometrie(fonction);
135     mgstruct.maille();
136     }
137 mejri 750 }
138    
139 chebbi 463 gest.enregistrer(fichiersortie);
140     app.affiche((char*)"Fin");
141     return 0;
142     }
143    
144    
145    
146