an efficient C++ finite element environment
|
|
Go to the documentation of this file. 1 #ifndef _RHEOLEF_SOLVER_H
2 #define _RHEOLEF_SOLVER_H
179 #include "rheolef/csr.h"
180 #include "rheolef/solver_option.h"
190 template <
class T,
class M>
194 struct determinant_type;
205 virtual determinant_type
det()
const;
206 virtual std::string
name()
const;
214 template <
class T,
class M>
222 template <
class T,
class M>
228 return new_macro (rep(*
this));
230 template <
class T,
class M>
237 template <
class T,
class M>
244 template <
class T,
class M>
249 error_macro (
name() <<
": undefined set_preconditioner() member function");
251 template <
class T,
class M>
257 return determinant_type();
263 template <
class T,
class M = rheo_default_memory_model>
287 std::string
name()
const;
298 template <
class T,
class M>
304 template <
class T,
class M>
310 template <
class T,
class M>
315 if (base::data().initialized()) {
321 template <
class T,
class M>
326 return base::data().
option();
328 template <
class T,
class M>
335 template <
class T,
class M>
340 return base::data().
det();
342 template <
class T,
class M>
347 return base::data().solve (
b);
349 template <
class T,
class M>
356 template <
class T,
class M>
363 template <
class T,
class M>
368 return base::data().name();
372 #endif // _RHEOLEF_SOLVER_H
solver_abstract_rep(const solver_abstract_rep &x)
void update_values(const csr< T, M > &a)
static solver_abstract_rep< T, M > * make_solver_ptr(const csr< T, M > &a, const solver_option &opt)
rep::determinant_type determinant_type
see the vec page for the full documentation
solver_abstract_rep< T, M > rep
virtual vec< T, M > solve(const vec< T, M > &b) const
solver_basic< Float > solver
virtual bool initialized() const
vec< T, M > trans_solve(const vec< T, M > &b) const
const solver_option & option() const
virtual ~solver_abstract_rep()
virtual vec< T, M > trans_solve(const vec< T, M > &b) const
virtual void update_values(const csr< T, M > &a)
virtual determinant_type det() const
virtual std::string name() const
see the csr page for the full documentation
void set_preconditioner(const solver_basic< T, M > &)
This file is part of Rheolef.
#define error_macro(message)
csr< T, M >::size_type size_type
void solve(tiny_matrix< T > &a, tiny_vector< size_t > &piv, const tiny_vector< T > &b, tiny_vector< T > &x)
virtual solver_abstract_rep< T, M > * clone() const
const solver_option & option() const
solver_abstract_rep(const solver_option &opt)
smart_pointer_clone< rep > base
virtual void set_preconditioner(const solver_basic< T, M > &)
determinant_type det() const
vec< T, M > solve(const vec< T, M > &b) const
see the solver_option page for the full documentation