← Back to team overview

dolfin team mailing list archive

Re: pointmap

 

On Sat, Mar 24, 2007 at 06:52:04PM +0100, Garth N. Wells wrote:
> In the old FFC output format, the function
> 
>    void pointmap(Point points[], unsigned int components[],
>                  const AffineMap& map) const
> 
> returns in components[] a degree of freedom identifier (e.g. 0 for u, 1 
> for v, 2 for p, etc) for each entry in the element tensor. How can we 
> get this information with the new UFC format? (or how can we avoid 
> requiring it?)
> 
> Garth

Do you mean for evaluating dofs on user-defined functions (to get the
expansion coefficients in the nodal basis to put in the array w) or
for setting boundary conditions?

I think that in both cases it should be enough to evaluate the dofs on
the ufc::function, but we might have missed something. The function
evaluate_dof() takes a function f that may or may not be vector-valued
and computes the scalar value of dof i. So for a 2D vector-valued
Lagrange element of degree 1, dof 0 will be f_0(v0), dof 1 will be
f_0(v1), dof 2 will be f_0(v2), dof 3 will be f_1(v0) etc. The
function evaluate() in ufc::function needs to compute all values of
the possibly tensor-valued function.

/Anders


Follow ups

References