Anders Logg wrote:
> On Wed, Apr 11, 2007 at 06:15:30PM +0200, Garth N. Wells wrote:
>> Anders Logg wrote:
>>> On Tue, Apr 10, 2007 at 06:14:12PM +0200, Garth N. Wells wrote:
>>>> Connected to Kristian's work on quadrature in FFC, we should think about
>>>> how to work with functions which do not come from a finite element
>>>> space. Such functions (like stress for a plasticity model or viscosity
>>>> for a non-Newtonian flow) are evaluated at quadrature points, rather
>>>> than at nodes.
>>>>
>>>> Garth
>>> The current design (including UFC) assumes that all functions can be
>>> interpolated to a finite element basis, but I think it will work for
>>> the quadrature code generation to imagine that you have a finite
>>> element basis where the quadrature points are the same as the nodes.
>>> (But you never need to know the basis functions.)
>>>
>>> The array of coefficients (double** w) that comes in to the function
>>> tabulate_tensor() should contain the coefficients, but for the
>>> quadrature these will be the same as the values at the quadrature
>>> points, and this should work out fine since the values that go in to w
>>> are decided by the evaluate_dof() function that also gets
>>> generated.
>>>
>>> So the quadrature code generator just needs to make sure that
>>> evaluate_dof() picks the values at the quadrature points.
>>>
>> The problem with this approach is that it's not possible to create a
>> consistent linearisation when dofs and integration points do not
>> coincide. Kristian and I went through this in detail a while ago.
>>
>> Garth
>
> Yes, I remember, but my suggestion was that the dofs and the points
> should coincide. Then the linearization should be ok?
>
I don't see how this can work. The locations of the dofs and the Gauss
quadrature points do not in general coincide.