16 #ifndef dealii_solver_richardson_h 17 #define dealii_solver_richardson_h 62 template <
class VectorType = Vector<
double>>
110 template <
typename MatrixType,
typename PreconditionerType>
112 solve(
const MatrixType &
A,
115 const PreconditionerType &preconditioner);
120 template <
typename MatrixType,
typename PreconditionerType>
125 const PreconditionerType &preconditioner);
151 virtual typename VectorType::value_type
165 template <
class VectorType>
170 , use_preconditioned_residual(use_preconditioned_residual)
174 template <
class VectorType>
184 template <
class VectorType>
193 template <
class VectorType>
194 template <
typename MatrixType,
typename PreconditionerType>
199 const PreconditionerType &preconditioner)
205 unsigned int iter = 0;
227 preconditioner.vmult(d, r);
250 template <
class VectorType>
251 template <
typename MatrixType,
typename PreconditionerType>
256 const PreconditionerType &preconditioner)
261 unsigned int iter = 0;
283 preconditioner.Tvmult(d, r);
304 template <
class VectorType>
314 template <
class VectorType>
315 inline typename VectorType::value_type
326 template <
class VectorType>
void solve(const MatrixType &A, VectorType &x, const VectorType &b, const PreconditionerType &preconditioner)
bool use_preconditioned_residual
void set_omega(const double om=1.)
boost::signals2::signal< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType ¤t_iterate), StateCombiner > iteration_status
virtual void print_vectors(const unsigned int step, const VectorType &x, const VectorType &r, const VectorType &d) const
AdditionalData additional_data
void Tsolve(const MatrixType &A, VectorType &x, const VectorType &b, const PreconditionerType &preconditioner)
#define AssertThrow(cond, exc)
SolverRichardson(SolverControl &cn, VectorMemory< VectorType > &mem, const AdditionalData &data=AdditionalData())
Stop iteration, goal reached.
#define DEAL_II_NAMESPACE_CLOSE
virtual ~SolverRichardson() override=default
SymmetricTensor< 2, dim, Number > d(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
SymmetricTensor< 2, dim, Number > b(const Tensor< 2, dim, Number > &F)
virtual VectorType::value_type criterion(const VectorType &r, const VectorType &d) const
#define DEAL_II_NAMESPACE_OPEN
AdditionalData(const double omega=1, const bool use_preconditioned_residual=false)
T max(const T &t, const MPI_Comm &mpi_communicator)
VectorMemory< VectorType > & memory