ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/aster/src/opt_noeud.cpp
Revision: 744
Committed: Mon Oct 5 15:17:13 2015 UTC (9 years, 7 months ago) by zeggar
File size: 6169 byte(s)
Log Message:
Méthode du mouvement normal avec un maillage quadratique
cas test MMN avec un maillage quadratique

File Contents

# User Rev Content
1 gervaislavoie 332 #include "gestionversion.h"
2 francois 470 #include "fem_noeud.h"
3 gervaislavoie 332 #include "mg_maillage.h"
4     #include "opt_noeud.h"
5    
6    
7 francois 470 OPT_NOEUD::OPT_NOEUD(FEM_NOEUD* noeud):fem_noeud(noeud)
8 gervaislavoie 332 {
9 francois 470 xyz0[0]=fem_noeud->get_x();
10     xyz0[1]=fem_noeud->get_y();
11     xyz0[2]=fem_noeud->get_z();
12    
13 gervaislavoie 495 normale[0]=0.; //Enlever
14 francois 470 normale[1]=0.;
15     normale[2]=0.;
16    
17 gervaislavoie 495 normale_initiale[0]=0.; //Enlever
18 francois 470 normale_initiale[1]=0.;
19     normale_initiale[2]=0.;
20 gervaislavoie 332 }
21    
22 francois 470 OPT_NOEUD::OPT_NOEUD(OPT_NOEUD& mdd):fem_noeud(mdd.fem_noeud)
23 gervaislavoie 332 {
24 francois 470 xyz0[0]=mdd.get_x_initial();
25     xyz0[1]=mdd.get_y_initial();
26     xyz0[2]=mdd.get_z_initial();
27    
28     normale[0]=mdd.normale[0];
29     normale[1]=mdd.normale[1];
30     normale[2]=mdd.normale[2];
31    
32     normale_initiale[0]=mdd.normale_initiale[0];
33     normale_initiale[1]=mdd.normale_initiale[1];
34     normale_initiale[2]=mdd.normale_initiale[2];
35 gervaislavoie 332 }
36    
37     OPT_NOEUD::~OPT_NOEUD()
38 francois 470 {
39    
40 gervaislavoie 332 }
41    
42 francois 470 FEM_NOEUD* OPT_NOEUD::get_fem_noeud(void)
43     {
44     return fem_noeud;
45     }
46    
47 gervaislavoie 332 int OPT_NOEUD::get_num(void)
48     {
49     return num;
50     }
51    
52     void OPT_NOEUD::change_num(int val)
53     {
54 gervaislavoie 398 num=val;
55 gervaislavoie 332 }
56    
57 gervaislavoie 495 int OPT_NOEUD::get_mvt_normal(void)
58 gervaislavoie 398 {
59 gervaislavoie 495 return mvt_normal;
60 gervaislavoie 398 }
61 gervaislavoie 495 void OPT_NOEUD::change_mvt_normal(int mvt)
62     {
63     mvt_normal=mvt;
64     }
65 gervaislavoie 398
66 gervaislavoie 495 /*int OPT_NOEUD::get_contrainte(void)
67 gervaislavoie 398 {
68 gervaislavoie 495 return contrainte;
69 gervaislavoie 398 }
70    
71 gervaislavoie 495 void OPT_NOEUD::change_contrainte(int cont)
72 gervaislavoie 398 {
73 gervaislavoie 495 contrainte=cont;
74     }*/
75    
76 gervaislavoie 528 int OPT_NOEUD::get_arret_gradient(void)
77 gervaislavoie 495 {
78 gervaislavoie 528 return arret_gradient;
79 francois 470 }
80    
81 gervaislavoie 528 void OPT_NOEUD::change_arret_gradient(int grad)
82 francois 470 {
83 gervaislavoie 528 arret_gradient=grad;
84 francois 470 }
85    
86 gervaislavoie 495 /*int OPT_NOEUD::get_fixe_au_depart(void)
87 francois 470 {
88 gervaislavoie 495 return fixe_au_depart;
89 gervaislavoie 398 }
90    
91 gervaislavoie 495 void OPT_NOEUD::change_fixe_au_depart(int fixe)
92 gervaislavoie 398 {
93 gervaislavoie 495 fixe_au_depart=fixe;
94     }*/
95    
96     int OPT_NOEUD::get_mobile_au_depart(void)
97     {
98     return mobile_au_depart;
99 gervaislavoie 398 }
100    
101 gervaislavoie 495 void OPT_NOEUD::change_mobile_au_depart(int mob)
102     {
103     mobile_au_depart=mob;
104     }
105    
106     int OPT_NOEUD::get_mobile(void)
107     {
108     return mobile;
109     }
110    
111     void OPT_NOEUD::change_mobile(int mob)
112     {
113     mobile=mob;
114     }
115    
116     int OPT_NOEUD::get_a_replacer(void)
117     {
118     return a_replacer;
119     }
120    
121     void OPT_NOEUD::change_a_replacer(int replacer)
122     {
123     a_replacer=replacer;
124     }
125    
126 gervaislavoie 528 /*int OPT_NOEUD::get_a_ete_replace(void)
127 gervaislavoie 495 {
128     return a_ete_replace;
129     }
130    
131     void OPT_NOEUD::change_a_ete_replace(int replace)
132     {
133     a_ete_replace=replace;
134 gervaislavoie 528 }*/
135    
136     int OPT_NOEUD::get_num_replacement(void)
137     {
138     return num_replacement;
139 gervaislavoie 495 }
140    
141 gervaislavoie 528 void OPT_NOEUD::change_num_replacement(int num)
142     {
143     num_replacement=num;
144     }
145    
146 francois 470 double OPT_NOEUD::get_terme_gradient_f(void)
147 gervaislavoie 398 {
148     return terme_gradient_f;
149     }
150    
151     void OPT_NOEUD::change_terme_gradient_f(double valeur)
152     {
153     terme_gradient_f=valeur;
154     }
155    
156 gervaislavoie 528 double OPT_NOEUD::get_sol_deplacement_virtuel(void)
157 gervaislavoie 495 {
158 gervaislavoie 528 return sol_deplacement_virtuel;
159 gervaislavoie 495 }
160    
161 gervaislavoie 528 void OPT_NOEUD::change_sol_deplacement_virtuel(double deplacement)
162 gervaislavoie 495 {
163 gervaislavoie 528 sol_deplacement_virtuel=deplacement;
164 gervaislavoie 495 }
165    
166 gervaislavoie 528 double OPT_NOEUD::get_sens_depl_virtuel(void)
167     {
168     return sens_depl_virtuel;
169     }
170    
171     void OPT_NOEUD::change_sens_depl_virtuel(double signe)
172     {
173     sens_depl_virtuel=signe;
174     }
175    
176     double OPT_NOEUD::get_depl_avant_algo_grad(void)
177     {
178     return depl_avant_algo_grad;
179     }
180    
181     void OPT_NOEUD::change_depl_avant_algo_grad(double depl)
182     {
183     depl_avant_algo_grad=depl;
184     }
185 zeggar 744 double OPT_NOEUD::get_vonmises__precedent(void)
186     {
187     return von_mises;
188     }
189 gervaislavoie 528
190 zeggar 744 void OPT_NOEUD::change_vonmises__precedent(double von)
191     {
192     von_mises=von;
193     }
194    
195 gervaislavoie 528 double* OPT_NOEUD::get_coord_lissee(void)
196     {
197     return xyz_lissee;
198     }
199    
200     void OPT_NOEUD::change_coord_lissee(double* coord)
201     {
202     xyz_lissee[0]=coord[0];
203     xyz_lissee[1]=coord[1];
204     xyz_lissee[2]=coord[2];
205     }
206    
207     TPL_MAP_ENTITE< OPT_NOEUD* > OPT_NOEUD::get_liste_noeud_voisin(void )
208     {
209     return lst_noeud_voisin;
210     }
211    
212     void OPT_NOEUD::change_liste_noeud_voisin(TPL_MAP_ENTITE< OPT_NOEUD* > lst)
213     {
214     lst_noeud_voisin=lst;
215     }
216    
217 zeggar 744 void OPT_NOEUD::change_liste_noeud_filtre(TPL_MAP_ENTITE< OPT_NOEUD* > lst)
218     {
219     lst_noeud_filtre=lst;
220     }
221    
222     TPL_MAP_ENTITE< OPT_NOEUD* > OPT_NOEUD::get_liste_noeud_filtre(void )
223     {
224     return lst_noeud_filtre;
225     }
226    
227 gervaislavoie 528 /*TPL_MAP_ENTITE< OPT_TRIANGLE* > OPT_NOEUD::get_liste_tri_voisin(void )
228     {
229     return lst_tri_voisin;
230     }
231    
232     void OPT_NOEUD::change_liste_tri_voisin(TPL_MAP_ENTITE< OPT_TRIANGLE* > lst)
233     {
234     lst_tri_voisin=lst;
235     }*/
236    
237 gervaislavoie 332 unsigned long OPT_NOEUD::get_id(void)
238     {
239 francois 470 return fem_noeud->get_id();
240 gervaislavoie 332 }
241    
242     double OPT_NOEUD::get_x(void)
243     {
244 francois 470 return fem_noeud->get_x();
245 gervaislavoie 332 }
246    
247     double OPT_NOEUD::get_y(void)
248     {
249 francois 470 return fem_noeud->get_y();
250 gervaislavoie 332 }
251    
252     double OPT_NOEUD::get_z(void)
253     {
254 francois 470 return fem_noeud->get_z();
255 gervaislavoie 332 }
256    
257 gervaislavoie 398 double OPT_NOEUD::get_x_initial(void)
258     {
259 francois 470 return xyz0[0];
260 gervaislavoie 398 }
261    
262     double OPT_NOEUD::get_y_initial(void)
263     {
264 francois 470 return xyz0[1];
265 gervaislavoie 398 }
266    
267     double OPT_NOEUD::get_z_initial(void)
268     {
269 francois 470 return xyz0[2];
270 gervaislavoie 398 }
271    
272 gervaislavoie 332 double* OPT_NOEUD::get_coord(void)
273     {
274 francois 470 return fem_noeud->get_coord();
275 gervaislavoie 332 }
276    
277 francois 470 double OPT_NOEUD::get_norme_orientee_deplacement(void)
278     {
279     return norme_orientee_deplacement;
280     }
281 gervaislavoie 332
282 francois 470 void OPT_NOEUD::change_norme_orientee_deplacement(void)
283     {
284     OT_VECTEUR_3D n=get_normale_initiale();
285     OT_VECTEUR_3D D(get_x()-get_x_initial(),get_y()-get_y_initial(),get_z()-get_z_initial());
286    
287     int signe=1;
288     double ps_D_n=D*n;
289     if (ps_D_n<0)
290     signe=-1;
291     norme_orientee_deplacement=D.get_longueur()*signe;
292     }
293    
294 gervaislavoie 332 void OPT_NOEUD::change_normale(OT_VECTEUR_3D vec)
295     {
296     normale=vec;
297     }
298    
299     OT_VECTEUR_3D OPT_NOEUD::get_normale(void)
300     {
301     return normale;
302     }
303 zeggar 744 void OPT_NOEUD::change_normale2(OT_VECTEUR_3D vec)
304     {
305     normale2=vec;
306     }
307 gervaislavoie 332
308 zeggar 744 OT_VECTEUR_3D OPT_NOEUD::get_normale2(void)
309     {
310     return normale2;
311     }
312    
313 gervaislavoie 332 OT_VECTEUR_3D OPT_NOEUD::get_normale_initiale(void)
314     {
315 gervaislavoie 398 return normale_initiale;
316 gervaislavoie 332 }
317    
318     void OPT_NOEUD::change_normale_initiale(void)
319     {
320 gervaislavoie 398 normale_initiale=normale;
321 gervaislavoie 332 }
322    
323     void OPT_NOEUD::change_x(double xx)
324     {
325 francois 470 fem_noeud->change_x(xx);
326 gervaislavoie 332 }
327    
328     void OPT_NOEUD::change_y(double yy)
329     {
330 francois 470 fem_noeud->change_y(yy);
331 gervaislavoie 332 }
332    
333     void OPT_NOEUD::change_z(double zz)
334     {
335 francois 470 fem_noeud->change_z(zz);
336 gervaislavoie 332 }
337    
338 gervaislavoie 398 void OPT_NOEUD::change_x_initial(double x_initial)
339     {
340 francois 470 xyz0[0]=x_initial;
341 gervaislavoie 398 }
342    
343     void OPT_NOEUD::change_y_initial(double y_initial)
344     {
345 francois 470 xyz0[1]=y_initial;
346 gervaislavoie 398 }
347    
348     void OPT_NOEUD::change_z_initial(double z_initial)
349     {
350 francois 470 xyz0[2]=z_initial;
351 gervaislavoie 398 }
352    
353 gervaislavoie 332 void OPT_NOEUD::change_coord(double *coo)
354     {
355 francois 470 fem_noeud->change_coord(coo);
356 gervaislavoie 332 }
357    
358 francois 470 void OPT_NOEUD::change_solution(double val)
359 gervaislavoie 332 {
360 francois 470 fem_noeud->change_solution(val);
361 gervaislavoie 332 }
362    
363     double OPT_NOEUD::get_solution(void)
364     {
365 francois 470 fem_noeud->get_solution();
366 gervaislavoie 332 }