ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/optimisation/src/noeuds_com.h
Revision: 199
Committed: Tue Jul 21 15:00:12 2009 UTC (15 years, 9 months ago) by picher
Content type: text/plain
File size: 8540 byte(s)
Log Message:
Projet d'optimisation

File Contents

# Content
1 //* [ FreSOP - base ] ***************************************** noeuds_com.h * >
2 //
3 // ver.: 20090311
4
5 #ifndef _noeuds_com_h
6 #define _noeuds_com_h
7
8 #include <stdio.h>
9 #include <math.h>
10 #include <string>
11
12 #include "bib_0000.h"
13 #include "bib_m000.h"
14 #include "bib_m001.h"
15 #include "maz.h"
16
17 //------------------------------------------------------------------------------
18 //-- notes:
19 //--
20 //-- (1) on suppose que la numérotation des noeuds (aster) commence à 1
21
22 //------------------------------------------------------------------------------
23 //-- référence rapide des méthodes publiques pour la classe o_noeuds_com
24 //--
25 //-- o_noeuds_com
26 //-- ~o_noeuds_com
27 //-- def_prms
28 //-- def_coord
29 //-- def_dep
30 //-- ren_coord
31 //-- ren_dep
32 //-- ren_existence
33 //-- ren_nbr_noeuds
34 //-- ren_no_noeud_max
35 //-- affiche_bio
36 //-- ren_nos_noeuds
37
38 class o_noeuds_com {
39
40 private:
41
42 //============================================================================
43 //=============================== ATTRIBUTS ==================================
44 //============================================================================
45
46 ulong nbr_noeuds ;
47 ulong no_noeud_max ;
48
49 vifl *vx ; // vecteurs des coordonnées nodales
50 vifl *vy ;
51 vifl *vz ;
52
53 vifl *vdx ; // vecteurs des déplacements nodaux
54 vifl *vdy ;
55 vifl *vdz ;
56
57 ty_RSLT *vexistence ; // vecteur contenant l'information sur l'existence des noeuds
58
59 //-- drapeaux d'exécution ----------------------------------------------------
60
61 ty_RSLT alloc_dep_OK ;
62 ty_RSLT def_prms_OK ;
63
64 //============================================================================
65 //=========================== MÉTHODES PRIVÉES ===============================
66 //============================================================================
67
68 //============================================================================
69 //== initialisation de la classe
70
71 ty_RSLT initialisation ( void );
72
73 //============================================================================
74 //== gestion de mémoire
75
76 ty_RSLT alloc_coord ( void );
77
78 ty_RSLT alloc_dep ( void );
79
80 ty_RSLT alloc_vexistence ( void );
81
82 ty_RSLT desalloc_coord ( void );
83
84 ty_RSLT desalloc_dep ( void );
85
86 ty_RSLT desalloc_vexistence ( void );
87
88 ty_RSLT desalloc_tout ( void );
89
90 public:
91
92 //============================================================================
93 //========================== MÉTHODES PUBLIQUES ==============================
94 //============================================================================
95
96 o_noeuds_com ( void );
97
98 ~o_noeuds_com ( void );
99
100 //============================================================================
101 //== définition des paramètres de la classe
102
103 ty_RSLT def_prms ( ulong _nbr_noeuds ,
104 ulong _no_noeud_max );
105
106 //============================================================================
107 //== accesseurs et mutateurs
108
109 ty_RSLT def_coord ( ulong _no_noeud ,
110 vifl *_x ,
111 vifl *_y ,
112 vifl *_z );
113
114 ty_RSLT def_dep ( ulong _no_noeud ,
115 vifl *_dx ,
116 vifl *_dy ,
117 vifl *_dz );
118
119 ty_RSLT ren_coord ( ulong _no_noeud ,
120
121 vifl *_x ,
122 vifl *_y ,
123 vifl *_z );
124
125 ty_RSLT ren_dep ( ulong _no_noeud ,
126
127 vifl *_dx ,
128 vifl *_dy ,
129 vifl *_dz );
130
131 //----------------------------------------------------------------------------
132 //-- renvoie l'info sur l'existence d'un noeud
133 //--
134 //-- +--------------------------------------------+-------------------------+
135 //-- ¦ condition particulìère ¦ résultat d'exécution ¦
136 //-- +--------------------------------------------+-------------------------+
137 //-- ¦ _no_noeud invalide ¦ co_probleme_1 ¦
138 //-- ¦ _existence = NULL ¦ co_probleme_2 ¦
139 //-- ¦ o_noeuds_com::vexistence = NULL ¦ co_probleme_3 ¦
140 //-- +--------------------------------------------+-------------------------+
141
142 ty_RSLT ren_existence ( ulong _no_noeud ,
143
144 ty_RSLT *_existence );
145
146 //----------------------------------------------------------------------------
147
148 ty_RSLT ren_nbr_noeuds ( ulong *_nbr_noeuds );
149
150 //----------------------------------------------------------------------------
151
152 ty_RSLT ren_no_noeud_max ( ulong *_no_noeud_max );
153
154 //============================================================================
155 //== autres méthodes
156
157 //-- affiche les infos sur un noeud ------------------------------------------
158
159 ty_RSLT affiche_bio ( ulong _no_noeud );
160
161 //----------------------------------------------------------------------------
162 //-- renvoie les numéros des noeuds les plus près d'un point de référence
163 //-- classés en ordre croissant de distance (euclidienne) ainsi que la
164 //-- distance pour chacun de ces noeuds
165 //--
166 //-- +--------------------------------------------+-------------------------+
167 //-- ¦ condition particulìère ¦ résultat d'exécution ¦
168 //-- +--------------------------------------------+-------------------------+
169 //-- ¦ _nbr_noeuds invalide ¦ co_probleme_1 ¦
170 //-- ¦ _x, _y ou _z = NULL ¦ co_probleme_2 ¦
171 //-- ¦ _V_nos_noeuds = NULL ¦ co_probleme_3 ¦
172 //-- ¦ _V_distance = NULL ¦ co_probleme_4 ¦
173 //-- ¦ o_noeuds_com::vx = NULL ¦ co_probleme_5 ¦
174 //-- +--------------------------------------------+-------------------------+
175
176 ty_RSLT ren_nos_noeuds ( ulong _nbr_noeuds ,
177 vifl *_x , // coordonnées du point de référence
178 vifl *_y ,
179 vifl *_z ,
180
181 ulong *_V_nos_noeuds , // pointeur vers la zone mémoire où il faut stocker les nos de noeuds
182 vifl *_V_distance ); // pointeur vers la zone mémoire où il faut stocker la distance pour chaque noeud dans _vnos_noeuds
183
184 };
185
186 typedef o_noeuds_com *ptr_o_noeuds_com;
187
188 //******************************************************************************
189 // initialisation de noeuds_com h
190
191 ty_RSLT init_noeuds_com( void );
192
193 //******************************************************************************
194 // finitialisation de noeuds_com h
195
196 ty_RSLT finit_noeuds_com( void );
197
198 #endif

Properties

Name Value
svn:executable