dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #20955
[Bug 706909] Re: [python] matrix multiplication fails in parallel
Turns out the same problem is in C++; mult() does resize() on the vector
internally, using size(0) instead of local_range(0).
So I guess the solution would be to not initialise the matrix in python,
just pass an empty one, and change the resize() call in C++.
--
You received this bug notification because you are a member of DOLFIN
Team, which is subscribed to DOLFIN.
https://bugs.launchpad.net/bugs/706909
Title:
[python] matrix multiplication fails in parallel
Status in DOLFIN:
New
Bug description:
The python code for __mul__() assumes an empty vector suitable for
mult() can be created from just the dimensions of the matrix:
if type(other) == Vector:
ret = Vector(self.size(0))
This is not true in parallel. And it won't help to copy the input
vector, as that only works for square matrices.
How to create a vector which is compatible with a given matrix at this
point (only the matrix available, not the sparsity pattern)? Would it
perhaps be acceptable to add methods create_right_vector(),
create_left_vector() to GenericMatrix?
Follow ups
References