ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/optimisation/src/opt_noeud.cpp
Revision: 398
Committed: Fri Apr 26 21:01:59 2013 UTC (12 years ago) by gervaislavoie
File size: 4057 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 #include "gestionversion.h"
2     #include "mg_noeud.h"
3     #include "mg_maillage.h"
4     #include "opt_noeud.h"
5    
6    
7     OPT_NOEUD::OPT_NOEUD(MG_NOEUD* nd):noeud(nd)
8     {
9     }
10    
11     OPT_NOEUD::OPT_NOEUD(OPT_NOEUD& mdd):noeud(mdd.noeud)
12     {
13     }
14    
15     OPT_NOEUD::~OPT_NOEUD()
16     {
17     }
18    
19     int OPT_NOEUD::get_num(void)
20     {
21     return num;
22     }
23    
24     void OPT_NOEUD::change_num(int val)
25     {
26 gervaislavoie 398 num=val;
27 gervaislavoie 332 }
28    
29 gervaislavoie 398 int OPT_NOEUD::get_variable(void )
30     {
31     return variable;
32     }
33    
34     void OPT_NOEUD::change_variable(int var)
35     {
36     variable=var;
37     }
38    
39     int OPT_NOEUD::get_num_global(void )
40     {
41     return num_global;
42     }
43    
44     void OPT_NOEUD::change_num_global(int num)
45     {
46     num_global=num;
47     }
48    
49     double OPT_NOEUD::get_terme_gradient_f(void )
50     {
51     return terme_gradient_f;
52     }
53    
54     void OPT_NOEUD::change_terme_gradient_f(double valeur)
55     {
56     terme_gradient_f=valeur;
57     }
58    
59 gervaislavoie 332 unsigned long OPT_NOEUD::get_id(void)
60     {
61     return noeud->get_id();
62     }
63    
64     MG_ELEMENT_TOPOLOGIQUE* OPT_NOEUD::get_lien_topologie(void)
65     {
66     return noeud->get_lien_topologie();
67     }
68    
69     double OPT_NOEUD::get_x(void)
70     {
71     return noeud->get_x();
72     }
73    
74     double OPT_NOEUD::get_y(void)
75     {
76     return noeud->get_y();
77     }
78    
79     double OPT_NOEUD::get_z(void)
80     {
81     return noeud->get_z();
82     }
83    
84 gervaislavoie 398 double OPT_NOEUD::get_x_initial(void)
85     {
86     return x0;
87     }
88    
89     double OPT_NOEUD::get_y_initial(void)
90     {
91     return y0;
92     }
93    
94     double OPT_NOEUD::get_z_initial(void)
95     {
96     return z0;
97     }
98    
99 gervaislavoie 332 double* OPT_NOEUD::get_coord(void)
100     {
101     return noeud->get_coord();
102     }
103    
104    
105     void OPT_NOEUD::change_normale(OT_VECTEUR_3D vec)
106     {
107     normale=vec;
108     }
109    
110     OT_VECTEUR_3D OPT_NOEUD::get_normale(void)
111     {
112     return normale;
113     }
114    
115     OT_VECTEUR_3D OPT_NOEUD::get_normale_initiale(void)
116     {
117 gervaislavoie 398 return normale_initiale;
118 gervaislavoie 332 }
119    
120     void OPT_NOEUD::change_normale_initiale(void)
121     {
122 gervaislavoie 398 normale_initiale=normale;
123 gervaislavoie 332 }
124    
125    
126     void OPT_NOEUD::change_u(double uu)
127     {
128     noeud->change_u(uu);
129     }
130    
131     void OPT_NOEUD::change_v(double vv)
132     {
133     noeud->change_v(vv);
134     }
135    
136     double OPT_NOEUD::get_u(void)
137     {
138     return noeud->get_u();
139     }
140    
141     double OPT_NOEUD::get_v(void)
142     {
143     return noeud->get_v();
144     }
145    
146     void OPT_NOEUD::change_x(double xx)
147     {
148     noeud->change_x(xx);
149     }
150    
151     void OPT_NOEUD::change_y(double yy)
152     {
153     noeud->change_y(yy);
154     }
155    
156     void OPT_NOEUD::change_z(double zz)
157     {
158     noeud->change_z(zz);
159     }
160    
161 gervaislavoie 398 void OPT_NOEUD::change_x_initial(double x_initial)
162     {
163     x0=x_initial;
164     }
165    
166     void OPT_NOEUD::change_y_initial(double y_initial)
167     {
168     y0=y_initial;
169     }
170    
171     void OPT_NOEUD::change_z_initial(double z_initial)
172     {
173     z0=z_initial;
174     }
175    
176 gervaislavoie 332 void OPT_NOEUD::change_coord(double *coo)
177     {
178     noeud->change_coord(coo);
179     }
180    
181    
182     TPL_LISTE_ENTITE<class MG_SEGMENT*>* OPT_NOEUD::get_lien_segment(void)
183     {
184     return noeud->get_lien_segment();
185     }
186    
187     TPL_LISTE_ENTITE<class MG_SEGMENT*>* OPT_NOEUD::get_lien_petit_segment(void)
188     {
189     return noeud->get_lien_petit_segment();
190     }
191    
192     TPL_LISTE_ENTITE<class MG_TRIANGLE*>* OPT_NOEUD::get_lien_triangle(void)
193     {
194     return noeud->get_lien_triangle();
195     }
196    
197     TPL_LISTE_ENTITE<class MG_TRIANGLE*>* OPT_NOEUD::get_lien_petit_triangle(void)
198     {
199     return noeud->get_lien_petit_triangle();
200     }
201    
202     TPL_LISTE_ENTITE<class MG_QUADRANGLE*>* OPT_NOEUD::get_lien_quadrangle(void)
203     {
204     return noeud->get_lien_quadrangle();
205     }
206    
207     TPL_LISTE_ENTITE<class MG_QUADRANGLE*>* OPT_NOEUD::get_lien_petit_quadrangle(void)
208     {
209     return noeud->get_lien_petit_quadrangle();
210     }
211    
212     TPL_LISTE_ENTITE<class MG_TETRA*>* OPT_NOEUD::get_lien_tetra(void)
213     {
214     return noeud->get_lien_tetra();
215     }
216    
217     TPL_LISTE_ENTITE<class MG_TETRA*>* OPT_NOEUD::get_lien_petit_tetra(void)
218     {
219     return noeud->get_lien_petit_tetra();
220     }
221    
222     TPL_LISTE_ENTITE<class MG_HEXA*>* OPT_NOEUD::get_lien_hexa(void)
223     {
224     return noeud->get_lien_hexa();
225     }
226    
227     TPL_LISTE_ENTITE<class MG_HEXA*>* OPT_NOEUD::get_lien_petit_hexa(void)
228     {
229     return noeud->get_lien_petit_hexa();
230     }
231    
232     int OPT_NOEUD::get_dimension(void)
233     {
234     return noeud->get_dimension();
235     }
236    
237     BOITE_2D OPT_NOEUD::get_boite_2D(double periodeu,double periodev)
238     {
239     return noeud->get_boite_2D(periodeu,periodev);
240     }
241    
242     BOITE_3D OPT_NOEUD::get_boite_3D(void)
243     {
244     return noeud->get_boite_3D();
245     }
246     void OPT_NOEUD::change_solution(double val)
247     {
248     noeud->change_solution(val);
249     }
250     double OPT_NOEUD::get_solution(void)
251     {
252     return noeud->get_solution();
253     }