source: issm/oecreview/Archive/19101-20495/ISSM-19976-19977.diff@ 20498

Last change on this file since 20498 was 20498, checked in by Mathieu Morlighem, 9 years ago

CHG: done with Archive/19101-20495

File size: 3.6 KB
RevLine 
[20498]1Index: ../trunk-jpl/src/c/toolkits/objects/Vector.h
2===================================================================
3--- ../trunk-jpl/src/c/toolkits/objects/Vector.h (revision 19976)
4+++ ../trunk-jpl/src/c/toolkits/objects/Vector.h (revision 19977)
5@@ -280,6 +280,16 @@
6
7 }
8 /*}}}*/
9+ void Shift(doubletype shift){_assert_(this);/*{{{*/
10+
11+ if(type==PetscVecType){
12+ #ifdef _HAVE_PETSC_
13+ this->pvector->Shift(shift);
14+ #endif
15+ }
16+ else this->ivector->Shift(shift);
17+ }
18+ /*}}}*/
19 void Copy(Vector* to){_assert_(this);/*{{{*/
20
21 if(type==PetscVecType){
22Index: ../trunk-jpl/src/c/toolkits/issm/IssmAbsVec.h
23===================================================================
24--- ../trunk-jpl/src/c/toolkits/issm/IssmAbsVec.h (revision 19976)
25+++ ../trunk-jpl/src/c/toolkits/issm/IssmAbsVec.h (revision 19977)
26@@ -41,6 +41,7 @@
27 virtual void AXPY(IssmAbsVec* X, doubletype a)=0;
28 virtual void AYPX(IssmAbsVec* X, doubletype a)=0;
29 virtual doubletype* ToMPISerial(void)=0;
30+ virtual void Shift(doubletype shift)=0;
31 virtual void Copy(IssmAbsVec* to)=0;
32 virtual doubletype Norm(NormMode mode)=0;
33 virtual void Scale(doubletype scale_factor)=0;
34Index: ../trunk-jpl/src/c/toolkits/issm/IssmVec.h
35===================================================================
36--- ../trunk-jpl/src/c/toolkits/issm/IssmVec.h (revision 19976)
37+++ ../trunk-jpl/src/c/toolkits/issm/IssmVec.h (revision 19977)
38@@ -179,6 +179,10 @@
39 return vector->ToMPISerial();
40 }
41 /*}}}*/
42+ void Shift(doubletype shift){/*{{{*/
43+ vector->Shift(shift);
44+ }
45+ /*}}}*/
46 void Copy(IssmVec* to){/*{{{*/
47 vector->Copy(to->vector);
48 }
49Index: ../trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h
50===================================================================
51--- ../trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h (revision 19976)
52+++ ../trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h (revision 19977)
53@@ -395,6 +395,10 @@
54
55 }
56 /*}}}*/
57+ void Shift(doubletype shift){/*{{{*/
58+ for(int i=0;i<this->m;i++)this->vector[i]+=shift;
59+ }
60+ /*}}}*/
61 void Copy(IssmAbsVec<doubletype>* toin){/*{{{*/
62
63 int i;
64Index: ../trunk-jpl/src/c/toolkits/issm/IssmSeqVec.h
65===================================================================
66--- ../trunk-jpl/src/c/toolkits/issm/IssmSeqVec.h (revision 19976)
67+++ ../trunk-jpl/src/c/toolkits/issm/IssmSeqVec.h (revision 19977)
68@@ -198,6 +198,12 @@
69
70 }
71 /*}}}*/
72+ void Shift(doubletype shift){/*{{{*/
73+
74+ for(int i=0;i<this->M;i++)this->vector[i]+=shift;
75+
76+ }
77+ /*}}}*/
78 void Copy(IssmAbsVec<doubletype>* toin){/*{{{*/
79
80 int i;
81Index: ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.h
82===================================================================
83--- ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.h (revision 19976)
84+++ ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.h (revision 19977)
85@@ -49,6 +49,7 @@
86 void AXPY(PetscVec* X, IssmDouble a);
87 void AYPX(PetscVec* X, IssmDouble a);
88 IssmDouble* ToMPISerial(void);
89+ void Shift(IssmDouble shift);
90 void Copy(PetscVec* to);
91 IssmDouble Norm(NormMode norm_type);
92 IssmDouble Max(void);
93Index: ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp
94===================================================================
95--- ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp (revision 19976)
96+++ ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp (revision 19977)
97@@ -162,6 +162,12 @@
98
99 }
100 /*}}}*/
101+void PetscVec::Shift(IssmDouble shift){/*{{{*/
102+
103+ if(this->vector) VecShift(this->vector,shift);
104+
105+}
106+/*}}}*/
107 void PetscVec::Copy(PetscVec* to){/*{{{*/
108
109 if(this->vector) VecCopy(this->vector,to->vector);
Note: See TracBrowser for help on using the repository browser.