|
Reference documentation for deal.II version 9.2.0
|
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\)
\(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\)
\(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\)
\(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Go to the documentation of this file.
16 #ifndef dealii_solver_bicgstab_h
17 #define dealii_solver_bicgstab_h
123 template <
typename VectorType = Vector<
double>>
183 template <
typename MatrixType,
typename PreconditionerType>
185 solve(
const MatrixType &
A,
188 const PreconditionerType &preconditioner);
239 template <
typename MatrixType>
263 template <
typename MatrixType>
265 start(
const MatrixType &
A);
288 template <
typename MatrixType,
typename PreconditionerType>
290 iterate(
const MatrixType &
A,
const PreconditionerType &preconditioner);
299 template <
typename VectorType>
301 const bool breakdown,
303 const unsigned int last_step,
304 const double last_residual)
305 : breakdown(breakdown)
307 , last_step(last_step)
308 , last_residual(last_residual)
313 template <
typename VectorType>
316 const AdditionalData & data)
325 template <
typename VectorType>
327 const AdditionalData &data)
336 template <
typename VectorType>
337 template <
typename MatrixType>
352 template <
typename VectorType>
353 template <
typename MatrixType>
358 Vr->sadd(-1., 1., *
Vb);
366 template <
typename VectorType>
376 template <
typename VectorType>
377 template <
typename MatrixType,
typename PreconditionerType>
380 const PreconditionerType &preconditioner)
416 preconditioner.vmult(y, p);
425 return IterationResult(
true, state,
step,
res);
442 preconditioner.vmult(z, r);
460 return IterationResult(
false, state,
step,
res);
464 template <
typename VectorType>
465 template <
typename MatrixType,
typename PreconditionerType>
470 const PreconditionerType &preconditioner)
482 Vrbar->reinit(x,
true);
509 while (state.breakdown ==
true);
514 state.last_residual));
AdditionalData(const bool exact_residual=true, const double breakdown=1.e-10)
VectorMemory< VectorType >::Pointer Vp
VectorMemory< VectorType >::Pointer Vv
VectorMemory< VectorType >::Pointer Vr
AdditionalData additional_data
VectorMemory< VectorType >::Pointer Vy
virtual void print_vectors(const unsigned int step, const VectorType &x, const VectorType &r, const VectorType &d) const
SymmetricTensor< 2, dim, Number > e(const Tensor< 2, dim, Number > &F)
SymmetricTensor< 2, dim, Number > d(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
Expression fabs(const Expression &x)
@ iterate
Continue iteration.
IterationResult iterate(const MatrixType &A, const PreconditionerType &preconditioner)
virtual ~SolverBicgstab() override=default
#define DEAL_II_NAMESPACE_OPEN
VectorMemory< Vector< double > > & memory
SymmetricTensor< 2, dim, Number > b(const Tensor< 2, dim, Number > &F)
boost::signals2::signal< SolverControl::State(const unsigned int iteration, const double check_value, const Vector< double > ¤t_iterate), StateCombiner > iteration_status
void solve(const MatrixType &A, VectorType &x, const VectorType &b, const PreconditionerType &preconditioner)
IterationResult(const bool breakdown, const SolverControl::State state, const unsigned int last_step, const double last_residual)
SolverControl::State start(const MatrixType &A)
VectorMemory< VectorType >::Pointer Vz
inline ::VectorizedArray< Number, width > sqrt(const ::VectorizedArray< Number, width > &x)
VectorMemory< VectorType >::Pointer Vt
@ failure
Stop iteration, goal not reached.
SolverControl::State state
SolverBicgstab(SolverControl &cn, VectorMemory< VectorType > &mem, const AdditionalData &data=AdditionalData())
@ success
Stop iteration, goal reached.
#define DEAL_II_NAMESPACE_CLOSE
VectorMemory< VectorType >::Pointer Vrbar
double criterion(const MatrixType &A, const VectorType &x, const VectorType &b)
#define AssertThrow(cond, exc)