GEOSX
TrilinosInterface.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2020 TotalEnergies
8  * Copyright (c) 2019- GEOSX Contributors
9  * All rights reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
19 #ifndef GEOS_LINEARALGEBRA_INTERFACES_TRILINOSINTERFACE_HPP_
20 #define GEOS_LINEARALGEBRA_INTERFACES_TRILINOSINTERFACE_HPP_
21 
24 #include "linearAlgebra/common/PreconditionerBase.hpp"
26 
27 #include <memory>
28 
29 namespace geos
30 {
31 
37 {
41  static void initialize();
42 
46  static void finalize();
47 
53  static std::unique_ptr< LinearSolverBase< TrilinosInterface > >
55 
61  static std::unique_ptr< PreconditionerBase< TrilinosInterface > >
63 
70  static std::unique_ptr< PreconditionerBase< TrilinosInterface > >
72  array1d< EpetraVector > const & nearNullKernel );
73 
78 };
79 
80 } /* namespace geos */
81 
82 #endif /* GEOS_LINEARALGEBRA_INTERFACES_TRILINOSINTERFACE_HPP_ */
Wrapper class for Epetra's CrsMatrix.
Wrapper around Trilinos' Epetra_Vector object.
Array< T, 1 > array1d
Alias for 1D array.
Definition: DataTypes.hpp:216
Set of parameters for a linear solver or preconditioner.
This class holds aliases based on the Trilinos library.
static void initialize()
Initializes the Trilinos library.
static std::unique_ptr< PreconditionerBase< TrilinosInterface > > createPreconditioner(LinearSolverParameters params, array1d< EpetraVector > const &nearNullKernel)
Create a Trilinos-based preconditioner object.
static void finalize()
Finalizes the Trilinos library.
static std::unique_ptr< LinearSolverBase< TrilinosInterface > > createSolver(LinearSolverParameters params)
Create a petsc-based solver object.
static std::unique_ptr< PreconditionerBase< TrilinosInterface > > createPreconditioner(LinearSolverParameters params)
Create a Trilinos-based preconditioner object.