16 #ifndef dealii_solver_h 17 #define dealii_solver_h 19 #include <deal.II/base/config.h> 21 #include <deal.II/base/subscriptor.h> 23 #include <deal.II/lac/solver_control.h> 24 #include <deal.II/lac/vector_memory.h> 27 #include <boost/signals2.hpp> 29 DEAL_II_NAMESPACE_OPEN
31 template <
typename number>
327 template <
class VectorType = Vector<
double>>
388 boost::signals2::connection
391 const double check_value,
392 const VectorType ¤t_iterate)>
427 template <
typename Iterator>
429 operator()(
const Iterator begin,
const Iterator end)
const;
453 boost::signals2::signal<
455 const double check_value,
456 const VectorType & current_iterate),
465 template <
class VectorType>
481 template <
class VectorType>
482 template <
typename Iterator>
485 const Iterator end)
const 488 ExcMessage(
"You can't combine iterator states if no state is given."));
494 for (; p != end; ++p)
495 state = this->
operator()(state, *p);
501 template <
class VectorType>
511 std::ref(solver_control),
512 std::placeholders::_1,
513 std::placeholders::_2));
518 template <
class VectorType>
528 std::ref(solver_control),
529 std::placeholders::_1,
530 std::placeholders::_2));
535 template <
class VectorType>
536 inline boost::signals2::connection
539 const double check_value,
540 const VectorType & current_iterate)>
548 DEAL_II_NAMESPACE_CLOSE
Stop iteration, goal not reached.
virtual State check(const unsigned int step, const double check_value)
GrowingVectorMemory< VectorType > static_vector_memory
static::ExceptionBase & ExcMessage(std::string arg1)
Stop iteration, goal reached.
#define Assert(cond, exc)
boost::signals2::signal< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType ¤t_iterate), StateCombiner > iteration_status
Solver(SolverControl &solver_control, VectorMemory< VectorType > &vector_memory)
VectorMemory< VectorType > & memory
boost::signals2::connection connect(const std::function< SolverControl::State(const unsigned int iteration, const doublecheck_value, const VectorType ¤t_iterate)> &slot)