Grid 0.7.0
Preconditioner.h
Go to the documentation of this file.
1/*************************************************************************************
2
3 Grid physics library, www.github.com/paboyle/Grid
4
5 Source file: ./lib/algorithms/Preconditioner.h
6
7 Copyright (C) 2015
8
9Author: Azusa Yamaguchi <ayamaguc@staffmail.ed.ac.uk>
10
11 This program is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
14 (at your option) any later version.
15
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License for more details.
20
21 You should have received a copy of the GNU General Public License along
22 with this program; if not, write to the Free Software Foundation, Inc.,
23 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24
25 See the full license in the file "LICENSE" in the top level distribution directory
26*************************************************************************************/
27/* END LEGAL */
28#ifndef GRID_PRECONDITIONER_H
29#define GRID_PRECONDITIONER_H
30
32
33template<class Field> using Preconditioner = LinearFunction<Field> ;
34
35/*
36template<class Field> class Preconditioner : public LinearFunction<Field> {
37 using LinearFunction<Field>::operator();
38 virtual void operator()(const Field &src, Field & psi)=0;
39};
40*/
41
42template<class Field> class TrivialPrecon : public Preconditioner<Field> {
43public:
44 using Preconditioner<Field>::operator();
45 virtual void operator()(const Field &src, Field & psi){
46 psi = src;
47 }
49};
50
52#endif
#define NAMESPACE_BEGIN(A)
Definition Namespace.h:35
#define NAMESPACE_END(A)
Definition Namespace.h:36
LinearFunction< Field > Preconditioner
virtual void operator()(const Field &src, Field &psi)