VertexCFD
0.0-dev
src
linear_solvers
VertexCFD_LinearSolvers_LocalDirectSolver.hpp
1
#ifndef VERTEXCFD_LINEARSOLVERS_LOCALDIRECTSOLVER_HPP
2
#define VERTEXCFD_LINEARSOLVERS_LOCALDIRECTSOLVER_HPP
3
4
#include <Teuchos_FancyOStream.hpp>
5
#include <Teuchos_RCP.hpp>
6
#include <Tpetra_MultiVector.hpp>
7
#include <Tpetra_RowMatrix.hpp>
8
9
#include <vector>
10
11
namespace
VertexCFD
12
{
13
namespace
LinearSolvers
14
{
15
//---------------------------------------------------------------------------//
16
// Base class for solvers performing local (non-MPI) sparse direct solves
17
//---------------------------------------------------------------------------//
18
class
LocalDirectSolver
19
{
20
public
:
21
// Constructor
22
LocalDirectSolver
() =
default
;
23
24
// Set or change local matrix
25
virtual
void
setMatrix(Teuchos::RCP<
const
Tpetra::RowMatrix<>> A) = 0;
26
27
// Perform one-time initialization (e.g., symbolic factorization)
28
virtual
void
initialize() = 0;
29
30
// Compute factorization (every time matrix changes)
31
virtual
void
compute() = 0;
32
33
// Given RHS vector b, solve for x
34
virtual
void
solve(
const
Tpetra::MultiVector<>& b, Tpetra::MultiVector<>& x)
35
= 0;
36
};
37
38
//---------------------------------------------------------------------------//
39
40
}
// namespace LinearSolvers
41
}
// namespace VertexCFD
42
43
#endif // VERTEXCFD_LINEARSOLVERS_LOCALDIRECTSOLVER_HPP
VertexCFD
Definition:
tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::LinearSolvers::LocalDirectSolver
Definition:
VertexCFD_LinearSolvers_LocalDirectSolver.hpp:19
Generated by
1.8.20