ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/solveur/src/sl_update.cpp
Revision: 375
Committed: Fri Nov 9 15:27:14 2012 UTC (12 years, 6 months ago) by francois
File size: 1588 byte(s)
Log Message:
Solution FEM sont vectorielles et tensorielles + affichage des options de compilations dans les exe

File Contents

# User Rev Content
1 5 #include "gestionversion.h"
2     //---------------------------------------------------------------------------
3    
4     #pragma hdrstop
5    
6     #include "sl_update.h"
7     //---------------------------------------------------------------------------
8     #pragma package(smart_init)
9    
10    
11    
12     SL_UPDATE::SL_UPDATE()
13     {
14     }
15    
16     SL_UPDATE::~SL_UPDATE()
17     {
18     }
19    
20    
21     void SL_UPDATE::get_new_val(double*old_val,double*add_val)
22     {
23    
24     for(int i=0;i<6;i++)
25     {
26     old_val[i]+=add_val[i];
27     }
28    
29     }
30    
31    
32     void SL_UPDATE::extract_solution(FEM_SOLUTION* mgsol,double*sol,int lgxcl,int a,int b)
33     {
34    
35     for(int i=0;i<lgxcl;i++)
36     {
37     sol[i]=mgsol->lire(a,lgxcl*b+i);
38     }
39    
40     }
41    
42    
43     void SL_UPDATE::remettre_a_zeros(double*t,int taille)
44     {
45     for(int i=0;i<taille;i++)
46     {
47     t[i]=0.0;
48     }
49    
50     }
51    
52    
53     void SL_UPDATE::update_la_solution(FEM_SOLUTION* mgsol,double* t,int lgxcl, int a,int b)
54     {
55     for(int i=0;i<lgxcl;i++)
56     {
57     double val_sol=mgsol->lire(a,lgxcl*b+i);
58     val_sol+=t[i];
59 francois 375 mgsol->ecrire(val_sol,a,lgxcl*b+i);
60 5 }
61    
62     }
63    
64    
65     void SL_UPDATE::get_list_trie(int* llst1,int* lst2,int dim)
66     {
67    
68     int* lst1=new int[dim];
69     for(int i=0;i<dim;i++)
70     {
71     lst1[i]=llst1[i];
72     lst2[i]=i;
73     }
74     int min=lst1[0];
75     for(int i=0;i<dim;i++)
76     {
77     for(int j=dim-1;j>i;j--)
78     {
79     if(lst1[j]<lst1[i])
80     {
81     min=lst1[j];
82     lst1[j]=lst1[i];
83     lst1[i]=min;
84     int val=lst2[j];
85     lst2[j]=lst2[i];
86     lst2[i]=val;
87     }
88     }
89     }
90    
91    
92     delete [] lst1;
93     }
94    
95    
96    
97 souaissa 166 void SL_UPDATE:: update_results(Matrice& m,vecteur&v,int e)
98     {
99     int nb_rows=m.Get_NbRows();
100     int nb_cols=m.Get_NbCols();
101     m.Add_Row(v,e);
102 5
103 souaissa 166 }