> On 30 Jul 2015, at 17:13, Garth N. Wells <gn...@cam.ac.uk> wrote:
> 
> 
> On 30 July 2015 at 13:19, Mikael Mortensen <mikael.morten...@gmail.com 
> <mailto:mikael.morten...@gmail.com>> wrote:
> 
>> On 30 Jul 2015, at 13:54, Jan Blechta <blec...@karlin.mff.cuni.cz 
>> <mailto:blec...@karlin.mff.cuni.cz>> wrote:
>> 
>> On Thu, 30 Jul 2015 12:27:47 +0100
>> "Garth N. Wells" <gn...@cam.ac.uk <mailto:gn...@cam.ac.uk>> wrote:
>> 
>>> On 30 July 2015 at 12:18, Mikael Mortensen
>>> <mikael.morten...@gmail.com <mailto:mikael.morten...@gmail.com>> wrote:
>>> 
>>>> Hi
>>>> 
>>>> Back from vacation and very pleased :-) to find that I can update my
>>>> Fenics installation to version 1.6 in less than 10 minutes! Used to
>>>> take at least a few days.
>>>> 
>>>> Now I’m trying to upgrade my applications to 1.6 and I just found
>>>> that some of the common preconditioners (jacobi, bjacobi,
>>>> additive_schwarz) have gone missing. Any reason for this or is it a
>>>> mistake? They seem to have disappeared recently from the map
>>>> _methods_descr in PETScPreconditioner.cpp.
>>>> 
>>>> 
>>> The code in question was a mess and the wrapping approach
>>> unsustainable, which is why it was removed.
> 
> Including these three lines in creating _methods_descr in 
> PETScPreconditioner.cpp seems to work. Why do you consider it messy?
> 
>     {"jacobi",           "Jacobi iteration"},
>     {"bjacobi",          "Block Jacobi iteration"},
>     {"additive_schwarz", "Additive Schwarz"},    
> 
> 
> Removing the first two was an error by me when stripping out CUSP. They can 
> go back. I'll blame my mistake on some bad indentation of an #ifedf  ;).
> 

Yes, I see that one.

> It's not sensible to provide Additive Schwarz since it has a raft of options 
> that should be set on it, but we can't sustainably wrap these. With the 
> forthcoming design clean up, a user will have complete control over an 
> Additive Schwarz PC.

Ok, so do you suggest removing additive_schwarz then and keeping the other two, 
or keep also additive_schwarz until 1.7? In case schwarz is removed we need to 
do a bit of cleaning up, since schwarz has a parameter (in 
Krylovsolver::default_parameters()). I can make a PR either way.

Mikael

> 
> Garth
>  
> Jacobi and additive_schwarz are the two best preconditioners for a momentum 
> solve in Navier-Stokes and I don’t think they should have been removed 
> without even making the ChangeLog.
> 
>> 
>> The demand for the wrapping comes from the requirement of having
>> certain amount of control portable across backends. Is this requirement
>> getting abandoned, or at least weakened?
> 
> Another issue is that most users will simply print 
> list_krylov_solver_preconditioners, and they will then not know that they can 
> actually create a jacobi preconditioner. If they do find out they will have 
> to do something (not portable across backends) like
> 
> p = PETScPreconditioner(‘jacobi’)
> solver = PETScKrylovSolver(‘cg’, p)
> 
> where they used to be able to do
> 
> solver = KrylovSolver(“cg”, ‘jacobi’)
> 
> Not much more complex, but certainly not very user-friendly to hide 
> preconditioners like this.
> 
> 
> 
>  
>> 
>> Jan
>> 
>>> 
>>> You can control the PETSc preconditioners via PETSc options. This
>>> gives you far greater control, makes DOLFIN code simpler and provides
>>> greater consistency when using PETSc solver.  There will be more
>>> changes in DOLFIN 1.7 to give greater control over preconditioning.
> 
> Ok, what are actually the plans for 1.7?
> 
> Mikael
> 
> 
>>> 
>>> Garth
>>> 
>>> 
>>> 
>>> 
>>>> Best regards
>>>> 
>>>> Mikael
>>>> 
>>>> _______________________________________________
>>>> fenics mailing list
>>>> fenics@fenicsproject.org <mailto:fenics@fenicsproject.org>
>>>> http://fenicsproject.org/mailman/listinfo/fenics 
>>>> <http://fenicsproject.org/mailman/listinfo/fenics>
_______________________________________________
fenics mailing list
fenics@fenicsproject.org
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to