Johan Hake wrote:
> On Wednesday 19 August 2009 18:50:13 Garth N. Wells wrote:
>> Johan Hake wrote:
>>> On Wednesday 19 August 2009 17:29:52 Garth N. Wells wrote:
>>>> What's going on behind the scene when I copy one vector to another in
>>>> PyDOLFIN using
>>>>
>>>>      u0.vector()[:] = u.vector()[:]
>>> When I add:
>>>
>>> u2 = Function(V)
>>> u2.vector()[:] = u.vector()[:]
>>>
>>> # Plot solution
>>> plot(u2)
>>>
>>> In a the Poisson demo it works fine.
>> In parallel?
> 
> Yupp!
> 
>>> This type of slice only uses the assignment operator.
>> The GenericVector assignment operator?
> 
> Yes. This is done in __setslice__/__getslice__ in the extended python class.
> 

I don't see then why the we end up inside

   _compare_vector_with_vector

for the Cahn-Hilliard demo when running in parallel?

>> 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*)

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
>>>> [email protected]
>>>> http://www.fenics.org/mailman/listinfo/dolfin-dev


_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to