ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/mvtn_optis/src/main.cpp
Revision: 375
Committed: Fri Nov 9 15:27:14 2012 UTC (12 years, 9 months ago) by francois
File size: 3905 byte(s)
Log Message:
Solution FEM sont vectorielles et tensorielles + affichage des options de compilations dans les exe

File Contents

# User Rev Content
1 gervaislavoie 332 //------------------------------------------------------------
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 "mgopt_mvt_normal.h"
35     #include <string.h>
36     #include "mg_export.h"
37     //---------------------------------------------------------------------------
38    
39     void affiche(char* message)
40     {
41     #ifdef WINDOWS_VERSION
42     Form1->Memo1->Lines->Add(message);
43     #else
44     std::cout << message << std::endl;
45     #endif
46     }
47    
48     void minuscule(char * mess)
49     {
50     int nb=strlen(mess);
51     for (int i=0;i<nb;i++)
52     mess[i]=tolower(mess[i]);
53     }
54    
55     #ifdef WINDOWS_VERSION
56     int amain(int argc,char **argv)
57     #else
58     int main(int argc,char **argv)
59     #endif
60     {
61     char nomfichier[500];
62     char fichierout[500];
63    
64     double dpl_max=0.; // Déplacement maximal des noeuds du maillage (en mm)
65     double angle_min=0.; // Angle maximal entre deux triangles voisins (en radians)
66     int nbpas=0.;
67    
68     int deplacement=0;
69     int visualisation=0;
70     int nummai=0;
71     int facteur=0; // Facteur de grossissement des segments tracés pour visualiser les normales
72    
73     fichierout[0]=0;
74     char mess[3000];
75    
76     for (int i=0;i<argc;i++)
77     {
78     if (strcmp(argv[i],"-file")==0) strcpy(nomfichier,argv[i+1]);
79     if (strcmp(argv[i],"-fileout")==0) strcpy(fichierout,argv[i+1]);
80     if (strcmp(argv[i],"-mesh")==0) nummai=atol(argv[i+1]);
81     if (strcmp(argv[i],"-dpl_max")==0) dpl_max=atof(argv[i+1]);
82     if (strcmp(argv[i],"-angle_min")==0) angle_min=atof(argv[i+1]);
83     if (strcmp(argv[i],"-nbpas")==0) nbpas=atol(argv[i+1]);
84     if (strcmp(argv[i],"-deplacement")==0) deplacement=1;
85     if (strcmp(argv[i],"-visualisation")==0) {visualisation=1;facteur=atol(argv[i+1]);}; // Pour visualiser les normales à une géométrie
86     }
87 francois 375 GESTIONVERSION v;
88     char version[500];
89     v.print(version);
90     affiche(version);
91 gervaislavoie 332 MG_FILE gest(nomfichier);
92     MG_MAILLAGE* mai=gest.get_mg_maillageid(nummai);
93     unsigned long id=mai->get_id();
94    
95     char *p;
96     char extension[50];
97     sprintf(mess," Fichier : %s",nomfichier);
98     affiche(mess);
99     p=strrchr(nomfichier,'.');
100     strcpy(extension,p);
101     minuscule(extension);
102     char chaine[3000];
103     for (int i=0;i<3000;i++) chaine[i]=0;
104     strncpy(chaine,nomfichier,p-nomfichier);
105     char chaine2[3000];
106     sprintf(chaine2,"%s%lu",chaine,id);
107     std::string namefic=chaine2;
108    
109     if (deplacement==1)
110     {
111     sprintf(mess," Déplacement normal");
112     affiche(mess);
113     MGOPT_MVT_NORMAL opt(mai);
114     opt.deplacement_normal(dpl_max,angle_min,nbpas);
115     }
116    
117     if (visualisation==1)
118     {
119     sprintf(mess," Visualisation des normales");
120     affiche(mess);
121     MGOPT_MVT_NORMAL opt(mai);
122     opt.visualisation(facteur);
123     }
124    
125     if (fichierout[0]==0) strcpy(fichierout,nomfichier);
126     gest.enregistrer(fichierout);
127     MG_EXPORT exp;
128     exp.gmsh(mai,namefic);
129    
130     sprintf(mess,"Fin");
131     affiche(mess);
132    
133     return 0;
134     }
135    
136    
137    
138     #pragma package(smart_init)