← Back to team overview

dolfin team mailing list archive

Re: Invalid conversion from dolfin::GenericVector to dolfin::Vector

 

Ola Skavhaug wrote:
Dag Lindbo skrev den 09/04-2008 følgende:
Hello again!

Why is it not possible any longer to get the Vector associated with a Function? E.g:

#include <dolfin.h>
using namespace dolfin;

int main()
{
   Function u;
   Vector& v = u.vector();
}

int main()
{
     Function u;
     Vector v;
     v = u.vector();
     return 0;
}

Should work. A Function returns a GenericVector reference, and the Vector
reference needs to be a Vector. Then the operator= in Vector is applied in the
assignment.

Ola

Ola,

Sorry if I'm this is a stupid/incorrect observation. What you propose is a a deep copy of the vector. So something like

uBlasVector& vv = *(v.instance());
vv[0] = 1000.32;

has no impact on the data owned by u. uBlas only has deep copy semantics, which are invoked in dolfin::Vector::operator= (i.e. *vector = *x; )

Is this really what we want?

/Dag

error: invalid initialization of reference of type ‘dolfin::Vector&’ from expression of type ‘dolfin::GenericVector’

na55:cpp > scons
c++ -o test.o -c -Wall -pipe -ansi -g -Werror -O2 -pthread -DDEBUG -DNDEBUG -DPACKAGE_VERSION="0.7.2" -DHAS_UMFPACK=1 -DHAS_GTS=1 -I/usr/local/include -I/usr/lib/python2.5/site-packages/numpy/core/include -I/usr/include/suitesparse -I/usr/include/python2.5 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include test.cpp
test.cpp: In function ‘int main()’:
test.cpp:8: error: invalid initialization of reference of type ‘dolfin::Vector&’ from expression of type ‘dolfin::GenericVector’
cc1plus: warnings being treated as errors
test.cpp:8: warning: unused variable ‘v’
scons: *** [test.o] Error 1

I hope this functionality hasn't been removed.

/Dag
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev


Follow ups

References