dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #22138
Re: [Question #149919]: PETScKrylovMatrix multiplication in Python
On Monday March 21 2011 11:24:28 Kent-Andre Mardal wrote:
> Nice!
> There may be some SWIG director methods missing for the matrices. I will
> have a look
> to check how to do it with or without these director methods.
I think the director methods works fine. These are the guys that reports the
error.
But I think we need to change order of the #includes in dolfin_la.h so
PETScVector come before PETScKrylovSolver.
Can you check that Kent?
We need some sort of testing for this...
Johan
> Kent
>
> On 21 March 2011 19:17, Christian Clason <
>
> question149919@xxxxxxxxxxxxxxxxxxxxx> wrote:
> > Question #149919 on DOLFIN changed:
> > https://answers.launchpad.net/dolfin/+question/149919
> >
> > Status: Answered => Open
> >
> > Christian Clason is still having a problem:
> > Yes, via PETScKrylovSolver. Below is a minimal example for what I'm
> > trying to do.
> >
> > Christian
> >
> > from dolfin import *
> >
> > def boundary(x,on_boundary):
> > return on_boundary
> >
> > mesh = UnitSquare(32, 32)
> > V = FunctionSpace(mesh, 'CG', 1)
> >
> > u0 = Constant(0.0)
> > bc = DirichletBC(V, u0, boundary)
> > u = TrialFunction(V)
> > v = TestFunction(V)
> > a = inner(grad(u), grad(v))*dx
> >
> > class NewtonMatrix(PETScKrylovMatrix) :
> > def __init__(self) :
> > PETScKrylovMatrix.__init__(self, V.dim(), V.dim())
> >
> > def mult(self, *args) :
> > du = Function(V)
> > du.vector()[:] = args[0][:]
> >
> > f = du*v*dx
> >
> > problem = VariationalProblem(a, L, bc)
> >
> > dy = problem.solve()
> >
> > args[1][:] = dy.vector()[:]
> >
> > H = NewtonMatrix()
> >
> > E = project(Constant('1'),V)
> > b = PETScVector(E.vector().size())
> > b.set_local(E.vector().array())
> >
> > x = PETScVector(E.vector().size())
> > x.zero()
> > NewtonSolver = PETScKrylovSolver('cg', 'none');
> > NewtonSolver.solve(H, x, b);
> >
> > --
> > You received this question notification because you are a member of
> > DOLFIN Team, which is an answer contact for DOLFIN.
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~dolfin
> > Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~dolfin
> > More help : https://help.launchpad.net/ListHelp
Follow ups
References