ForTrilinos
Data Types
FEpetra_MultiVector Module Reference

Data Types

type  Epetra_MultiVector

Functions/Subroutines

Constructor Functions
type(Epetra_MultiVector), public Epetra_MultiVector (BlockMap, Num_Vectors, zero)
 
Epetra_MultiVector constructor conformal to a BlockMap, optionally zero the newly created vector.
type(Epetra_MultiVector), public Epetra_MultiVector (this)
 
Epetra_MultiVector copy constructor.
Post-construction modification routines
subroutine ReplaceGlobalValue (this, GlobalRow, VectorIndex, ScalarValue, err)
 
Replaces value at location (GlobalRow,VectorIndex) with ScalarValue
subroutine ReplaceGlobalValue (this, GlobalBlockRow, BlockRowOffset, VectorIndex, ScalarValue, err)
 
Replaces value at location (GlobalBlockRow,BlockRowOffset,VectorIndex) with ScalarValue
subroutine ReplaceMyValue (this, MyRow, VectorIndex, ScalarValue, err)
 
Replaces value at location (MyRow,VectorIndex) with ScalarValue
subroutine ReplaceMyValue (this, MyBlockRow, BlockRowOffset, VectorIndex, ScalarValue, err)
 
Replaces value at location (MyBlockRow,BlockRowOffset,VectorIndex) with ScalarValue
subroutine SumIntoGlobalValue (this, GlobalRow, VectorIndex, ScalarValue, err)
 
Adds ScalarValue to value at location (GlobalRow,VectorIndex)
subroutine SumIntoGlobalValue (this, GlobalBlockRow, BlockRowOffset, VectorIndex, ScalarValue, err)
 
Adds ScalarValue to value at location (GlobalBlockRow,BlockRowOffset,VectorIndex)
subroutine SumIntoMyValue (this, MyRow, VectorIndex, ScalarValue, err)
 
Adds ScalarValue to value at location (MyRow,VectorIndex)
subroutine SumIntoMyValue (this, MyBlockRow, BlockRowOffset, VectorIndex, ScalarValue, err)
 
Adds ScalarValue to value at location (MyBlockRow,BlockRowOffset,VectorIndex)
subroutine PutScalar (this, scalar, err)
 
Replaces all entries with scalar value.
subroutine Random (this, err)
 
Replaces all entries with random values.
Mathematical methods
real(c_double), dimension(i),
allocatable 
Dot (this, x, err)
 
Computes the scalar product of corresponding pairs of vectors.
subroutine Abs (this, A, err)
 
Replaces target with element-wise absolute value of input
subroutine Reciprocal (this, A, err)
 
Reciprocal replaces target with element-wise reciprocal value of input
subroutine Scale (this, scalar_value, err)
 
Scales current values this = scalar_value*this
subroutine Scale (this, scalar_value, MultiVector, err)
 
Replaces current values with scaled input this = scalar_value*MultiVector
real(c_double), dimension(:),
allocatable 
Norm1 (this, err)
 
Computes 1-norm of each vector in the input
real(c_double), dimension(:),
allocatable 
Norm2 (this, err)
 
Computes 2-norm of each vector in the input
real(c_double), dimension(:),
allocatable 
NormInf (this, err)
 
Computes infinity norm of each vector in the input
real(c_double), dimension(:),
allocatable 
NormWeighted (this, weights, err)
 
Computes weighted norm (RMS norm) of each vector in the input
real(c_double), dimension(:),
allocatable 
MinValue (this, err)
 
Computes minimum value of each vector in the input
real(c_double), dimension(:),
allocatable 
MaxValue (this, err)
 
MaxValue: compute maximum value of each vector in the input
real(c_double), dimension(:),
allocatable 
MeanValue (this, err)
 
Computes mean (average) value of each vector in the input
subroutine Multiply (this, TransA, TransB, ScalarAB, A, B, ScalarThis, err)
 
Matrix-matrix multiplication this = ScalarThis*This + ScalarAB*MATMUL(A,B)
subroutine Multiply (this, ScalarAB, A, B, ScalarThis, err)
 
