When I run this demo in parallel, I get passed the assignment line but it
stops when calling the solve function with the following message:
Traceback (most recent call last):
File "demo.py", line 86, in <module>
Traceback (most recent call last):
solver.solve(problem, u.vector())
RuntimeError: *** Error: MUMPS is required for parallel symbolic LU.
I delved into the problem and the program ends up in the function
_compare_vector_with_vector from dolfin_la_get_set_items.i. It uses
GenericVector::get and GenericVector::set. These need to be used with
caution in parallel.
Yes, when other type of slices are used we need to find a way to do that
in parallel. I have just started digging in the parallel code, and need
to look into all the changes to get familiar with it before I try to
solve this.
This shouldn't be too hard.
set(const double* block, uint m, const uint* rows)
works in parallel but
get(double* block, uint m, const uint* rows)
doesn't yet (not too hard to fix though). The really evil functions are
set(const double*)
and
get(double*)
I think I am only using
set(const double* block, uint m, const uint* rows)
get(double* block, uint m, const uint* rows)
However GenericVector.array is using the get(double*) function, and returns
some fishy numbers in the numpy.array.
Johan
Garth
The best solution would be to have a full fledge VectotView in place ;)
Johan
Garth
Other slices might not
work. Have not checked.
Johan
? The issue is that it doesn't work in parallel.
Garth
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev