On Sat, Jun 21, 2008 at 05:29:14AM -0400, Hatef Monajemi wrote:
>
> Hi
> Isn't this code supposed to work? It gives me "invalid lvalue in
> assignment" error while compiling. How should I assign the elements of
> a Matrix???
>
> //-------------------------------
> int main()
> {
>
>
> for(i=0; i<nens; i++)
> .
> .
> .
> real* values = new real[nstat];
> u1.interpolate(values);
>
> Matrix S(nstat,nens);
>
> for(int j=0;j<nstat;j++)
> {
> S(j,i)=values[j];
> }
>
> }Sorry, this doesn't work yet. We can easily fix this in the GenericMatrix interface by adding an auxiliary class MatrixEntry (which just holds (i, j) and a reference to the matrix) and have operator() return that, then overload operator= in MatrixEntry to assign to the matrix. We had this in DOLFIN 2-3 years back but the linear algebra has gone through several reimplementations since then... Until this has been implemented, you can use the setitem() function. And please file a bug report for this. Mark it as "enhancement". -- Anders
signature.asc
Description: Digital signature
_______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
