dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #25321
Re: x[:] syntax for DOLFIN vectors
On Wednesday December 21 2011 18:00:23 Garth N. Wells wrote:
> What happens behind the scenes when for
>
> x = Vector(100)
>
> ones does
>
> x[:]
>
> ?
That depends if x[:] is on the lhs or on the rhs. If it is on the rhs a copy
will be returned. This is a slice convention in Python.
l0 = range(5)
l1 = l[:]
l1[0] = 1
The last statement will change l1 but not l0. I would expect the same for
dolfin vectors.
If it is on lhs and the rhs is either a GeneriVector or a scalar,
x._assign(rhs) will be envoked.
The relevant methods in la_post.i are:
def __getslice__(...):
def __setslize__(...):
Johan
> I've added GenericVector operator+= and -= for doubles, and would like
> to be sure that this can be used from Python without unnecessary
> copies being made.
>
> Garth
>
> _______________________________________________
> 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