diff --git a/Documentation/Doxyfile b/Documentation/Doxyfile index 58f4b4b1f5dd14df7d91fabad213d05e09fcf08e..8b3faf7032228a2d66bdb75a1784db70e0e14a07 100644 --- a/Documentation/Doxyfile +++ b/Documentation/Doxyfile @@ -2123,6 +2123,7 @@ INCLUDE_FILE_PATTERNS = PREDEFINED = DOXYGEN_ONLY PREDEFINED += HAVE_MPI PREDEFINED += HAVE_CUDA +PREDEFINED += HAVE_HYPRE # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The diff --git a/Documentation/Pages/main-page.md b/Documentation/Pages/main-page.md index 8ad6e6d80bbce5da120f208e30e6d9e5a0e3a9e4..32d97d75f47c039c34356a4ae9b777df4352aa69 100644 --- a/Documentation/Pages/main-page.md +++ b/Documentation/Pages/main-page.md @@ -178,6 +178,11 @@ computing platform, and (optionally) some libraries. <td> </td> <td> Only used for the compilation of the `tnl-decompose-mesh` tool. </td> </tr> + <tr><td> [Hypre](https://github.com/hypre-space/hypre) </td> + <td> \ref Hypre "Wrappers for Hypre solvers" </td> + <td> `-DHAVE_HYPRE -lHYPRE` </td> + <td> Attention should be paid to Hypre build options, e.g. `--enable-bigint`. </td> + </tr> <tr><td> [libpng](http://www.libpng.org/pub/png/libpng.html) </td> <td> \ref TNL::Images "Image processing" classes </td> <td> `-DHAVE_PNG_H -lpng` </td> diff --git a/src/TNL/Containers/HypreParVector.h b/src/TNL/Containers/HypreParVector.h index a26b3c96b5c2f16b6f24f3b5b5053366951742f4..20258e3dd9ba409d2c84248568893200ac0daaa9 100644 --- a/src/TNL/Containers/HypreParVector.h +++ b/src/TNL/Containers/HypreParVector.h @@ -23,6 +23,8 @@ namespace Containers { * - https://github.com/hypre-space/hypre/blob/master/src/parcsr_mv/par_vector.h * - https://github.com/hypre-space/hypre/blob/master/src/parcsr_mv/par_vector.c * - https://github.com/hypre-space/hypre/blob/master/src/parcsr_mv/_hypre_parcsr_mv.h (catch-all interface) + * + * \ingroup Hypre */ class HypreParVector { diff --git a/src/TNL/Containers/HypreVector.h b/src/TNL/Containers/HypreVector.h index 9dce7dbe36637311e5276393d16cd8870ae92975..5fc6a6ebdc92156e0650b959eeae702ab53de590 100644 --- a/src/TNL/Containers/HypreVector.h +++ b/src/TNL/Containers/HypreVector.h @@ -24,6 +24,8 @@ namespace Containers { * - https://github.com/hypre-space/hypre/blob/master/src/seq_mv/vector.h * - https://github.com/hypre-space/hypre/blob/master/src/seq_mv/vector.c * - https://github.com/hypre-space/hypre/blob/master/src/seq_mv/seq_mv.h (catch-all interface) + * + * \ingroup Hypre */ class HypreVector { diff --git a/src/TNL/Hypre.h b/src/TNL/Hypre.h index 1cdecf007a6fd38b6f34a51f04ac37aed596b1e0..591b82fcc168a2788cd138e4bea9681cff99eb54 100644 --- a/src/TNL/Hypre.h +++ b/src/TNL/Hypre.h @@ -36,6 +36,19 @@ namespace TNL { +/** + * \defgroup Hypre Wrappers for the Hypre library + * + * This group includes various wrapper classes for data structures and + * algorithms implemented in the [Hypre library][hypre]. See the + * [example][example] for how these wrappers can be used. + * + * [hypre]: https://github.com/hypre-space/hypre + * [example]: https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/blob/develop/src/Examples/Hypre/tnl-hypre-ex5.cpp + * + * @{ + */ + /** * \brief A simple RAII wrapper for Hypre's initialization and finalization. * @@ -111,4 +124,7 @@ struct Hypre #endif // clang-format on +// this is a Doxygen end-group marker +//! @} + #endif // HAVE_HYPRE diff --git a/src/TNL/Matrices/HypreCSRMatrix.h b/src/TNL/Matrices/HypreCSRMatrix.h index eca80e816ccbe97ab589657dc4976a2760aec225..0a9590ba453e259b0570819b664437acab850dea 100644 --- a/src/TNL/Matrices/HypreCSRMatrix.h +++ b/src/TNL/Matrices/HypreCSRMatrix.h @@ -24,6 +24,8 @@ namespace Matrices { * - https://github.com/hypre-space/hypre/blob/master/src/seq_mv/csr_matrix.h * - https://github.com/hypre-space/hypre/blob/master/src/seq_mv/csr_matrix.c * - https://github.com/hypre-space/hypre/blob/master/src/seq_mv/seq_mv.h (catch-all interface) + * + * \ingroup Hypre */ class HypreCSRMatrix { diff --git a/src/TNL/Matrices/HypreParCSRMatrix.h b/src/TNL/Matrices/HypreParCSRMatrix.h index 225fc4917eed5448baf6fb7fc21e80bdc1b8d559..b409e8d7c5e6ab2b58d8cb4edef527aada8edfdc 100644 --- a/src/TNL/Matrices/HypreParCSRMatrix.h +++ b/src/TNL/Matrices/HypreParCSRMatrix.h @@ -20,6 +20,8 @@ namespace Matrices { * - https://github.com/hypre-space/hypre/blob/master/src/seq_mv/csr_matrix.h * - https://github.com/hypre-space/hypre/blob/master/src/seq_mv/csr_matrix.c * - https://github.com/hypre-space/hypre/blob/master/src/seq_mv/seq_mv.h (catch-all interface) + * + * \ingroup Hypre */ class HypreParCSRMatrix { diff --git a/src/TNL/Solvers/Linear/Hypre.h b/src/TNL/Solvers/Linear/Hypre.h index ec46cd852fedf49d188e905bcf2059f63ee0fc70..229da24f65e2695e51c2c4876769faf7d3992d52 100644 --- a/src/TNL/Solvers/Linear/Hypre.h +++ b/src/TNL/Solvers/Linear/Hypre.h @@ -17,6 +17,9 @@ namespace TNL { namespace Solvers { namespace Linear { +//! \addtogroup Hypre +//! @{ + //! \brief Abstract class for Hypre's solvers and preconditioners class HypreSolver { @@ -762,4 +765,7 @@ protected: #include "Hypre.hpp" +// this is a Doxygen end-group marker +//! @} + #endif // HAVE_HYPRE