Commit 1434f805 authored by GILLES Sebastien's avatar GILLES Sebastien
Browse files

#890 Petsc: add a warning in Petsc wrappers to warn the user he should check...

#890 Petsc: add a warning in Petsc wrappers to warn the user he should check the resulting pattern after a matrix-matrix multiplication.
parent ee3f1faf
......@@ -107,10 +107,23 @@ namespace HappyHeart
MatMultTransposeAdd(const MatrixT& matrix, const Vector& v1, const Vector& v2, Vector& v3,
const char* invoking_file, int invoking_line);
/*!
* \class doxygen_hide_matmatmult_warning
*
* \attention In Petsc, matrix-matrix multiplication functions compute on the fly the
* pattern for the resulting matrix. However, it is possible this pattern isn't the one expected;
* in the richer HappyHeart interface you should call in debug mode \a AssertMatrixRespectPattern()
* to make sure the resulting matrix respects the pattern defined for the \a GlobalMatrix pair
* of \a NumberingSubset.
*/
/*!
* \brief Wrapper over MatMatMult, that performs C = A * B.
*
* \copydetails doxygen_hide_matmatmult_warning
*
* If the operation is performed many times with each time the same non zero pattern for the matrices,
* rather use MatMatMultSymbolic/MatMatMultNumeric to improve efficiency.
*
......@@ -171,6 +184,8 @@ namespace HappyHeart
* \brief Wrapper over MatMatMultNumeric, that computes C = A * B in the case MatMatMultSymbolic
* has been used to allocate structure of C.
*
* \copydetails doxygen_hide_matmatmult_warning
*
* \param[in] matrix1 A in C = A * B.
* \param[in] matrix2 B in C = A * B.
* \param[out] matrix3 C in C = A * B.
......@@ -268,6 +283,8 @@ namespace HappyHeart
* \brief Wrapper over MatMatMatMultNumeric, that performs D = A * B * C in the case MatMatMatMultSymbolic
* has been used to allocate structure of D.
*
* \copydetails doxygen_hide_matmatmult_warning
*
* \param[in] matrix1 A in D = A * B * C.
* \param[in] matrix2 B in D = A * B * C.
* \param[in] matrix3 C in D = A * B * C.
......@@ -327,6 +344,8 @@ namespace HappyHeart
/*!
* \brief Performs Matrix-Matrix Multiplication C = A^T * B.
*
* \copydetails doxygen_hide_matmatmult_warning
*
* \todo #684 Investigate to use the argument fill, which provides an estimation of the non zero of the
* resulting matrix. Currently PETSC_DEFAULT is used.
*
......@@ -356,6 +375,8 @@ namespace HappyHeart
/*!
* \brief Performs Matrix-Matrix Multiplication C = A * B^T.
*
* \copydetails doxygen_hide_matmatmult_warning
*
* \todo #684 Investigate to use the argument fill, which provides an estimation of the non zero of the
* resulting matrix. Currently PETSC_DEFAULT is used.
*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment