ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/optimisation/src/opt_noeud.cpp
Revision: 470
Committed: Fri Dec 6 22:32:32 2013 UTC (11 years, 5 months ago) by francois
File size: 3543 byte(s)
Log Message:
MAGIC V4 pour l'optimisation de mouvement normal

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     normale[0]=0.;
14     normale[1]=0.;
15     normale[2]=0.;
16    
17     normale_initiale[0]=0.;
18     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 francois 470 int OPT_NOEUD::get_variable(void)
58 gervaislavoie 398 {
59     return variable;
60     }
61    
62     void OPT_NOEUD::change_variable(int var)
63     {
64     variable=var;
65     }
66    
67 francois 470 int OPT_NOEUD::get_algo_grad(void)
68 gervaislavoie 398 {
69 francois 470 return algo_grad;
70     }
71    
72     void OPT_NOEUD::change_algo_grad(int algo)
73     {
74     algo_grad=algo;
75     }
76    
77     int OPT_NOEUD::get_num_global(void)
78     {
79 gervaislavoie 398 return num_global;
80     }
81    
82     void OPT_NOEUD::change_num_global(int num)
83     {
84     num_global=num;
85     }
86    
87 francois 470 double OPT_NOEUD::get_terme_gradient_f(void)
88 gervaislavoie 398 {
89     return terme_gradient_f;
90     }
91    
92     void OPT_NOEUD::change_terme_gradient_f(double valeur)
93     {
94     terme_gradient_f=valeur;
95     }
96    
97 gervaislavoie 332 unsigned long OPT_NOEUD::get_id(void)
98     {
99 francois 470 return fem_noeud->get_id();
100 gervaislavoie 332 }
101    
102     double OPT_NOEUD::get_x(void)
103     {
104 francois 470 return fem_noeud->get_x();
105 gervaislavoie 332 }
106    
107     double OPT_NOEUD::get_y(void)
108     {
109 francois 470 return fem_noeud->get_y();
110 gervaislavoie 332 }
111    
112     double OPT_NOEUD::get_z(void)
113     {
114 francois 470 return fem_noeud->get_z();
115 gervaislavoie 332 }
116    
117 gervaislavoie 398 double OPT_NOEUD::get_x_initial(void)
118     {
119 francois 470 return xyz0[0];
120 gervaislavoie 398 }
121    
122     double OPT_NOEUD::get_y_initial(void)
123     {
124 francois 470 return xyz0[1];
125 gervaislavoie 398 }
126    
127     double OPT_NOEUD::get_z_initial(void)
128     {
129 francois 470 return xyz0[2];
130 gervaislavoie 398 }
131    
132 gervaislavoie 332 double* OPT_NOEUD::get_coord(void)
133     {
134 francois 470 return fem_noeud->get_coord();
135 gervaislavoie 332 }
136    
137 francois 470 double OPT_NOEUD::get_norme_orientee_deplacement(void)
138     {
139     return norme_orientee_deplacement;
140     }
141 gervaislavoie 332
142 francois 470 void OPT_NOEUD::change_norme_orientee_deplacement(void)
143     {
144     OT_VECTEUR_3D n=get_normale_initiale();
145     OT_VECTEUR_3D D(get_x()-get_x_initial(),get_y()-get_y_initial(),get_z()-get_z_initial());
146    
147     int signe=1;
148     double ps_D_n=D*n;
149     if (ps_D_n<0)
150     signe=-1;
151     norme_orientee_deplacement=D.get_longueur()*signe;
152     }
153    
154 gervaislavoie 332 void OPT_NOEUD::change_normale(OT_VECTEUR_3D vec)
155     {
156     normale=vec;
157     }
158    
159     OT_VECTEUR_3D OPT_NOEUD::get_normale(void)
160     {
161     return normale;
162     }
163    
164     OT_VECTEUR_3D OPT_NOEUD::get_normale_initiale(void)
165     {
166 gervaislavoie 398 return normale_initiale;
167 gervaislavoie 332 }
168    
169     void OPT_NOEUD::change_normale_initiale(void)
170     {
171 gervaislavoie 398 normale_initiale=normale;
172 gervaislavoie 332 }
173    
174     void OPT_NOEUD::change_x(double xx)
175     {
176 francois 470 fem_noeud->change_x(xx);
177 gervaislavoie 332 }
178    
179     void OPT_NOEUD::change_y(double yy)
180     {
181 francois 470 fem_noeud->change_y(yy);
182 gervaislavoie 332 }
183    
184     void OPT_NOEUD::change_z(double zz)
185     {
186 francois 470 fem_noeud->change_z(zz);
187 gervaislavoie 332 }
188    
189 gervaislavoie 398 void OPT_NOEUD::change_x_initial(double x_initial)
190     {
191 francois 470 xyz0[0]=x_initial;
192 gervaislavoie 398 }
193    
194     void OPT_NOEUD::change_y_initial(double y_initial)
195     {
196 francois 470 xyz0[1]=y_initial;
197 gervaislavoie 398 }
198    
199     void OPT_NOEUD::change_z_initial(double z_initial)
200     {
201 francois 470 xyz0[2]=z_initial;
202 gervaislavoie 398 }
203    
204 gervaislavoie 332 void OPT_NOEUD::change_coord(double *coo)
205     {
206 francois 470 fem_noeud->change_coord(coo);
207 gervaislavoie 332 }
208    
209 francois 470 void OPT_NOEUD::change_solution(double val)
210 gervaislavoie 332 {
211 francois 470 fem_noeud->change_solution(val);
212 gervaislavoie 332 }
213    
214     double OPT_NOEUD::get_solution(void)
215     {
216 francois 470 fem_noeud->get_solution();
217 gervaislavoie 332 }