*/
template <typename Solver, typename Preconditioner>
LinearOperator<typename Solver::vector_type, typename Solver::vector_type>
-inverse_linop(Solver &solver,
- const Preconditioner &preconditioner,
- const LinearOperator<typename Solver::vector_type, typename Solver::vector_type> &op)
+inverse_linop(const LinearOperator<typename Solver::vector_type, typename Solver::vector_type> &op,
+ Solver &solver,
+ const Preconditioner &preconditioner)
{
typedef typename Solver::vector_type Vector;
deallog << "solve(B, v, u): " << v << std::endl;
deallog.depth_file(0);
- inverse_linop(solver, PreconditionIdentity(), op_b).vmult(v, u);
+ inverse_linop(op_b, solver, PreconditionIdentity()).vmult(v, u);
deallog.depth_file(3);
deallog << "inverse_linop(B)u: " << v << std::endl;
deallog << "B(inverse_linop(B)u): " << w << std::endl;
deallog.depth_file(0);
- (op_b * inverse_linop(solver, PreconditionIdentity(), op_b)).vmult(w, u);
+ (op_b * inverse_linop(op_b, solver, PreconditionIdentity())).vmult(w, u);
deallog.depth_file(3);
deallog << "(B*inverse_linop(B))u: " << w << std::endl;
deallog.depth_file(0);
- (inverse_linop(solver, PreconditionIdentity(), op_b) * op_b).vmult(w, u);
+ (inverse_linop(op_b, solver, PreconditionIdentity()) * op_b).vmult(w, u);
deallog.depth_file(3);
deallog << "(inverse_linop(B)*B)u: " << w << std::endl;
SolverCG<> inner_solver (solver_control);
deallog.depth_file(0);
- solver.solve(inverse_linop(inner_solver, PreconditionIdentity(), op_b), v, u,
+ solver.solve(inverse_linop(op_b, inner_solver, PreconditionIdentity()), v, u,
PreconditionIdentity());
deallog.depth_file(3);
deallog << "solve(inverse_linop(B), v, u) == Bu: " << v << std::endl;
PRINTME("solve(B, v, u)", v);
deallog.depth_file(0);
- inverse_linop(solver, PreconditionIdentity(), op_b).vmult(v, u);
+ inverse_linop(op_b, solver, PreconditionIdentity()).vmult(v, u);
deallog.depth_file(3);
PRINTME("inverse_linop(B)u", v);
PRINTME("B(inverse_linop(B)u)", w);
deallog.depth_file(0);
- (op_b * inverse_linop(solver, PreconditionIdentity(), op_b)).vmult(w, u);
+ (op_b * inverse_linop(op_b, solver, PreconditionIdentity())).vmult(w, u);
deallog.depth_file(3);
PRINTME("(B*inverse_linop(B))u", w);
deallog.depth_file(0);
- (inverse_linop(solver, PreconditionIdentity(), op_b) * op_b).vmult(w, u);
+ (inverse_linop(op_b, solver, PreconditionIdentity()) * op_b).vmult(w, u);
deallog.depth_file(3);
PRINTME("(inverse_linop(B)*B)u", w);
SolverCG<BlockVector<double>> inner_solver (solver_control);
deallog.depth_file(0);
- solver.solve(inverse_linop(inner_solver, PreconditionIdentity(), op_b), v, u,
+ solver.solve(inverse_linop(op_b, inner_solver, PreconditionIdentity()), v, u,
PreconditionIdentity());
deallog.depth_file(3);
PRINTME("solve(inverse_linop(B), v, u) == Bu", v);