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 (16 years, 1 month ago) by picher
Content type: text/plain
File size: 8540 byte(s)
Log Message:
Projet d'optimisation

File Contents

# User Rev Content
1 picher 199 //* [ 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