Element-by-element multiplication this = ScalarThis*This + ScalarAB*A*B
subroutine ReciprocalMultiply (this, ScalarAB, A, B, ScalarThis, err)
 
Element-by-element multiplication by reciprocal this = ScalarThis*This + ScalarAB*A/B
subroutine Update (this, scalarA, A, scalarThis, err)
 
Updates with scaled copy of input this = ScalarThis*This + ScalarA*A
subroutine Update (this, scalarA, A, scalarB, B, scalarThis, err)
 
Updates with scaled copies of inputs this = ScalarThis*This + ScalarA*A + ScalarB*B
Extraction methods
real(c_double), dimension(:,:),
allocatable 
ExtractCopy (this, MyLDA, err)
 
Copies multivector contents into target
Attribute access
integer(c_int) NumVectors (this)
 
Number of vectors in multivector
integer(c_int) MyLength (this)
 
Local vector length
integer(c_int) GlobalLength (this)
 
Global vector length
integer(c_int) Stride (this)
 
Stride between successive vectors in multivector (only meaningful if ConstantStride()==true)
integer(FT_boolean_t) ConstantStride (this)
 
True if stride between successive vectors is constant

Function/Subroutine Documentation

subroutine FEpetra_MultiVector::Abs ( class(Epetra_MultiVector),intent(inout)  this,
class(Epetra_MultiVector),intent(in)  A,
type(error),intent(out),optional  err 
) [private]


Replaces target with element-wise absolute value of input

Parameters:
AIn The source multivector.
errReturns error information.
integer(FT_boolean_t) FEpetra_MultiVector::ConstantStride ( class(Epetra_MultiVector),intent(in)  this) [private]


True if stride between successive vectors is constant

real(c_double),dimension(i),allocatable FEpetra_MultiVector::Dot ( class(Epetra_MultiVector),intent(in)  this,
class(Epetra_MultiVector),intent(in)  x,
type(error),intent(out),optional  err 
) [private]


Computes the scalar product of corresponding pairs of vectors.

Parameters:
xIn The multivector to be used in conjunction with the "this" multivector
errReturns error information.
type(Epetra_MultiVector),public FEpetra_MultiVector::Epetra_MultiVector ( class(Epetra_MultiVector),intent(in)  this)


Epetra_MultiVector copy constructor.

type(Epetra_MultiVector),public FEpetra_MultiVector::Epetra_MultiVector ( class(Epetra_BlockMap),intent(in)  BlockMap,
integer(c_int),intent(in)  Num_Vectors,
logical,intent(in)  zero 
)


Epetra_MultiVector constructor conformal to a BlockMap, optionally zero the newly created vector.

Parameters:
BlockMapIn The map to which the vector will conform
Num_VectorsIn Number of vectors in multivector
zeroIn Optionally zero out the output.
real(c_double),dimension(:,:),allocatable FEpetra_MultiVector::ExtractCopy ( class(Epetra_MultiVector),intent(in)  this,
integer(c_int),intent(in)  MyLDA,
type(error),intent(out),optional  err 
) [private]


Copies multivector contents into target

The input argument MyLDA is a user request for the size of the output; the actual size will be the maximum between this and the stride of the multivector object.

Parameters:
MyLDAIn: Minimum leading dimension of result.
errReturns error information.
integer(c_int) FEpetra_MultiVector::GlobalLength ( class(Epetra_MultiVector),intent(in)  this) [private]


Global vector length

real(c_double),dimension(:),allocatable FEpetra_MultiVector::MaxValue ( class(Epetra_MultiVector),intent(in)  this,
type(error),intent(out),optional  err 
) [private]


MaxValue: compute maximum value of each vector in the input

Parameters:
errReturns error information.
real(c_double),dimension(:),allocatable FEpetra_MultiVector::MeanValue ( class(Epetra_MultiVector),intent(in)  this,
type(error),intent(out),optional  err 
) [private]


Computes mean (average) value of each vector in the input

Parameters:
errReturns error information.
real(c_double),dimension(:),allocatable FEpetra_MultiVector::MinValue ( class(Epetra_MultiVector),intent(in)  this,
type(error),intent(out),optional  err 
) [private]


