From: Vijay M <unknownreference@gm...>  20071214 20:18:21

Ben, Thanks for the prompt reply ! > I assume you would like to compute the action of the matrixvector product > in some Krylov subspace method? Yes. > 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. I understand this. But my concern is how would you compute the local contributions to the matvec product ? Since I do not want to store the global stiffness or mass matrices, the question then becomes, what is the "overhead" in writing a user routine to perform local assemblies with local mass, stiffness for each DOF to get the nonlinear residual functional ? And how does this operation scale in parallel ? I pose this question since the matrixfree algorithm will not involve any kind of assembling routine at all. All it would need is to know the local h, p, and basis type to compute local mass, stiffness matrices to compute the local residual (a value in the global residual vector corresponding to the unknown). Also, I perfectly understand your concern about creating a global preconditioner matrix for this method to be successful but I believe that a framework can be written well to handle the matrixfree algorithm in a purely recursive fashion thereby eliminating any need for a preconditioner matrix. Just my 2 cents. Any pointers to benchmark studies that you have done in the past regarding the speed and scalability for different kinds of problems (diffusion, convection dominated) would also be very useful to me. I would be happy to contribute to a sample code regarding a matrixfree scheme with LibMesh and PETSc which will give me an opportunity to test out different techniques I have in mind. I will be playing around with LibMesh in the coming few weeks and hope to write a pilot code soon. So if you have any suggestions or comments, please feel free to email me about them. Vijay Original Message From: Benjamin Kirk [mailto:benjamin.kirk@...] Sent: Friday, December 14, 2007 12:46 PM To: Vijay M; libmeshusers@...; Roy Stogner; John Peterson; Derek Gaston Subject: Re: [Libmeshusers] Support for Matrixfree algorithms > 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 No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.17.2/1184  Release Date: 12/14/2007 11:29 AM No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.17.2/1184  Release Date: 12/14/2007 11:29 AM 