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),
470 template <
class VectorType = Vector<
double>>
477 template <
class VectorType>
493 template <
class VectorType>
494 template <
typename Iterator>
497 const Iterator end)
const 500 ExcMessage(
"You can't combine iterator states if no state is given."));
506 for (; p != end; ++p)
507 state = this->
operator()(state, *p);
513 template <
class VectorType>
524 std::ref(solver_control),
525 std::placeholders::_1,
526 std::placeholders::_2));
531 template <
class VectorType>
534 memory(static_vector_memory)
541 std::ref(solver_control),
542 std::placeholders::_1,
543 std::placeholders::_2));
548 template <
class VectorType>
549 inline boost::signals2::connection
552 const double check_value,
553 const VectorType & current_iterate)>
556 return iteration_status.connect(slot);
561 DEAL_II_NAMESPACE_CLOSE
GrowingVectorMemory< VectorType > static_vector_memory
Stop iteration, goal not reached.
boost::signals2::connection connect(const std::function< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType ¤t_iterate)> &slot)
virtual State check(const unsigned int step, const double check_value)
boost::signals2::signal< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType ¤t_iterate), StateCombiner > iteration_status
LinearAlgebra::distributed::Vector< Number > Vector
static ::ExceptionBase & ExcMessage(std::string arg1)
Stop iteration, goal reached.
#define Assert(cond, exc)
SolverBase(SolverControl &solver_control, VectorMemory< VectorType > &vector_memory)
MatrixTableIterators::Iterator< TransposeTable< T >, Constness, MatrixTableIterators::Storage::column_major > Iterator
VectorMemory< VectorType > & memory