dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #09853
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
On Thu, Sep 25, 2008 at 06:03:59PM +0100, Garth N. Wells wrote:
>
>
> Anders Logg wrote:
> > On Thu, Sep 25, 2008 at 05:20:53PM +0200, Anders Logg wrote:
> >> On Thu, Sep 25, 2008 at 04:18:23PM +0100, Garth N. Wells wrote:
> >>>
> >>> Anders Logg wrote:
> >>>> On Thu, Sep 25, 2008 at 03:53:01PM +0100, Garth N. Wells wrote:
> >>>>> Anders Logg wrote:
> >>>>>> On Thu, Sep 25, 2008 at 03:11:27PM +0100, Garth N. Wells wrote:
> >>>>>>> Anders Logg wrote:
> >>>>>>>> On Thu, Sep 25, 2008 at 12:41:33PM +0100, Garth N. Wells wrote:
> >>>>>>>>> Nuno David Lopes wrote:
> >>>>>>>>>> Is there a simple way of setting an initial guess for an Iterative
> >>>>>>>>>> LinearSolver?
> >>>>>>>>>> In Umfpack and PETSc the default initial guess is the zero vector right?
> >>>>>>>>> At the moment, yes (note the UMFPACK is an LU solver, so an initial
> >>>>>>>>> guess doesn't do anything).
> >>>>>>>>>
> >>>>>>>>> It's very simple, and I've been meaning to add an option for using an
> >>>>>>>>> initial guess. It's also useful for Newton solvers. I'll add something
> >>>>>>>>> in the next few days.
> >>>>>>>>>
> >>>>>>>>> Garth
> >>>>>>>> It would be natural to let the x argument always be the initial
> >>>>>>>> guess. I thought we already did this.
> >>>>>>>>
> >>>>>>>> Would it be enough to make sure that Vector::init() does not reset the
> >>>>>>>> values to zero?
> >>>>>>>>
> >>>>>>> Yes.
> >>>>>>>
> >>>>>>> The danger is if someone sends an uninitialised vector to the solver.
> >>>>>>>
> >>>>>>> Garth
> >>>>>> We can just put something like this in the init() functions:
> >>>>>>
> >>>>>> if (x && size() == N)
> >>>>>> return;
> >>>>>>
> >>>>>> I think we had this a while back but at some point VecZeroEntries was
> >>>>>> inserted.
> >>>>>>
> >>>>> I think that we should have an option whether or not to use an initial
> >>>>> guess. The default can be to use the guess (as in your above code extract).
> >>>>>
> >>>>> Garth
> >>>> I think it would work nicely if the solver calls x.init() and that
> >>>> will initialize x to a zero vector only if it has not already been
> >>>> initialized.
> >>> Sounds a bit dangerous to me that Vector::init() sometimes zeroes a the
> >>> vector, and sometimes it doesn't. Should we get rid of Vector::init()
> >>> and use Vector::resize() and Vector::zero() instead? No ambiguity then.
> >>>
> >>> Garth
> >> That sounds good.
> >
> > On second thought, we shouldn't mess with the init() functions unless
> > we want to change the meaning of init() for all the classes deriving
> > from GenericTensor, including also matrices for all backends. Also,
> > resize() sometimes means that existing values will be preserved when
> > the size is increased.
> >
>
> I've already started on it. There are a lot of places in the code where
> we only need to resize and not zero, so I like using resize() and
> zero(). We even had places with
>
> x.init(N);
> x.zero();
>
> There is no ambiguity now with resize and zero.
>
>
> > So the best solution is to do something like
> >
> > if (x.size() != N)
> > x.init();
> >
>
> This is what I've done.
Do you mean that you've added a function named resize() to the vector
classes that does exactly this:
if (x.size() != N)
x.init();
?
--
Anders
Attachment:
signature.asc
Description: Digital signature
References
-
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
From: Garth N. Wells, 2008-09-25
-
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
From: Anders Logg, 2008-09-25
-
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
From: Garth N. Wells, 2008-09-25
-
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
From: Anders Logg, 2008-09-25
-
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
From: Garth N. Wells, 2008-09-25
-
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
From: Anders Logg, 2008-09-25
-
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
From: Garth N. Wells, 2008-09-25
-
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
From: Anders Logg, 2008-09-25
-
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
From: Anders Logg, 2008-09-25
-
Re: [DOLFIN-DEV] Some Iterative Linear Solver Doubts.
From: Garth N. Wells, 2008-09-25