File hyprelib.hxx#

Provides access to the Hypre library, handling initialisation and finalisation.

Usage

#include <bout/hyprelib.hxx>

class MyClass {
  HypreLib lib;
public:
  // ...
};

This will then automatically ensure Hypre is initialised the first time an instance is created, and finalise it when the last instances is destroyed (across all objects using HypreLib)

namespace bout

Information about the version of BOUT++

The build system will update this file on every commit, which may result in files that include it getting rebuilt. Therefore it should be included in as few places as possible

Information about the version of BOUT++

The build system will update this file at configure-time

Explicit inversion of a 3x3 matrix a

If the matrix is singular (ill conditioned), the determinant is return. Otherwise, an empty std::optional is return

class HypreLib#

Handles initialisation and finalisation of Hypre library.

The first instance which is created initialises Hypre. Keeps a count of the number of how many instances exist, and when the last instance is destroyed it finalises Hypre.

Public Functions

explicit HypreLib()#
HypreLib(const HypreLib &other) noexcept#
HypreLib(HypreLib &&other) noexcept#
HypreLib &operator=(const HypreLib &other) = default#
HypreLib &operator=(HypreLib &&other) = default#
~HypreLib()#

Public Static Functions

static void cleanup()#

Immediately finalise Hypre library.

Private Static Attributes

static int count#

Current number of instances.