I'm solving a system of linear equations obtained from the FEM discretization of a simple linear elasticity problem on a cube with zero displacements at one plane and a load on the opposite one. The system size is about 85000. I use conjugate method preconditioned with smoothed aggregation multigrid method that I provided with translation and rotation vectors for my matrix. But eventually I get speed up only at iterations amount while solving time triples. I implemented the algorithm presented here: https://link.springer.com/content/pdf/10.1007/s211-001-8015-y.pdf The prolongation operator smoother differs a little bit for now, it is done as weighted Jacobi method based on the original problem matrix. But the general steps are the same. So in any work I've read I've never seen graphs for solving time, or that the author solved a big matrix with this algorithm. A classical AMG applied on a giant Poisson problem matrix solves it in several seconds, but the algorithm supposed to solve linear elasticity problems doesn't show such perfomance. Why so? I'm trying to find any problem in linear elasticity in which amg will show acceleration


If I understand your question correctly you're solving a linear elasticity problem using conjugate gradient and it's preconditioned with a preconditioned AMG solver? It seems to me that this may be overkill for a pretty well behaved problem, and that could be why you don't see much of a speed-up. Just to elaborate a bit. I think it makes more sense to just use preconditioned AMG in this case. Most of the time that you see preconditioned AMG as a preconditioner is for a krylov solver for really nasty linear systems that come from more complex physics and more complex meshes. In such cases we like to use krylov solvers because they can prevent divergence, and the preconditioned AMG does most of the work as the krylov solvers preconditioner. Your problem should be well behaved and shouldn't require much in terms of fancy solvers.

| cite | improve this answer | |
  • 1
    $\begingroup$ I'd add to this that, as a rough estimate, iterative solvers only start to beat sparse direct solvers for problems with more than ~125k unknowns. $\endgroup$ – Daniel Shapero Jun 5 at 16:24
  • $\begingroup$ I would also add to this that the time intensive preparation for sa amg will only pay off for huge systems. In the OP's case, a simple diagonal preconditioner would even be faster - my gut feeling. $\endgroup$ – dweber Jun 5 at 18:41
  • $\begingroup$ What is "preconditioned AMG" supposed to mean? It is also definitely not true that unpreconditioned CG can be competitive with anything. Specifically, the method of choice for this kind of problem is to use CG preconditioned by either AMG or GMG. $\endgroup$ – Wolfgang Bangerth Jun 5 at 23:27
  • $\begingroup$ I agree that 85,000 unknowns is a tiny problem for which a direct solver is the best choice. $\endgroup$ – Wolfgang Bangerth Jun 5 at 23:27
  • $\begingroup$ As you know, you can precondition multigrid methods with a variety of smoothers. I don't understand your question? He's saying hes smoothing the AMG at each level with block-jacobi as far as I understand the question. $\endgroup$ – EMP Jun 6 at 5:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.