Ok very simple thanks (I thought it might have been dependent to the finite element shape). I still have one question about the new Funcion interface. When I define a User-defined Function, only eval() is used for the FEM assembly? I ask this because I have some problems in understanding if overloading this method is enough in order to define a source term. Also this method is defined as const, hence if this happens to be the case, I have to redisign a part of my source class. Thanks.
Alessio > Just do the following: > > Mesh mesh; Function f; > > real* vertex_values = new real[mesh.numVertices()]; > f.interpolate(vertex_values); > > Then vertex_values will be an array with the values at all vertices. > > For a scalar function, you simply get all the vertex values and for a > vector (or in general tensor-valued) function, you first get all the > values for component 0, then all values for component 1 etc. > > /Anders > > > Alessio Quaglino wrote: >>> On Tue, Jun 26, 2007 at 02:56:52PM +0200, Alessio Quaglino wrote: >>>> I'm trying to get my code working with the new dolfin 0.7.0-1 but it >>>> seems >>>> there are a several problems. For example, a part of the >>>> dolfin::Function >>>> interface has disappeared. In particular, it is not possible to get >>>> the >>>> value corresponding to a vertex or the finite element space where the >>>> function is living. Have these functionalities been moved somewhere >>>> else? >>>> >>>> Regards, >>>> Alessio Quaglino >>> Use Function::interpolate() to access the values. Often, one can >>> avoid ever needing to access the values directly, but if they should >>> be needed, then it is possible to either interpolate the Function to a >>> given Cell (getting the expansion coefficients in the local finite >>> element basis) or get the values at all vertices. >>> >>> So, try to avoid accessing the values but if you really need the >>> values at vertices you can still get them. >>> >>> /Anders >>> _______________________________________________ >>> DOLFIN-dev mailing list >>> [email protected] >>> http://www.fenics.org/mailman/listinfo/dolfin-dev >> >> Ok I see, however with interpolate() I can either get all the Vertex >> values or the values at a given Cell. While the latter case is >> unefficient >> for my purpose because I'd pass through the same Vertex several times, >> in >> the former I get a vector with the values at all vertices but no >> information about how to access such a vector. >> >> Regards, >> Alessio >> >> >> _______________________________________________ >> 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
