← Back to team overview

dolfin team mailing list archive

Re: Fwd: [Branch ~dolfin-core/dolfin/main] Rev 6347: Fix problem with default values for linear solver and preconditioner,

 

On Thu, Oct 20, 2011 at 03:26:09PM +0200, Anders Logg wrote:
> On Thu, Oct 20, 2011 at 02:16:34PM +0100, Garth N. Wells wrote:
> > On 20 October 2011 12:36, Anders Logg <logg@xxxxxxxxx> wrote:
> > > On Thu, Oct 20, 2011 at 11:46:58AM +0100, Garth N. Wells wrote:
> > >> On 20 October 2011 11:28, Anders Logg <logg@xxxxxxxxx> wrote:
> > >> > The problem was the newly added check that the preconditioner must be
> > >> > set to "none" when a direct method is used. This wasn't checked
> > >> > before.
> > >> >
> > >> > The default values have now been changed (in LinearSolver,
> > >> > LinearVariationalSoler and NonlinearVariationalSolver) to
> > >> >
> > >> >  "default"
> > >> >  "none"
> > >> >
> > >>
> > >> Does this mean that a user who selects an iterative solver will, by
> > >> default, not employ any preconditioning?
> > >
> > > Yes.
> > >
> > > That will be suboptimal. Perhaps we could change the values to
> > >
> > >  default, default
> > >
> > > but then we need to check that the backends handle "default" for
> > > preconditioners.
> > >
> > > Can you have a look at LinearSolver.cpp and check the logic?
> > >
> >
> > I would rather roll back to how it was. We can make changes for 1.1.
> >
> > The change undid changes that we made a long time ago to resolve some
> > issues. It may have been suboptimal, but what the recent change seeks
> > to address is minor. I don't see the need for a change just before 1.0
> > that can have a big impact (looks like tests are now failing). The
> > real solution is to carefully re-assess the solver interfaces. An
> > option is to treat all solvers as iterative, and make LU a
> > preconditioner. This is for post 1.0.
>
> I think it's just a matter of changing a line or two in
> LinearSolver.cpp to get things right.
>
> What default options do we want?
>
> LU by default?
>
> And if a Krylov method is used, then ILU preconditioning by default?

This should be fixed now.

--
Anders


Follow ups

References