ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/solveur/src/sl_update.cpp
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (11 months ago) by francois
File size: 2504 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

# User Rev Content
1 francois 1158 //####//------------------------------------------------------------
2     //####//------------------------------------------------------------
3     //####// MAGiC
4     //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5     //####// Departement de Genie Mecanique - UQTR
6     //####//------------------------------------------------------------
7     //####// MAGIC est un projet de recherche de l equipe ERICCA
8     //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9     //####// http://www.uqtr.ca/ericca
10     //####// http://www.uqtr.ca/
11     //####//------------------------------------------------------------
12     //####//------------------------------------------------------------
13     //####//
14     //####// sl_update.cpp
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:57 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 5 #include "gestionversion.h"
23    
24     #pragma hdrstop
25    
26     #include "sl_update.h"
27     #pragma package(smart_init)
28    
29    
30    
31     SL_UPDATE::SL_UPDATE()
32     {
33     }
34    
35     SL_UPDATE::~SL_UPDATE()
36     {
37     }
38    
39    
40     void SL_UPDATE::get_new_val(double*old_val,double*add_val)
41     {
42    
43     for(int i=0;i<6;i++)
44     {
45     old_val[i]+=add_val[i];
46     }
47    
48     }
49    
50    
51     void SL_UPDATE::extract_solution(FEM_SOLUTION* mgsol,double*sol,int lgxcl,int a,int b)
52     {
53    
54     for(int i=0;i<lgxcl;i++)
55     {
56     sol[i]=mgsol->lire(a,lgxcl*b+i);
57     }
58    
59     }
60    
61    
62     void SL_UPDATE::remettre_a_zeros(double*t,int taille)
63     {
64     for(int i=0;i<taille;i++)
65     {
66     t[i]=0.0;
67     }
68    
69     }
70    
71    
72     void SL_UPDATE::update_la_solution(FEM_SOLUTION* mgsol,double* t,int lgxcl, int a,int b)
73     {
74     for(int i=0;i<lgxcl;i++)
75     {
76     double val_sol=mgsol->lire(a,lgxcl*b+i);
77     val_sol+=t[i];
78 francois 375 mgsol->ecrire(val_sol,a,lgxcl*b+i);
79 5 }
80    
81     }
82    
83    
84     void SL_UPDATE::get_list_trie(int* llst1,int* lst2,int dim)
85     {
86    
87     int* lst1=new int[dim];
88     for(int i=0;i<dim;i++)
89     {
90     lst1[i]=llst1[i];
91     lst2[i]=i;
92     }
93     int min=lst1[0];
94     for(int i=0;i<dim;i++)
95     {
96     for(int j=dim-1;j>i;j--)
97     {
98     if(lst1[j]<lst1[i])
99     {
100     min=lst1[j];
101     lst1[j]=lst1[i];
102     lst1[i]=min;
103     int val=lst2[j];
104     lst2[j]=lst2[i];
105     lst2[i]=val;
106     }
107     }
108     }
109    
110    
111     delete [] lst1;
112     }
113    
114    
115    
116 souaissa 166 void SL_UPDATE:: update_results(Matrice& m,vecteur&v,int e)
117     {
118     int nb_rows=m.Get_NbRows();
119     int nb_cols=m.Get_NbCols();
120     m.Add_Row(v,e);
121 5
122 souaissa 166 }