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

[Libmesh-devel] Preconditioner Base Class

2009-02-06 Thread Derek Gaston
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 commit it then we can talk about the next move. Currently, I hav