OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
AmrPreconditioner.h
Go to the documentation of this file.
1//
2// Class AmrPreconditioner
3// Bottom solver preconditioners. Used with Belos bottom solvers.
4//
5// Copyright (c) 2017 - 2020, Matthias Frey, Paul Scherrer Institut, Villigen PSI, Switzerland
6// All rights reserved
7//
8// Implemented as part of the PhD thesis
9// "Precise Simulations of Multibunches in High Intensity Cyclotrons"
10//
11// This file is part of OPAL.
12//
13// OPAL is free software: you can redistribute it and/or modify
14// it under the terms of the GNU General Public License as published by
15// the Free Software Foundation, either version 3 of the License, or
16// (at your option) any later version.
17//
18// You should have received a copy of the GNU General Public License
19// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
20//
21#ifndef AMR_PRECONDITIONER_H
22#define AMR_PRECONDITIONER_H
23
24#include "AmrMultiGridDefs.h"
25
26namespace amr {
37 };
38}
39
40template <class Matrix, class Level>
42{
43public:
45
46public:
47
53 virtual void create(const Teuchos::RCP<Matrix>& A, Level* level_p = nullptr) = 0;
54
58 virtual Teuchos::RCP<operator_t> get() = 0;
59};
60
61
62#endif
Some AMR types used a lot.
Definition: AmrDefs.h:33
Tpetra::Operator< scalar_t, local_ordinal_t, global_ordinal_t, node_t > operator_t
@ GS
Gauss-Seidel point relaxation.
@ JACOBI
Jacobi point relaxation.
@ RILUK
ILU(k)
@ ILUT
incomplete LU
@ SA
smoothed aggregation multigrid
@ BLOCK_JACOBI
Jacobi block relaxation.
@ BLOCK_GS
Gauss-Seidel block relaxation.
amr::operator_t operator_t
virtual Teuchos::RCP< operator_t> get()=0
virtual void create(const Teuchos::RCP< Matrix > &A, Level *level_p=nullptr)=0