Re: [Libmesh-devel] Preconditioner Base Class

2009-02-10 Thread Derek Gaston
So... I just committed the initial round of changes to allow attaching a Preconditioner object to either a linear or nonlinear solver and it works! I'm already using this in my code with a special preconditioner object to do fairly complicated solver library (petsc/trilinos) agnostic preconditi

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-10 Thread Tim Kroeger
Dear Derek, On Mon, 9 Feb 2009, Derek Gaston wrote: > On Feb 9, 2009, at 9:18 AM, John Peterson wrote: > >> Short answer: check out aclocal.m4 around line 869. We just use grep >> and sed to figure out what the petsc version is during configure. You >> could probably do the same for HYPRE_foo..

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread Derek Gaston
On Feb 9, 2009, at 9:18 AM, John Peterson wrote: > Short answer: check out aclocal.m4 around line 869. We just use grep > and sed to figure out what the petsc version is during configure. You > could probably do the same for HYPRE_foo... I just committed a configure test for Hypre that will def

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread John Peterson
On Mon, Feb 9, 2009 at 9:55 AM, Derek Gaston wrote: > So it looks like we only snoop petscconf in our Makefile(.in). Should I > just snoop for HYPRE_LIB there and add a -DPETSC_HAS_HYPRE to our compile > line? Or should I go snoop petscconf manually during configure so a #define > can get set in

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread Roy Stogner
On Mon, 9 Feb 2009, Derek Gaston wrote: > Does anyone know how to snoop to see if Petsc is configured with Hypre > support? I don't see a simple #define HAS_HYPRE or some such anywhere > in the Petsc source. Does PETSc end up including any HYPRE headers from the PETSc headers? If so then #ifdef

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread Derek Gaston
So it looks like we only snoop petscconf in our Makefile(.in). Should I just snoop for HYPRE_LIB there and add a -DPETSC_HAS_HYPRE to our compile line? Or should I go snoop petscconf manually during configure so a #define can get set in libmesh_configure.h? Derek -

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread Derek Gaston
On Feb 9, 2009, at 8:46 AM, John Peterson wrote: > Looks like HYPRE_INCLUDE and HYPRE_LIB will be set in > > $PETSC_DIR/bmake/${PETSC_ARCH}/petscconf > > if it's there. That was as of 2.3.1. Thanks John... I'll work up a configure test for this. Derek -

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread John Peterson
On Mon, Feb 9, 2009 at 9:35 AM, Derek Gaston wrote: > Does anyone know how to snoop to see if Petsc is configured with Hypre > support? I don't see a simple #define HAS_HYPRE or some such anywhere in > the Petsc source. Looks like HYPRE_INCLUDE and HYPRE_LIB will be set in $PETSC_DIR/bmake/${PE

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread Derek Gaston
Does anyone know how to snoop to see if Petsc is configured with Hypre support? I don't see a simple #define HAS_HYPRE or some such anywhere in the Petsc source. Thanks, Derek On Feb 9, 2009, at 2:42 AM, Tim Kroeger wrote: > Dear Derek, > > On Fri, 6 Feb 2009, Derek Gaston wrote: > >> Ok -

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread Derek Gaston
On Feb 9, 2009, at 2:46 AM, Tim Kroeger wrote: > Just to briefly join in the preconditioner discussion: Have you also > thought about something like a ShellPreconditioner class > (analogously to the ShellMatrix)? It's not that I would need it > now, but someone (perhaps me) might need it in

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread Derek Gaston
I'll take care of this immediately... thanks for pointing it out. I looked at the code and thought that that function would be present regardless of whether or not you configured Petsc with Hypre... guess I was wrong. Thanks! Derek On Feb 9, 2009, at 2:42 AM, Tim Kroeger wrote: > Dear De

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread Tim Kroeger
Dear Derek/Roy, Just to briefly join in the preconditioner discussion: Have you also thought about something like a ShellPreconditioner class (analogously to the ShellMatrix)? It's not that I would need it now, but someone (perhaps me) might need it in the future, and it would certainly be ni

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-09 Thread Tim Kroeger
Dear Derek, On Fri, 6 Feb 2009, Derek Gaston wrote: > Ok - I went ahead and committed that so that I can work on the next > step... Unfortunately, it doesn't link for me. I get: /home/tim/fem-libs/libMesh/libmesh-svn/libmesh/lib/i686-pc-linux-gnu_opt/libmesh.so: undefined reference to `PCHYPR

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-06 Thread John Peterson
On Fri, Feb 6, 2009 at 6:04 PM, Kirk, Benjamin (JSC-EG) wrote: > This is definitely one of those times I am glad this list is archived... > > The various combinations of potential values for > > -pc_hypre_boomeramg_strong_threshold > -pc_hypre_boomeramg_grid_sweeps_down > -pc_hypre_boomeramg_grid_

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-06 Thread Kirk, Benjamin (JSC-EG)
This is definitely one of those times I am glad this list is archived... The various combinations of potential values for -pc_hypre_boomeramg_strong_threshold -pc_hypre_boomeramg_grid_sweeps_down -pc_hypre_boomeramg_grid_sweeps_up -pc_hypre_boomeramg_relax_type_all -pc_hypre_boomeramg_relax_type

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-06 Thread Derek Gaston
On Feb 6, 2009, at 4:29 PM, Roy Stogner wrote: > Not necessarily separate classes, just the ability to have separate > classes. Agreed. > AMG is still pretty black-box (that being the whole point) and can > probably just be a type parameter to whatever numerics packages have > that interface -

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-06 Thread Roy Stogner
On Fri, 6 Feb 2009, Derek Gaston wrote: > On Feb 6, 2009, at 3:47 PM, Roy Stogner wrote: >> Supporting old APIs is always good. If you want to stick a deprecated() >> warning in there now and plan to get rid of it in the future, though, >> that's fine. >> >> In the near term, I'd like to hav

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-06 Thread Derek Gaston
On Feb 6, 2009, at 3:47 PM, Roy Stogner wrote: > Supporting old APIs is always good. If you want to stick a > deprecated() warning in there now and plan to get rid of it in the > future, though, that's fine. > > In the near term, I'd like to have a factory method that takes a > Preconditione

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-06 Thread Roy Stogner
Derek Gaston wrote: > Ok - I went ahead and committed that so that I can work on the next > step... which is allowing you to attach a Preconditioner to the linear > solver. But now we need some discussion on that. > > First, do we want to support the old style of specifying a > precondition

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-06 Thread Derek Gaston
Ok - I went ahead and committed that so that I can work on the next step... which is allowing you to attach a Preconditioner to the linear solver. But now we need some discussion on that. First, do we want to support the old style of specifying a preconditioner type for a LinearSolver? Or

Re: [Libmesh-devel] Preconditioner Base Class

2009-02-06 Thread John Peterson
On Fri, Feb 6, 2009 at 2:45 PM, Derek Gaston wrote: > So... I've got the initial Preconditioner class and a PetscPreconditioner > class based on it all coded up and working with my current code. I've > attached the diff with all of the changes. If no one sees anything big I'll > go ahead and com