Computes minimum value of each vector in the input

Parameters:
errReturns error information.
subroutine FEpetra_MultiVector::Multiply ( class(Epetra_MultiVector),intent(in)  this,
character(c_char),intent(in)  TransA,
character(c_char),intent(in)  TransB,
real(c_double),intent(in)  ScalarAB,
class(Epetra_MultiVector),intent(in)  A,
class(Epetra_MultiVector),intent(in)  B,
real(c_double),intent(in)  ScalarThis,
type(error),intent(out),optional  err 
) [private]


Matrix-matrix multiplication this = ScalarThis*This + ScalarAB*MATMUL(A,B)

This routine will compute the product of the two multivectors A and B and use it to update "this", like the BLAS routine GEMM.

Parameters:
TransAIn: Choose transpose status of A
TransBIn: Choose transpose status of B
ScalarABIn: scale factor for product MATMUL(A,B)
AIn: Input multivector A
BIn: Input multivector B
ScalarThisIn: scale factor for "this"
errReturns error information.
subroutine FEpetra_MultiVector::Multiply ( class(Epetra_MultiVector),intent(in)  this,
real(c_double),intent(in)  ScalarAB,
class(Epetra_MultiVector),intent(in)  A,
class(Epetra_MultiVector),intent(in)  B,
real(c_double),intent(in)  ScalarThis,
type(error),intent(out),optional  err 
) [private]


Element-by-element multiplication this = ScalarThis*This + ScalarAB*A*B

Parameters:
ScalarABIn: scale factor for product A*B
AIn: Input multivector A
BIn: Input multivector B
ScalarThisIn: scale factor for "this"
errReturns error information.
integer(c_int) FEpetra_MultiVector::MyLength ( class(Epetra_MultiVector),intent(in)  this) [private]


Local vector length

real(c_double),dimension(:),allocatable FEpetra_MultiVector::Norm1 ( class(Epetra_MultiVector),intent(in)  this,
type(error),intent(out),optional  err 
) [private]


Computes 1-norm of each vector in the input

Parameters:
errReturns error information.
real(c_double),dimension(:),allocatable FEpetra_MultiVector::Norm2 ( class(Epetra_MultiVector),intent(in)  this,
type(error),intent(out),optional  err 
) [private]


Computes 2-norm of each vector in the input

Parameters:
errReturns error information.
real(c_double),dimension(:),allocatable FEpetra_MultiVector::NormInf ( class(Epetra_MultiVector),intent(in)  this,
type(error),intent(out),optional  err 
) [private]


Computes infinity norm of each vector in the input

Parameters:
errReturns error information.
real(c_double),dimension(:),allocatable FEpetra_MultiVector::NormWeighted ( class(Epetra_MultiVector),intent(in)  this,
class(Epetra_MultiVector),intent(in)  weights,
type(error),intent(out),optional  err 
) [private]


Computes weighted norm (RMS norm) of each vector in the input

Parameters:
weightsIn: the weights.
errReturns error information.
integer(c_int) FEpetra_MultiVector::NumVectors ( class(Epetra_MultiVector),intent(in)  this) [private]


Number of vectors in multivector

subroutine FEpetra_MultiVector::PutScalar ( class(Epetra_MultiVector),intent(inout)  this,
real(c_double),intent(in)  scalar,
type(error),intent(out),optional  err 
) [private]


Replaces all entries with scalar value.

Parameters:
scalarIn The scalar to which all entries will be set
errReturns error information.
subroutine FEpetra_MultiVector::Random ( class(Epetra_MultiVector),intent(inout)  this,
type(error),intent(out),optional  err 
) [private]


Replaces all entries with random values.

Parameters:
errReturns error information.
subroutine FEpetra_MultiVector::Reciprocal ( class(Epetra_MultiVector),intent(inout)  this,
class(Epetra_MultiVector),intent(in)  A,
type(error),intent(out),optional  err 
) [private]


Reciprocal replaces target with element-wise reciprocal value of input

