GAMG needs the NEARNullSpace (not the best terminology), which it uses with smoothed aggregation to obtain a good coarse space. I think the best way to think about these is as the low energy modes of the operator. In practical terms, it is the NullSpace of the operator with the boundary conditions removed. Note that the same PETSc object (MatNullSpace) is used to encode both the NearNullSpace and the NullSpace of an operator (possibly adding to the confusion). There is support in libMesh to pass user-specified (Near)NullSpaces down to the PETSc solver, although it would be good to have an example.
I used to get very good performance (compared to HYPRE's BoomerAMG and even ASM) for linear elasticity, but lately I haven't been able to reproduce it. In particular, one should expect essentially the same number of iterations with mesh refinement. The iterations do get to be more expensive, naturally, but with BoomerAMG they grow, as they do with ASM, unless overlap is aggressively increased. This might be small consolation for someone with a moderate problem size. We need to have better GAMG defaults that result in good performance out of the box. I will try to come up with a libMesh example and reproduce my results of a couple of years ago. Dmitry. On Mon, Mar 2, 2015 at 9:00 PM Cody Permann <[email protected]> wrote: > Missed the list on my reply. > ---------- Forwarded message --------- > From: Cody Permann <[email protected]> > Date: Mon, Mar 2, 2015 at 7:58 PM > Subject: Re: [Libmesh-users] PETSc's GAMG with systems_of_equations_ex6 > To: Paul T. Bauman <[email protected]>, Dmitry Karpeev <[email protected] > > > > > Dmitry is helping us with Gamg issues. I'm CC'ing him on this thread. He > should have some insight into this problem for you. > > Cody > On Mon, Mar 2, 2015 at 7:55 PM Paul T. Bauman <[email protected]> wrote: > > > On Mon, Mar 2, 2015 at 9:45 PM, David Knezevic < > [email protected] > > > > > wrote: > > > > > > > > I gather that the main requirement is to specify rigid-body modes as > the > > > near-nullspace. > > > > > > Ha! I was, quite literally, just having a look at similar functionality > > for removing rigid rotations. > > > > I tried this in the attached diff, and I specified > > > "-pc_type gamg" (and I tried a few other options like -pc_gamg_type > agg), > > > but it doesn't seem to give very good convergence. I was wondering if > > > anyone has experience with this and could let me know if I'm missing > > > something? > > > > > > > I don't think NumericVector sets the block size. In the PetscVector clone > > for the coordinate vector, you need to call VecSetBlockSize and set it > to 3 > > (for the 3D case). > > > > http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/ > > VecSetBlockSize.html > > > > Petsc's null space function for rigid modes relies on the block size for > > figuring out the vectors. > > > > http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/ > > MatNullSpaceCreateRigidBody.html > > > > So, in theory, you should just need to set the block size and it should > be > > much better. > > > > I'll be very curious how this turns out. > > > > Hope that helps, > > > > Paul > > ------------------------------------------------------------ > > ------------------ > > Dive into the World of Parallel Programming The Go Parallel Website, > > sponsored > > by Intel and developed in partnership with Slashdot Media, is your hub > for > > all > > things parallel software development, from weekly thought leadership > blogs > > to > > news, videos, case studies, tutorials and more. Take a look and join the > > conversation now. http://goparallel.sourceforge.net/ > > _______________________________________________ > > Libmesh-users mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/libmesh-users > > > ------------------------------------------------------------ > ------------------ > Dive into the World of Parallel Programming The Go Parallel Website, > sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for > all > things parallel software development, from weekly thought leadership blogs > to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Libmesh-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/libmesh-users > ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
