GEOS
HypreInterface.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 Total, S.A
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
20 #ifndef GEOS_LINEARALGEBRA_INTERFACES_HYPREINTERFACE_HPP_
21 #define GEOS_LINEARALGEBRA_INTERFACES_HYPREINTERFACE_HPP_
22 
25 #include "linearAlgebra/common/PreconditionerBase.hpp"
27 
28 #include <memory>
29 
30 namespace geos
31 {
32 
38 {
42  static void initialize();
43 
47  static void finalize();
48 
54  static std::unique_ptr< LinearSolverBase< HypreInterface > >
56 
62  static std::unique_ptr< PreconditionerBase< HypreInterface > >
64 
71  static std::unique_ptr< PreconditionerBase< HypreInterface > >
73  array1d< HypreVector > const & nearNullKernel );
74 
77 
80 
81 };
82 
83 } /* namespace geos */
84 
85 #endif /*GEOS_LINEARALGEBRA_INTERFACES_HYPREINTERFACE_HPP_*/
Wrapper class for hypre's ParCSRMatrix.
Definition: HypreMatrix.hpp:56
Wrapper class for hypre's ParVector.
Definition: HypreVector.hpp:51
Array< T, 1 > array1d
Alias for 1D array.
Definition: DataTypes.hpp:176
This class holds aliases based on the Hypre library.
static std::unique_ptr< LinearSolverBase< HypreInterface > > createSolver(LinearSolverParameters params)
Create a hypre-based solver object.
static std::unique_ptr< PreconditionerBase< HypreInterface > > createPreconditioner(LinearSolverParameters params)
Create a hypre-based preconditioner object.
static void initialize()
Initializes the Hypre library.
static void finalize()
Finalizes the Hypre library.
static std::unique_ptr< PreconditionerBase< HypreInterface > > createPreconditioner(LinearSolverParameters params, array1d< HypreVector > const &nearNullKernel)
Create a hypre-based preconditioner object.
Set of parameters for a linear solver or preconditioner.