Memory corruption error when using PETScKrylovSolver('cg', 'ml_amg') in mixed function space
Issue #868
wontfix
I get a memory corruption error when trying to solve a linear system defined in a mixed function space, using the conjugate gradient method preconditioned with ML amg. This error does not occur with the other amg preconditioners (PETSc and Hypre). Here is a small example that reproduces the error with Fenics 2016.1.0 and above,
from dolfin import *
mesh = UnitSquareMesh(10,10)
Vm = FunctionSpace(mesh, 'CG', 1)
VmVm = FunctionSpace(Vm.mesh(), Vm.ufl_element()*Vm.ufl_element())
testm = TestFunction(VmVm)
trialm = TrialFunction(VmVm)
M = assemble(inner(testm, trialm)*dx)
solver = PETScKrylovSolver('cg', 'ml_amg')
solver.set_operator(M)
x = Function(VmVm)
b = interpolate(Constant(('1.0', '1.0')), VmVm)
solver.solve(x.vector(), b.vector())
Comments (3)
-
-
reporter It does look similar, indeed (set-up + error message).
-
- changed status to wontfix
ML is no longer being developed, and PETSc downloads on old version of ML that is known to gave issues.
For smoothed aggregation AMG, use PETSc's native GAMG, or try MeuLu via Trilinos.
ML has been removed from the Docker images.
- Log in to comment
Probably the same as https://bitbucket.org/fenics-project/docker/issues/61.