Changeset 19977


Ignore:
Timestamp:
01/22/16 09:34:31 (9 years ago)
Author:
Eric.Larour
Message:

CHG: new capability to shift a toolkit vector by a certain offset. Akin to the VecShift routine
in Petsc.

Location:
issm/trunk-jpl/src/c/toolkits
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/toolkits/issm/IssmAbsVec.h

    r15777 r19977  
    4242                virtual void AYPX(IssmAbsVec* X, doubletype a)=0;
    4343                virtual doubletype* ToMPISerial(void)=0;
     44                virtual void Shift(doubletype shift)=0;
    4445                virtual void Copy(IssmAbsVec* to)=0;
    4546                virtual doubletype Norm(NormMode mode)=0;
  • TabularUnified issm/trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h

    r18063 r19977  
    394394                        return buffer;
    395395
     396                }
     397                /*}}}*/
     398                void Shift(doubletype shift){/*{{{*/
     399                        for(int i=0;i<this->m;i++)this->vector[i]+=shift;
    396400                }
    397401                /*}}}*/
  • TabularUnified issm/trunk-jpl/src/c/toolkits/issm/IssmSeqVec.h

    r18063 r19977  
    199199                }
    200200                /*}}}*/
     201                void Shift(doubletype shift){/*{{{*/
     202
     203                        for(int i=0;i<this->M;i++)this->vector[i]+=shift;
     204
     205                }
     206                /*}}}*/
    201207                void Copy(IssmAbsVec<doubletype>* toin){/*{{{*/
    202208
  • TabularUnified issm/trunk-jpl/src/c/toolkits/issm/IssmVec.h

    r15358 r19977  
    180180                }
    181181                /*}}}*/
     182                void Shift(doubletype shift){/*{{{*/
     183                        vector->Shift(shift);
     184                }
     185                /*}}}*/
    182186                void Copy(IssmVec* to){/*{{{*/
    183187                        vector->Copy(to->vector);
  • TabularUnified issm/trunk-jpl/src/c/toolkits/objects/Vector.h

    r18063 r19977  
    281281                }
    282282                /*}}}*/
     283                void Shift(doubletype shift){_assert_(this);/*{{{*/
     284
     285                        if(type==PetscVecType){
     286                                #ifdef _HAVE_PETSC_
     287                                this->pvector->Shift(shift);
     288                                #endif
     289                        }
     290                        else this->ivector->Shift(shift);
     291                }
     292                /*}}}*/
    283293                void Copy(Vector* to){_assert_(this);/*{{{*/
    284294
  • TabularUnified issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp

    r18063 r19977  
    163163}
    164164/*}}}*/
     165void PetscVec::Shift(IssmDouble shift){/*{{{*/
     166
     167        if(this->vector) VecShift(this->vector,shift);
     168
     169}
     170/*}}}*/
    165171void PetscVec::Copy(PetscVec* to){/*{{{*/
    166172
  • TabularUnified issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.h

    r17509 r19977  
    5050                void        AYPX(PetscVec* X, IssmDouble a);
    5151                IssmDouble* ToMPISerial(void);
     52                void        Shift(IssmDouble shift);
    5253                void        Copy(PetscVec* to);
    5354                IssmDouble  Norm(NormMode norm_type);
Note: See TracChangeset for help on using the changeset viewer.