Parameters:
AIn The source multivector.
errReturns error information.
subroutine FEpetra_MultiVector::ReciprocalMultiply ( class(Epetra_MultiVector),intent(in)  this,
real(c_double),intent(in)  ScalarAB,
class(Epetra_MultiVector),intent(in)  A,
class(Epetra_MultiVector),intent(in)  B,
real(c_double),intent(in)  ScalarThis,
type(error),intent(out),optional  err 
) [private]


Element-by-element multiplication by reciprocal this = ScalarThis*This + ScalarAB*A/B

Parameters:
ScalarABIn: scale factor for reciprocal product A/B
AIn: Input multivector A
BIn: Input multivector B
ScalarThisIn: scale factor for "this"
errReturns error information.
subroutine FEpetra_MultiVector::ReplaceGlobalValue ( class(Epetra_MultiVector),intent(in)  this,
integer(c_int),intent(in)  GlobalBlockRow,
integer(c_int),intent(in)  BlockRowOffset,
integer(c_int),intent(in)  VectorIndex,
real(c_double),intent(in)  ScalarValue,
type(error),intent(out),optional  err 
) [private]


Replaces value at location (GlobalBlockRow,BlockRowOffset,VectorIndex) with ScalarValue

The index of the specified location must correspond to an index owned by the map on the calling process; i.e. no communication takes place.

Parameters:
GlobalBlockRowIn The global block row to be set
BlockRowOffsetIn The global block row offest to be set
VectorIndexIn The vector index within the multivector to be set
ScalarValueIn The scalar value to be set
errReturns error information.
subroutine FEpetra_MultiVector::ReplaceGlobalValue ( class(Epetra_MultiVector),intent(in)  this,
integer(c_int),intent(in)  GlobalRow,
integer(c_int),intent(in)  VectorIndex,
real(c_double),intent(in)  ScalarValue,
type(error),intent(out),optional  err 
) [private]


Replaces value at location (GlobalRow,VectorIndex) with ScalarValue

The index of the specified location must correspond to an index owned by the map on the calling process; i.e. no communication takes place.

Parameters:
GlobalRowIn The global row to be set
VectorIndexIn The vector index within the multivector to be set
ScalarValueIn The value to be set
errReturns error information.
subroutine FEpetra_MultiVector::ReplaceMyValue ( class(Epetra_MultiVector),intent(in)  this,
integer(c_int),intent(in)  MyBlockRow,
integer(c_int),intent(in)  BlockRowOffset,
integer(c_int),intent(in)  VectorIndex,
real(c_double),intent(in)  ScalarValue,
type(error),intent(out),optional  err 
) [private]


Replaces value at location (MyBlockRow,BlockRowOffset,VectorIndex) with ScalarValue

Parameters:
MyBlockRowIn The local block row to be set
BlockRowOffsetIn The local block row offset to be set
VectorIndexIn The vector index within the multivector to be set
ScalarValueIn The scalar value to be set
subroutine FEpetra_MultiVector::ReplaceMyValue ( class(Epetra_MultiVector),intent(in)  this,
integer(c_int),intent(in)  MyRow,
integer(c_int),intent(in)  VectorIndex,
real(c_double),intent(in)  ScalarValue,
type(error),intent(out),optional  err 
) [private]


Replaces value at location (MyRow,VectorIndex) with ScalarValue

The index of the specified location must be that of a locally owned element.

Parameters:
MyRowIn The local row to be set
VectorIndexIn The vector index within the multivector to be set
ScalarValueIn The scalar value to be set
errReturns error information.
subroutine FEpetra_MultiVector::Scale ( class(Epetra_MultiVector),intent(inout)  this,
real(c_double),intent(in)  scalar_value,
type(error),intent(out),optional  err 
) [private]


Scales current values this = scalar_value*this

Parameters:
scalar_valueIn The scale factor.
errReturns error information.
subroutine FEpetra_MultiVector::Scale ( class(Epetra_MultiVector),intent(inout)  this,
real(c_double),intent(in)  scalar_value,
class(Epetra_MultiVector),intent(in)  MultiVector,
type(error),intent(out),optional  err 
) [private]


Replaces current values with scaled input this = scalar_value*MultiVector

