ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/solveur/src/sl_localisation.cpp
Revision: 5
Committed: Tue Jun 12 20:26:34 2007 UTC (17 years, 11 months ago)
Original Path: magic/lib/solveur/solveur/src/sl_localisation.cpp
File size: 2655 byte(s)
Log Message:

File Contents

# User Rev Content
1 5 #include "gestionversion.h"
2     //---------------------------------------------------------------------------
3    
4    
5     #pragma hdrstop
6    
7     #include "sl_localisation.h"
8    
9     //---------------------------------------------------------------------------
10    
11     #pragma package(smart_init)
12    
13    
14    
15     SL_LOCALISATION::SL_LOCALISATION()
16     {
17     }
18    
19    
20     SL_LOCALISATION::~SL_LOCALISATION()
21     {
22    
23     }
24    
25     /*
26     void SL_LOCALISATION::get_localisation(int* tab_noeud,int* tab_seg,int* tab_comb,int t_tab_noeud,int t_tab_seg)
27     {
28    
29     for(int i=0;i<t_tab_noeud;i++)
30     {
31    
32     int num=tab_noeud[i];
33    
34     FEM_NOEUD* mgnoeud=mai->get_mg_noeudid(num);
35     int j=mgnoeud->get_nouveau_numero();
36    
37     tab_comb[3*i]=3*j;
38     tab_comb[3*i+1]=3*j+1;
39     tab_comb[3*i+2]=3*j+2;
40    
41     }
42    
43    
44     for(int k=0;k<t_tab_seg;k++)
45     {
46    
47     int num=tab_seg[k];
48    
49     FEM_SEGMENT* mgseg=mai->get_mg_segmentid(k);
50     int j=mgseg->get_nouveau_numero();
51    
52     tab_comb[3*i] =3*j;
53     tab_comb[3*i+1]=3*j+1;
54     tab_comb[3*i+1]=3*j+2;
55    
56     }
57    
58     } */
59    
60     void SL_LOCALISATION::get_localisation(int* tab_inp,int* tab_out,int t_tab_inp)
61     {
62    
63     for(int i=0;i<t_tab_inp;i++)
64     {
65    
66     int num=tab_inp[i];
67    
68     tab_out[3*i]=3*num;
69     tab_out[3*i+1]=3*num+1;
70     tab_out[3*i+2]=3*num+2;
71    
72     }
73    
74    
75     }
76    
77    
78     void SL_LOCALISATION::get_localisation_contrainte(int* tab_inp,int* tab_out,int t_tab_inp)
79     {
80    
81     for(int i=0;i<t_tab_inp;i++)
82     {
83     int num=tab_inp[i];
84     // if(num==tab[i])
85     // {
86     tab_out[6*i]=6*num;
87     tab_out[6*i+1]=6*num+1;
88     tab_out[6*i+2]=6*num+2;
89     tab_out[6*i+3]=6*num+3;
90     tab_out[6*i+4]=6*num+4;
91     tab_out[6*i+5]=6*num+5;
92    
93    
94     }
95     /* for(int k=0;k<nb_segm;k++)
96     {
97     FEM_SEGMENT* mgseg=mai->get_mg_segment(k);
98     int num1=mgseg->get_id();
99     if(num1==(unsigned)tab[i])
100     {
101     ttab[6*i] =6*(k+nb_noeud);
102     ttab[6*i+1]=6*(k+nb_noeud)+1;
103     ttab[6*i+2]=6*(k+nb_noeud)+2;
104     ttab[6*i+3]=6*(k+nb_noeud)+3;
105     ttab[6*i+4]=6*(k+nb_noeud)+4;
106     ttab[6*i+5]=6*(k+nb_noeud)+5;
107     }
108     }
109    
110    
111     } */
112    
113     }
114    
115     void SL_LOCALISATION::get_localisation_contrainte_equiv(FEM_MAILLAGE*mai,int* tab,int* ttab,int taille_tab)
116     {
117     int nb_noeud=mai->get_nb_fem_noeud();
118     int nb_segm=mai->get_nb_fem_segment();
119     for(int i=0;i<taille_tab;i++)
120     {
121    
122     for(int j=0;j<nb_noeud;j++)
123     {
124     FEM_NOEUD* mgnoeud=mai->get_fem_noeud(j);
125     int num=mgnoeud->get_id();
126     if(num==tab[i])
127     {
128     ttab[i]=j;
129     }
130     }
131     for(int k=0;k<nb_segm;k++)
132     {
133     FEM_SEGMENT* mgseg=mai->get_fem_segment(k);
134     int num1=mgseg->get_id();
135     if(num1==tab[i])
136     {
137     ttab[i] =(k+nb_noeud);
138    
139     }
140     }
141    
142    
143     }
144    
145     }