As part of fixing that issue, I moved the linear solver parameters
from NonlinearVariationalSolver down to NewtonSolver, since that is
where those parameters are used. The nonlinear solver chooses a method
(Newton), which then needs to solve a linear system and thus has
options for how to do that. At the same time, this fixed another
issue, which was that the linear solver parameters could not be
changed in the Newton solver, if used stand-alone (not from
NonlinearVariationalSolver).

Nico, simply make the linear_solver parameter into the parameter set
newton_solver and it should work.

I agree it would be best to change the parameters only once but these
are two different and relatively unrelated changes: the first one is
about moving the parameters from one class to another. The other is
about cleaning up the naming of the parameters/choices for linear
solvers.

If we can settle on how we want to cleanup the linear solver names,
then we might want to fix that too before 1.3:

(https://bitbucket.org/fenics-project/dolfin/issue/167/cleanup-of-linear-solver-logic-needed

--
Anders


On Thu, Dec 05, 2013 at 05:42:48PM +0100, Jan Blechta wrote:
> I was thinking that issue 10 is supposed to be fixed while keeping the
> interface same in 1.3 and discuss the changes after release. It does
> not make sense to change the interface twice, both for 1.3 and >= 1.4.
>
> Jan
>
>
> On Thu, 5 Dec 2013 17:35:49 +0100
> Nico Schlömer <[email protected]> wrote:
>
> > So apparently,
> >
> >         solve(F1 == 0, ui,
> >               bcs=u_bcs,
> >               J=J,
> >               solver_parameters={
> >                                  'newton_solver':
> > {'maximum_iterations': 5, 'report': True,
> >                                                    'absolute_tolerance':
> > tol, 'relative_tolerance': 0.0
> >                                                    },
> >                                  'linear_solver': 'iterative',
> >                                  'symmetric': False,
> >                                  'preconditioner': 'ilu',
> >                                  'krylov_solver':
> > {'relative_tolerance': tol, 'absolute_tolerance': 0.0,
> >                                                    'maximum_iterations':
> > 100, 'monitor_convergence': True}
> >                                  })
> >
> > is not a valid nonlinear solve anymore (suppsedly in connection with
> > <https://bitbucket.org/fenics-project/dolfin/commits/718f9a59b2b2c315a4c82d91022b74b31329effc>).
> > How to specify linear solver options now?
> >
> > Cheers,
> > Nico
> > _______________________________________________
> > fenics-support mailing list
> > [email protected]
> > http://fenicsproject.org/mailman/listinfo/fenics-support
>
> _______________________________________________
> fenics-support mailing list
> [email protected]
> http://fenicsproject.org/mailman/listinfo/fenics-support
_______________________________________________
fenics-support mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics-support

Reply via email to