Parameters:
scalar_valueIn The scale factor.
MultiVectorIn The source multivector.
errReturns error information.
integer(c_int) FEpetra_MultiVector::Stride ( class(Epetra_MultiVector),intent(in)  this) [private]


Stride between successive vectors in multivector (only meaningful if ConstantStride()==true)

subroutine FEpetra_MultiVector::SumIntoGlobalValue ( class(Epetra_MultiVector),intent(in)  this,
integer(c_int),intent(in)  GlobalRow,
integer(c_int),intent(in)  VectorIndex,
real(c_double),intent(in)  ScalarValue,
type(error),intent(out),optional  err 
) [private]


Adds ScalarValue to value at location (GlobalRow,VectorIndex)

Parameters:
GlobalRowIn The global row to be modified
VectorIndexIn The vector index within the multivector to be modified
ScalarValueIn The scalar value to be added
subroutine FEpetra_MultiVector::SumIntoGlobalValue ( class(Epetra_MultiVector),intent(in)  this,
integer(c_int),intent(in)  GlobalBlockRow,
integer(c_int),intent(in)  BlockRowOffset,
integer(c_int),intent(in)  VectorIndex,
real(c_double),intent(in)  ScalarValue,
type(error),intent(out),optional  err 
) [private]


Adds ScalarValue to value at location (GlobalBlockRow,BlockRowOffset,VectorIndex)

Parameters:
GlobalBlockRowIn The global block row to be modified
BlockRowOffsetIn The global block row offset to be modified
VectorIndexIn The vector index within the multivector to be modified
ScalarValueIn The scalar value to be added
errReturns error information.
subroutine FEpetra_MultiVector::SumIntoMyValue ( class(Epetra_MultiVector),intent(in)  this,
integer(c_int),intent(in)  MyBlockRow,
integer(c_int),intent(in)  BlockRowOffset,
integer(c_int),intent(in)  VectorIndex,
real(c_double),intent(in)  ScalarValue,
type(error),intent(out),optional  err 
) [private]


Adds ScalarValue to value at location (MyBlockRow,BlockRowOffset,VectorIndex)

Parameters:
MyBlockRowIn The local block row to be modified
BlockRowOffsetIn The local block row offset to be modified
VectorIndexIn The vector index within the multivector to be modified
ScalarValueIn The scalar value to be added
errReturns error information.
subroutine FEpetra_MultiVector::SumIntoMyValue ( class(Epetra_MultiVector),intent(in)  this,
integer(c_int),intent(in)  MyRow,
integer(c_int),intent(in)  VectorIndex,
real(c_double),intent(in)  ScalarValue,
type(error),intent(out),optional  err 
) [private]


Adds ScalarValue to value at location (MyRow,VectorIndex)

Parameters:
MyRowIn The local row to be modified
VectorIndexIn The vector index within the multivector to be modified
ScalarValueIn The scalar value to be added
errReturns error information.
subroutine FEpetra_MultiVector::Update ( class(Epetra_MultiVector),intent(inout)  this,
real(c_double),intent(in)  scalarA,
class(Epetra_MultiVector),intent(in)  A,
real(c_double),intent(in)  scalarThis,
type(error),intent(out),optional  err 
) [private]


Updates with scaled copy of input this = ScalarThis*This + ScalarA*A

Parameters:
scalarAIn: scale factor for p A
AIn: Input multivector A
scalarThisIn: scale factor for "this"
errReturns error information.
subroutine FEpetra_MultiVector::Update ( class(Epetra_MultiVector),intent(inout)  this,
real(c_double),intent(in)  scalarA,
class(Epetra_MultiVector),intent(in)  A,
real(c_double),intent(in)  scalarB,
class(Epetra_MultiVector),intent(in)  B,
real(c_double),intent(in)  scalarThis,
type(error),intent(out),optional  err 
) [private]


Updates with scaled copies of inputs this = ScalarThis*This + ScalarA*A + ScalarB*B

Parameters:
scalarAIn: scale factor for A
AIn: Input multivector A
scalarBIn: scale factor for B
BIn: Input multivector B
scalarThisIn: scale factor for "this"
errReturns error information.
 All Classes Namespaces Files Functions