ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/optimisation/src/opt_triangle.h
Revision: 398
Committed: Fri Apr 26 21:01:59 2013 UTC (12 years ago) by gervaislavoie
Content type: text/plain
File size: 3788 byte(s)
Log Message:
Deplacement des noeuds obtenus en minimisant une fonction par l'algorithme du gradient.
Cas Matlab fonctionne.
Reste certains problemes pour le tube en flexion mais prometteur.

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     // mg_triangle.h
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H22
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23     #ifndef _OPTTRIANGLE_
24     #define _OPTTRIANGLE_
25    
26     #ifdef WINDOWS_VERSION
27     #ifdef BUILT_DLL_GEOMETRIE
28     #define DLLPORTGEOMETRIE __declspec(dllexport)
29     #else
30     #define DLLPORTGEOMETRIE __declspec(dllimport)
31     #endif
32     #else
33     #define DLLPORTGEOMETRIE
34     #endif
35    
36    
37     #include "mg_element_maillage.h"
38     #include "mg_segment.h"
39     #include "mg_noeud.h"
40     #include "ot_reference.h"
41     #include "ot_boite_2D.h"
42     #include "ot_boite_3D.h"
43     #include "mg_triangle.h"
44    
45    
46     class DLLPORTGEOMETRIE OPT_TRIANGLE
47     {
48     public:
49     OPT_TRIANGLE(MG_TRIANGLE* tri);
50     OPT_TRIANGLE(OPT_TRIANGLE& mdd);
51     virtual ~OPT_TRIANGLE();
52    
53     virtual MG_NOEUD* get_noeud1(void);
54     virtual MG_NOEUD* get_noeud2(void);
55     virtual MG_NOEUD* get_noeud3(void);
56     virtual MG_SEGMENT* get_segment1(void);
57     virtual MG_SEGMENT* get_segment2(void);
58     virtual MG_SEGMENT* get_segment3(void);
59    
60     virtual class BOITE_2D get_boite_2D(double periodeu,double periodev);
61     virtual class BOITE_3D get_boite_3D(void);
62     virtual int get_dimension(void);
63    
64     virtual double get_longueur(void);
65     TPL_LISTE_ENTITE<class MG_TETRA*> *get_lien_tetra(void);
66    
67     virtual unsigned long get_id(void);
68     virtual MG_ELEMENT_TOPOLOGIQUE* get_lien_topologie(void);
69 gervaislavoie 382 virtual void change_normale_unitaire(OT_VECTEUR_3D vec);
70 gervaislavoie 392 virtual void change_jacobien_inverse(OT_MATRICE_3D j);
71 gervaislavoie 398
72 gervaislavoie 332 virtual double change_angle1_initial(double angle);
73     virtual double change_angle2_initial(double angle);
74     virtual double change_angle3_initial(double angle);
75     virtual double change_angle1(double angle);
76     virtual double change_angle2(double angle);
77     virtual double change_angle3(double angle);
78 gervaislavoie 398
79 gervaislavoie 382 virtual OT_VECTEUR_3D get_normale_unitaire(void);
80 gervaislavoie 392 virtual OT_MATRICE_3D get_jacobien_inverse(void);
81 gervaislavoie 398 virtual OT_MATRICE_3D get_matrice_abc(void);
82    
83 gervaislavoie 332 virtual double get_angle1_initial(void);
84     virtual double get_angle2_initial(void);
85     virtual double get_angle3_initial(void);
86     virtual double get_angle1(void);
87     virtual double get_angle2(void);
88     virtual double get_angle3(void);
89    
90    
91     virtual int get_num(void);
92     virtual void change_num(int val);
93    
94     virtual OPT_TRIANGLE* get_voisin1(void);
95     virtual OPT_TRIANGLE* get_voisin2(void);
96     virtual OPT_TRIANGLE* get_voisin3(void);
97     virtual void change_voisin1(OPT_TRIANGLE* tri);
98     virtual void change_voisin2(OPT_TRIANGLE* tri);
99     virtual void change_voisin3(OPT_TRIANGLE* tri);
100    
101     protected:
102    
103     class MG_TRIANGLE* triangle;
104 gervaislavoie 382 OT_VECTEUR_3D normale_unitaire;
105 gervaislavoie 392 OT_MATRICE_3D jacobien_inverse;
106 gervaislavoie 398 OT_MATRICE_3D abc;
107 gervaislavoie 332 int num;
108     double a1_init;
109     double a2_init;
110     double a3_init;
111     double a1;
112     double a2;
113     double a3;
114     OPT_TRIANGLE* voisin1;
115     OPT_TRIANGLE* voisin2;
116     OPT_TRIANGLE* voisin3;
117     };
118    
119     #endif