On 26 August 2014 16:25, Garth N. Wells <[email protected]> wrote: > > > On Tue, 26 Aug, 2014 at 2:59 PM, 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. >> >> 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. >> > > Sounds good. Clean, and I think uncontentious. I'll register an issue. > > > 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'm happy with this. Let's give it a little longer (the rest of today :)) > for people to feedback and then register it as an issue. > > Garth >
See also: https://bitbucket.org/fenics-project/ufl/issue/40/make-quadrature-scheme-and-degree-a-native Martin
_______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
