15#ifndef dealii_solver_h
16#define dealii_solver_h
25#include <boost/signals2.hpp>
31template <
typename number>
338template <
typename VectorType = Vector<
double>>
399 boost::signals2::connection
402 const double check_value,
403 const VectorType ¤t_iterate)>
438 template <
typename Iterator>
464 boost::signals2::signal<
466 const double check_value,
467 const VectorType ¤t_iterate),
477template <
typename VectorType>
493template <
typename VectorType>
494template <
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);
513template <
typename VectorType>
523 connect([&solver_control](
const unsigned int iteration,
524 const double check_value,
525 const VectorType &) {
526 return solver_control.
check(iteration, check_value);
532template <
typename VectorType>
535 memory(static_vector_memory)
541 connect([&solver_control](
const unsigned int iteration,
542 const double check_value,
543 const VectorType &) {
544 return solver_control.
check(iteration, check_value);
550template <
typename VectorType>
551inline boost::signals2::connection
554 const double check_value,
555 const VectorType ¤t_iterate)>
558 return iteration_status.connect(slot);
boost::signals2::signal< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType ¤t_iterate), StateCombiner > iteration_status
SolverBase(SolverControl &solver_control, VectorMemory< VectorType > &vector_memory)
boost::signals2::connection connect(const std::function< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType ¤t_iterate)> &slot)
GrowingVectorMemory< VectorType > static_vector_memory
VectorMemory< VectorType > & memory
SolverBase(SolverControl &solver_control)
virtual State check(const unsigned int step, const double check_value)
@ iterate
Continue iteration.
@ success
Stop iteration, goal reached.
@ failure
Stop iteration, goal not reached.
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
static ::ExceptionBase & ExcMessage(std::string arg1)
const Iterator const std_cxx20::type_identity_t< Iterator > & end
SolverControl::State operator()(const Iterator begin, const Iterator end) const
SolverControl::State operator()(const SolverControl::State state1, const SolverControl::State state2) const