From: Benjamin Kirk <benjamin.kirk@na...>  20071214 18:47:01

> I am currently looking for a library that can work well with PETSc and can > provide me an FEM framework to handle a set of coupled nonlinear PDEs in 2 > and 3 dimensions. > > I hope to compare the usability of LibMesh and Deal II for this purpose. Glad to help! > 2) What additional code changes would a user be required to make in order to > get matrixfree solution algorithms to work with LibMesh ? For example, only > local assemblies need be performed and global assemblies that require matrix > to be stored are not needed. For an iterative linear Krylov solve, this > would be done at every matvec product request. I'll go ahead and comment on this one... I assume you would like to compute the action of the matrixvector product in some Krylov subspace method? PETSc provides support for the notion of 'userprovided' matrix vector product, where the user returns the result y=Kx given the vector x. In the PETSc nonlinear solvers (which we support but there is no explicit example using them at the moment) the user can provide a 'residual' function which can be used to perform matrixfree newtonkrylov simulations. In libMesh this is as simple as providing a residual function and then using the ksp_matrix_free or ksp_mf_operator (I think) options to PETSc. Of course, you will still need to come up with a quality preconditioner to use such a scheme, and doing so may still require a matrix, depending on your PDE. > If somebody can provide me with some pointers for the scalability results > and possibly a sample code for even a simple 1D diffusion problem, that > would be fantastic. I could probably be persuaded to add ex19 for this purpose, it is well overdue. John/Roy/Derek, if y'all could point me to a LaplaceYoung matrix assembly routine this would be a good case to build the example on! Ben 