[20498] | 1 | Index: ../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){
|
---|
| 22 | Index: ../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;
|
---|
| 34 | Index: ../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 | }
|
---|
| 49 | Index: ../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;
|
---|
| 64 | Index: ../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;
|
---|
| 81 | Index: ../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);
|
---|
| 93 | Index: ../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);
|
---|