Rheolef  7.2
an efficient C++ finite element environment
solver_abtb.h
Go to the documentation of this file.
1 #ifndef _SKIT_SOLVER_ABTB_H
2 #define _SKIT_SOLVER_ABTB_H
3 //
4 // This file is part of Rheolef.
5 //
6 // Copyright (C) 2000-2009 Pierre Saramito <Pierre.Saramito@imag.fr>
7 //
8 // Rheolef is free software; you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 2 of the License, or
11 // (at your option) any later version.
12 //
13 // Rheolef is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License
19 // along with Rheolef; if not, write to the Free Software
20 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 //
22 // =========================================================================
23 // AUTHOR: Pierre.Saramito@imag.fr
24 // DATE: 19 january 2012
25 
26 namespace rheolef {
106 } // namespace rheolef
107 
108 #include "rheolef/solver.h"
109 #include "rheolef/mixed_solver.h"
110 #include "rheolef/csr.h"
111 
112 namespace rheolef {
113 //<solver_abtb:
114 template <class T, class M = rheo_default_memory_model>
116 public:
117 
118 // typedefs:
119 
120  typedef typename csr<T,M>::size_type size_type;
121 
122 // allocators:
123 
125  solver_abtb_basic (const csr<T,M>& a, const csr<T,M>& b, const csr<T,M>& mp,
126  const solver_option& opt = solver_option());
127  solver_abtb_basic (const csr<T,M>& a, const csr<T,M>& b, const csr<T,M>& c, const csr<T,M>& mp,
128  const solver_option& opt = solver_option());
129 
130 // accessors:
131 
132  void solve (const vec<T,M>& f, const vec<T,M>& g, vec<T,M>& u, vec<T,M>& p) const;
133  bool initialized() const;
134  const solver_option& option() const { return _opt; }
135  void set_inner_solver (const solver_basic<T,M>& sa) { _sa = sa; }
136  void set_preconditioner (const solver_basic<T,M>& smp) { _smp = smp; }
137  std::string name() const { return _sA.name(); }
138  std::string inner_name() const { return _sa.name(); }
139  std::string preconditionner_name() const { return _sa.name(); }
140 //>solver_abtb:
141 
142 protected:
143 // internal
144  void init();
145 // data:
155 };
156 //<solver_abtb:
158 //>solver_abtb:
159 
160 } // namespace rheolef
161 #endif // _SKIT_SOLVER_ABTB_H
see the csr page for the full documentation
Definition: csr.h:317
const solver_option & option() const
Definition: solver_abtb.h:134
std::string name() const
Definition: solver_abtb.h:137
void solve(const vec< T, M > &f, const vec< T, M > &g, vec< T, M > &u, vec< T, M > &p) const
Definition: solver_abtb.cc:117
solver_basic< T, M > _sA
Definition: solver_abtb.h:151
solver_basic< T, M > _sa
Definition: solver_abtb.h:152
std::string preconditionner_name() const
Definition: solver_abtb.h:139
csr< T, M >::size_type size_type
Definition: solver_abtb.h:120
void set_inner_solver(const solver_basic< T, M > &sa)
Definition: solver_abtb.h:135
std::string inner_name() const
Definition: solver_abtb.h:138
void set_preconditioner(const solver_basic< T, M > &smp)
Definition: solver_abtb.h:136
solver_basic< T, M > _smp
Definition: solver_abtb.h:153
std::string name() const
Definition: solver.h:366
see the solver_option page for the full documentation
solver_abtb_basic< Float, rheo_default_memory_model > solver_abtb
Definition: solver_abtb.h:157
This file is part of Rheolef.
Definition: cavity_dg.h:29
Definition: cavity_dg.h:25
Definition: sphere.icc:25
Definition: leveque.h:25