13.2.9 MatVec_ELL_Matrix Procedure

The MatVec procedure calculates the global matrix-vector product of an ELL Matrix and a Mathematic Vector. It has some ``smart'' features:

- Overlapped_Vectors are used to store off-processor elements between MatVecs.
- MatVecs between a matrix (that may have changed) and a vector that hasn't changed do not do any global communication.
- The above is true for up to four (current number, could be expanded) different matrices, with different sparsity patterns.

Calling syntax:

call MatVec (ELLM, MV_in, MV_out) |

Input variables:

ELLM |
An ELL_Matrix object to be multiplied. | ||

MV_in |
A Mathematic_Vector object to be multiplied. The Structure of the Mathematic_Vector must be the same as the Column_Structure of the ELL_Matrix. | ||

MV_out |
Mathematic_Vector object for output, but must have a Valid_State and the same Structure as the Row_Structure of ELLM on input. |

Output variable:

MV_out |
Mathematic_Vector object result of multiplying the ELL_Matrix object by the Mathematic_Vector object. The resultant Mathematic_Vector will have the same Structure as the Row_Structure of the ELL_Matrix. |

The MatVec_ELL_Matrix code listing contains additional documentation.

Michael L. Hall