44 #ifndef EPETRA_INTMULTIVECTOR_H
45 #define EPETRA_INTMULTIVECTOR_H
47 #if defined(Epetra_SHOW_DEPRECATED_WARNINGS)
49 #warning "The Epetra package is deprecated"
238 int *
A,
int MyLDA,
int NumVectors);
257 int **ArrayOfPointers,
int NumVectors);
323 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
324 int ReplaceGlobalValue(
int GlobalRow,
int VectorIndex,
int OrdinalValue);
326 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
327 int ReplaceGlobalValue(
long long GlobalRow,
int VectorIndex,
int OrdinalValue);
350 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
351 int ReplaceGlobalValue(
int GlobalBlockRow,
int BlockRowOffset,
int VectorIndex,
int OrdinalValue);
353 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
354 int ReplaceGlobalValue(
long long GlobalBlockRow,
int BlockRowOffset,
int VectorIndex,
int OrdinalValue);
378 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
379 int SumIntoGlobalValue(
int GlobalRow,
int VectorIndex,
int OrdinalValue);
381 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
382 int SumIntoGlobalValue(
long long GlobalRow,
int VectorIndex,
int OrdinalValue);
405 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
406 int SumIntoGlobalValue(
int GlobalBlockRow,
int BlockRowOffset,
int VectorIndex,
int OrdinalValue);
408 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
409 int SumIntoGlobalValue(
long long GlobalBlockRow,
int BlockRowOffset,
int VectorIndex,
int OrdinalValue);
437 int ReplaceMyValue(
int MyRow,
int VectorIndex,
int OrdinalValue);
459 int ReplaceMyValue(
int MyBlockRow,
int BlockRowOffset,
int VectorIndex,
int OrdinalValue);
482 int SumIntoMyValue(
int MyRow,
int VectorIndex,
int OrdinalValue);
504 int SumIntoMyValue(
int MyBlockRow,
int BlockRowOffset,
int VectorIndex,
int OrdinalValue);
513 int PutScalar (
int OrdinalConstant);
535 int ExtractCopy(
int *A,
int MyLDA)
const;
548 int ExtractCopy(
int **ArrayOfPointers)
const;
568 int ExtractView(
int **A,
int *MyLDA)
const;
581 int ExtractView(
int ***ArrayOfPointers)
const;
598 int MinValue (
int * Result)
const;
610 int MaxValue (
int * Result)
const;
634 int*& operator [] (
int i) {
return Pointers_[i]; }
640 int *
const & operator [] (
int i)
const {
return Pointers_[i]; }
665 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
667 if(
Map().GlobalIndicesInt())
668 return (
int) GlobalLength_;
669 throw "Epetra_MultiVector::GlobalLength: GlobalIndices not int.";
690 virtual void Print(std::ostream & os)
const;
716 int ResetView(
int ** ArrayOfPointers);
745 int AllocateForCopy(
void);
749 {
if (OrdinalTemp_==0) OrdinalTemp_=
new int[NumVectors_+1];
return;}
752 for (
int i=0; i<NumVectors_; i++) IntVectors_[i] = 0;}
756 int AllocateForView(
void);
758 template<
typename int_type>
759 int ChangeGlobalValue(int_type GlobalBlockRow,
764 int ChangeMyValue(
int MyBlockRow,
776 int * PermuteFromLIDs,
void UpdateIntVectors() const
int ** Pointers() const
Get pointer to individual vector pointers.
Epetra_Map: A class for partitioning vectors and matrices.
Epetra_Distributor: The Epetra Gather/Scatter Setup Base Class.
virtual int CopyAndPermute(const Epetra_SrcDistObject &Source, int NumSameIDs, int NumPermuteIDs, int *PermuteToLIDs, int *PermuteFromLIDs, const Epetra_OffsetIndex *Indexor, Epetra_CombineMode CombineMode=Zero)=0
Perform ID copies and permutations that are on processor.
Epetra_OffsetIndex: This class builds index for efficient mapping of data from one Epetra_CrsGraph ba...
Epetra_IntVector: A class for constructing and using dense integer vectors on a parallel computer...
int MyLength() const
Returns the local vector length on the calling processor of vectors in the multi-vector.
virtual void Print(std::ostream &os) const
Print method.
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements...
bool ConstantStride() const
Returns true if this multi-vector has constant stride between vectors.
int NumVectors() const
Returns the number of vectors in the multi-vector.
int * Values() const
Get pointer to MultiVector values.
Epetra_IntMultiVector: A class for constructing and using dense multi-vectors, vectors and matrices i...
Epetra_CompObject & operator=(const Epetra_CompObject &src)
Epetra_Import: This class builds an import object for efficient importing of off-processor elements...
virtual int CheckSizes(const Epetra_SrcDistObject &Source)=0
Allows the source and target (this) objects to be compared for compatibility, return nonzero if not...
Epetra_IntVector ** IntVectors_
Epetra_Util: The Epetra Util Wrapper Class.
Epetra_BLAS: The Epetra BLAS Wrapper Class.
Epetra_Comm: The Epetra Communication Abstract Base Class.
Epetra_CompObject: Functionality and data that is common to all computational classes.
virtual int UnpackAndCombine(const Epetra_SrcDistObject &Source, int NumImportIDs, int *ImportLIDs, int LenImports, char *Imports, int &SizeOfPacket, Epetra_Distributor &Distor, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor)=0
Perform any unpacking and combining after call to DoTransfer().
Epetra_BlockMap: A class for partitioning block element vectors and matrices.
int GlobalLength() const
Returns the global vector length of vectors in the multi-vector.
int Stride() const
Returns the stride between vectors in the multi-vector (only meaningful if ConstantStride() is true)...
void UpdateOrdinalTemp() const
Epetra_SrcDistObject: A class for supporting flexible source distributed objects for import/export op...
long long GlobalLength64() const
Epetra_DistObject: A class for constructing and using dense multi-vectors, vectors and matrices in pa...
virtual int PackAndPrepare(const Epetra_SrcDistObject &Source, int NumExportIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &SizeOfPacket, int *Sizes, bool &VarSizes, Epetra_Distributor &Distor)=0
Perform any packing or preparation required for call to DoTransfer().
const Epetra_BlockMap & Map() const
Returns the address of the Epetra_BlockMap for this multi-vector.