On 26 August 2014 15:59, Martin Sandve Alnæs <[email protected]> wrote:

> On 26 August 2014 15:21, Kristian Ølgaard <[email protected]> wrote:
>
>>
>>
>> ---------- Forwarded message ----------
>> From: Kristian Ølgaard <[email protected]>
>> Date: 26 August 2014 15:20
>> Subject: Re: [FEniCS] `Expression`s and their silent interpolation
>> To: Jan Blechta <[email protected]>
>>
>>
>> On 26 August 2014 14:18, Jan Blechta <[email protected]> wrote:
>>
>>> On Tue, 26 Aug 2014 09:50:23 +0100
>>> "Garth N. Wells" <[email protected]> wrote:
>>>
>>> > To summarise this thread, it seems we need to introduce the concept
>>> > of an 'Expression' that can be evaluated at arbitrary points. It
>>> > should not be a Quadrature{Element/Function} because the proposed
>>> > object could be used in different forms with different evaluation
>>>
>>
> Agree. Also it should not have any notion of degree. Pointwise is
> pointwise.
>
>
>  > points. The follow-on on issue is then how a 'point-wise' expression
>>> > should be treated in forms. We could estimate the quadrature scheme
>>> > when test/trial functions are present, and in the case of functionals
>>> > throw an error if the user doesn't supply the quadrature degree.
>>>
>>> There's no principal difference regarding rank of the form. Consider
>>>
>>> f = PointwiseExpression(eval_formula)
>>> u, v = TrialFunction(V), TestFunction(V)
>>> a = f*u*v*dx
>>> L = f*v*dx
>>> F = f*dx
>>>
>>> Still, you need to know what is the polynomial degree of f to have
>>> exact quadrature of any of these forms. Ignoring non-zero degree of f
>>> (which seems to me you do suggest for a and L) means that you're
>>> underintegrating any of those three forms. This is analogical to
>>> integrating F with scheme of order zero. I don't see any good reason
>>> why having distinct behaviour based on rank of the respective form.
>>>
>>
> Agree.
>> For PointwiseExpression, one should define EITHER the polynomial degree
>> that the user would like the use for the approximation (of e.g., 'sin(x)')
>> OR the (degree of) quadrature rule for the measure.
>> The latter should take precedence if both are defined, just as it does
>> currently.
>>
>
> Please, no. Isn't that basically the situation we're trying to get away
> from? A pointwise expression doesn't have a degree and it's not a good
> abstraction to assign one to it. The rules become complex which makes the
> source code hard to follow, the documentation poor, and confuses the users
> and developers alike.
>

Perhaps I got a little confused. Is PointwiseExpression supposed to replace
Expression or will they co-exist?

If PointwiseExpression will replace Expression, my suggestion to forcing
the user to supply the degree (or element) was intended to solve Nico's
original problem.

>
>
> These are two distinct issues:
> 1) We need a "PointwiseExpression" with no degree and no hidden
> interpolation under the hood. This expression is evaluated in quadrature
> points - this is a clean concept and easy to understand.
>

If PointwiseExpression and Expression will co-exist, I agree to this
definition. If it makes implementation cleaner for quadrature degree
estimation, we can set the degree equal to zero, but hidden from users.



> 2) Degree estimation is not exact and some people are confused by that.
> But it is not exact today, never was claimed to be, and never will be. If
> that's not acceptable, we can just as well disable it completely. Disabling
> it where it isn't exact will break a _lot_ of programs. What we _can_ do
> without breaking programs or making the interface more cumbersome than
> today, is to make it more obvious how to control the integration degree,
> and to document it better.
>

I don't think anyone can disagree with this.

Kristian


>
> Martin
>
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to