Rheolef  7.1
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
rheolef::solver_abtb_basic::_sa
solver_basic< T, M > _sa
Definition: solver_abtb.h:152
rheolef::solver_abtb_basic::inner_name
std::string inner_name() const
Definition: solver_abtb.h:138
mkgeo_ball.b
int b
Definition: mkgeo_ball.sh:152
rheolef::solver_abtb_basic::_opt
solver_option _opt
Definition: solver_abtb.h:146
rheolef::solver_abtb_basic::_sA
solver_basic< T, M > _sA
Definition: solver_abtb.h:151
rheolef::solver_basic
Definition: solver.h:264
rheolef::solver_abtb_basic::set_inner_solver
void set_inner_solver(const solver_basic< T, M > &sa)
Definition: solver_abtb.h:135
rheolef::solver_abtb_basic
Definition: solver_abtb.h:115
rheolef::vec
see the vec page for the full documentation
Definition: vec.h:79
rheolef::solver_abtb_basic::solver_abtb_basic
solver_abtb_basic()
Definition: solver_abtb.cc:27
rheolef::solver_abtb_basic::preconditionner_name
std::string preconditionner_name() const
Definition: solver_abtb.h:139
p
Definition: sphere.icc:25
rheolef::solver_abtb_basic::initialized
bool initialized() const
Definition: solver_abtb.cc:156
rheolef::solver_abtb_basic::_c
csr< T, M > _c
Definition: solver_abtb.h:149
rheolef::solver_abtb_basic::_smp
solver_basic< T, M > _smp
Definition: solver_abtb.h:153
a
Definition: diffusion_isotropic.h:25
rheolef::csr
see the csr page for the full documentation
Definition: csr.h:317
rheolef::solver_abtb_basic::set_preconditioner
void set_preconditioner(const solver_basic< T, M > &smp)
Definition: solver_abtb.h:136
rheolef::solver_abtb_basic::_a
csr< T, M > _a
Definition: solver_abtb.h:147
rheolef
This file is part of Rheolef.
Definition: compiler_eigen.h:37
rheolef::solver_abtb_basic::solve
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
u
Definition: leveque.h:25
rheolef::solver_abtb_basic::name
std::string name() const
Definition: solver_abtb.h:137
g
Definition: cavity_dg.h:25
rheolef::solver_abtb_basic::_b
csr< T, M > _b
Definition: solver_abtb.h:148
rheolef::solver_abtb_basic::_mp
csr< T, M > _mp
Definition: solver_abtb.h:150
rheolef::solver_abtb
solver_abtb_basic< Float, rheo_default_memory_model > solver_abtb
Definition: solver_abtb.h:157
f
Definition: cavity_dg.h:29
rheolef::solver_abtb_basic::_need_constraint
bool _need_constraint
Definition: solver_abtb.h:154
rheolef::solver_abtb_basic::init
void init()
Definition: solver_abtb.cc:79
mkgeo_ball.c
int c
Definition: mkgeo_ball.sh:153
rheolef::solver_abtb_basic::option
const solver_option & option() const
Definition: solver_abtb.h:134
rheolef::solver_abtb_basic::size_type
csr< T, M >::size_type size_type
Definition: solver_abtb.h:120
rheolef::solver_option
see the solver_option page for the full documentation
Definition: solver_option.h:155