|
ForTrilinos
|
Data Types | |
| type | Epetra_MultiVector |
Public Member Functions | |
Constructor Functions | |
| type(Epetra_MultiVector) function, public | Epetra_MultiVector (BlockMap, Num_Vectors, zero) |
Epetra_MultiVector constructor conformal to a BlockMap, optionally zero the newly created vector. | |
| type(Epetra_MultiVector) function, public | Epetra_MultiVector (this) |
Epetra_MultiVector copy constructor. | |
Private Member Functions | |
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) real(c_double) function, 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) real(c_double) function, dimension(:), allocatable | Norm1 (this, err) |
Computes 1-norm of each vector in the input | |
| real(c_double) real(c_double) function, dimension(:), allocatable | Norm2 (this, err) |
Computes 2-norm of each vector in the input | |
| real(c_double) real(c_double) function, dimension(:), allocatable | NormInf (this, err) |
Computes infinity norm of each vector in the input | |
| real(c_double) function, dimension(:), allocatable | NormWeighted (this, weights, err) |
Computes weighted norm (RMS norm) of each vector in the input | |
| real(c_double) real(c_double) function, dimension(:), allocatable | MinValue (this, err) |
Computes minimum value of each vector in the input | |
| real(c_double) real(c_double) function, dimension(:), allocatable | MaxValue (this, err) |
MaxValue: compute maximum value of each vector in the input | |
| real(c_double) real(c_double) function, 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) function, dimension(:,:), allocatable | ExtractCopy (this, MyLDA, err) |
Copies multivector contents into target | |
Attribute access | |
| integer(c_int) function | NumVectors (this) |
Number of vectors in multivector | |
| integer(c_int) function | MyLength (this) |
Local vector length | |
| integer(c_int) function | GlobalLength (this) |
Global vector length | |
| integer(c_int) function | Stride (this) |
Stride between successive vectors in multivector (only meaningful if ConstantStride()==true) | |
| integer(FT_boolean_t) function | ConstantStride (this) |
True if stride between successive vectors is constant | |
| 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
| [in] | A | In The source multivector. |
| [out] | err | Returns error information. |
| integer(FT_boolean_t) function FEpetra_MultiVector::ConstantStride | ( | class(Epetra_MultiVector), intent(in) | this | ) | [private] |
True if stride between successive vectors is constant
| real(c_double) real(c_double) function, 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.
| [in] | x | In The multivector to be used in conjunction with the "this" multivector |
| [out] | err | Returns error information. |
| type(Epetra_MultiVector) function, public FEpetra_MultiVector::Epetra_MultiVector | ( | class(Epetra_MultiVector), intent(in) | this | ) |
Epetra_MultiVector copy constructor.
| type(Epetra_MultiVector) function, 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.
| [in] | BlockMap | In The map to which the vector will conform |
| [in] | Num_Vectors | In Number of vectors in multivector |
| [in] | zero | In Optionally zero out the output. |
| real(c_double) function, 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.
| [in] | MyLDA | In: Minimum leading dimension of result. |
| [out] | err | Returns error information. |
| integer(c_int) function FEpetra_MultiVector::GlobalLength | ( | class(Epetra_MultiVector), intent(in) | this | ) | [private] |
Global vector length
| real(c_double) real(c_double) function, 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
| [out] | err | Returns error information. |
| real(c_double) real(c_double) function, 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
| [out] | err | Returns error information. |
| real(c_double) real(c_double) function, 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
| [out] | err | Returns 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.
| [in] | TransA | In: Choose transpose status of A |
| [in] | TransB | In: Choose transpose status of B |
| [in] | A | In: Input multivector A |
| [in] | B | In: Input multivector B |
| [in] | ScalarAB | In: scale factor for product MATMUL(A,B) |
| [in] | ScalarThis | In: scale factor for "this" |
| [out] | err | Returns 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
| [in] | A | In: Input multivector A |
| [in] | B | In: Input multivector B |
| [in] | ScalarAB | In: scale factor for product A*B |
| [in] | ScalarThis | In: scale factor for "this" |
| [out] | err | Returns error information. |
| integer(c_int) function FEpetra_MultiVector::MyLength | ( | class(Epetra_MultiVector), intent(in) | this | ) | [private] |
Local vector length
| real(c_double) real(c_double) function, 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
| [out] | err | Returns error information. |
| real(c_double) real(c_double) function, 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
| [out] | err | Returns error information. |
| real(c_double) real(c_double) function, 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
| [out] | err | Returns error information. |
| real(c_double) function, 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
| [in] | weights | In: the weights. |
| [out] | err | Returns error information. |
| integer(c_int) function 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.
| [in] | scalar | In The scalar to which all entries will be set |
| [out] | err | Returns 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.
| [out] | err | Returns 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
| [in] | A | In The source multivector. |
| [out] | err | Returns 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
| [in] | A | In: Input multivector A |
| [in] | B | In: Input multivector B |
| [in] | ScalarAB | In: scale factor for reciprocal product A/B |
| [in] | ScalarThis | In: scale factor for "this" |
| [out] | err | Returns 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.
| [in] | GlobalBlockRow | In The global block row to be set |
| [in] | BlockRowOffset | In The global block row offest to be set |
| [in] | VectorIndex | In The vector index within the multivector to be set |
| [in] | ScalarValue | In The scalar value to be set |
| [out] | err | Returns 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.
| [in] | GlobalRow | In The global row to be set |
| [in] | VectorIndex | In The vector index within the multivector to be set |
| [in] | ScalarValue | In The value to be set |
| [out] | err | Returns 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
| [in] | MyBlockRow | In The local block row to be set |
| [in] | BlockRowOffset | In The local block row offset to be set |
| [in] | VectorIndex | In The vector index within the multivector to be set |
| [in] | ScalarValue | In 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.
| [in] | MyRow | In The local row to be set |
| [in] | VectorIndex | In The vector index within the multivector to be set |
| [in] | ScalarValue | In The scalar value to be set |
| [out] | err | Returns 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
| [in] | scalar_value | In The scale factor. |
| [out] | err | Returns 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
| [in] | MultiVector | In The source multivector. |
| [in] | scalar_value | In The scale factor. |
| [out] | err | Returns error information. |
| integer(c_int) function 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)
| [in] | GlobalRow | In The global row to be modified |
| [in] | VectorIndex | In The vector index within the multivector to be modified |
| [in] | ScalarValue | In 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)
| [in] | GlobalBlockRow | In The global block row to be modified |
| [in] | BlockRowOffset | In The global block row offset to be modified |
| [in] | VectorIndex | In The vector index within the multivector to be modified |
| [in] | ScalarValue | In The scalar value to be added |
| [out] | err | Returns 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)
| [in] | MyBlockRow | In The local block row to be modified |
| [in] | BlockRowOffset | In The local block row offset to be modified |
| [in] | VectorIndex | In The vector index within the multivector to be modified |
| [in] | ScalarValue | In The scalar value to be added |
| [out] | err | Returns 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)
| [in] | MyRow | In The local row to be modified |
| [in] | VectorIndex | In The vector index within the multivector to be modified |
| [in] | ScalarValue | In The scalar value to be added |
| [out] | err | Returns 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
| [in] | A | In: Input multivector A |
| [in] | ScalarA | In: scale factor for p A |
| [in] | ScalarThis | In: scale factor for "this" |
| [out] | err | Returns 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
| [in] | ScalarA | In: scale factor for A |
| [in] | A | In: Input multivector A |
| [in] | ScalarB | In: scale factor for B |
| [in] | B | In: Input multivector B |
| [in] | ScalarThis | In: scale factor for "this" |
| [out] | err | Returns error information. |
1.7.6.1