Oded,
> My question from last week aimed to get the same quantity, i.e. the
> derivatives of the shape functions of a face of a 3D volume element with
> respect to the natural coordinates of the reference 2D cell.
Ah, then I misunderstood. So this is information that only involves the finite
element (as it does not involve any mapping) and that you can get directly
from the FE object. No FEValues object is necessary for that.
> I thought that this is what would be obtained from the class "FEFaceValues" by
> turning on the flag "update_transformation_gradients". In the documentation of
> "Finite element access/FEValues classes" the description of this flag is
> "Shape function gradients of transformation. Compute the shape function
> gradients of the transformation defined by the Mapping."
>
> See:
>
>
http://dealii.org/developer/doxygen/deal.II/group__feaccess.html#ggaa94b67d2fdcc390690c523f28019e52fa78349f26f4f9386c740940ddbc4be585
>
> I thought that this would give the derivatives of the shape functions with
> respect to the natural coordinates. This is in contrast to the flag
> "update_gradients" whose description at the same place is "Shape function
> gradients. Compute the gradients of the shape functions in coordinates of the
> real cell."
The key word in the description of the former is *mapping*. It refers to the
mapping from the reference to the real cell. You don't seem to be interested
in that. But I think you already found that out.
> Anyway, if I understand correctly your last reply, then one (or more) of the
> functions that I listed yesterday is the one that I need. Which one of them
> should I use?
FiniteElement::shape_gradient for scalar elements. shape_gradient_component is
for vector-valued elements. The finite element you operate on is, I suppose,
the one that you use for your discretization.