22 #ifndef __H2D_SOLVER_PICARD_H_
23 #define __H2D_SOLVER_PICARD_H_
26 #include "projections/ogprojection.h"
27 #include "discrete_problem.h"
28 #include "views/scalar_view.h"
73 template<
typename Scalar>
84 virtual bool isOkay()
const;
88 void set_verbose_output_linear_solver(
bool verbose_output_to_set);
92 void solve(Scalar* coeff_vec = NULL);
103 virtual void set_time(
double time);
104 virtual void set_time_step(
double time_step);
107 virtual void set_spaces(Hermes::vector<
const Space<Scalar>*> spaces);
109 virtual Hermes::vector<const Space<Scalar>*> get_spaces()
const;
112 void use_Anderson_acceleration(
bool to_set);
115 void set_picard_tol(
double tol);
117 void set_picard_max_iter(
int max_iter);
120 void set_num_last_vector_used(
int num);
123 void set_anderson_beta(
double beta);
129 bool verbose_output_linear_solver;
132 SparseMatrix<Scalar>* matrix;
138 LinearMatrixSolver<Scalar>* linear_solver;
145 int num_last_vectors_used;
147 double anderson_beta;