← Back to team overview

dolfin team mailing list archive

Re: Computation of Norms

 

On Wed, Jun 10, 2009 at 06:46:53PM +0200, Martin Sandve Alnæs wrote:
> Not a linear form, but a functional. That's what norm does anyway.
> 
> u = Function(element)
> x, y, z = tetrahedron.x
> L2 = (sin(2*pi*x) - u)**2*dx
> 
> You still have to make sure you compile
> with sufficient quadrature order though.

That may not be numerically stable depending on how the form compiler
expands the expression into terms. Use the function errornorm() which
works around this and automatically computes the norm:

  e = errornorm(u, u_h)

Look at the documentation in errornorm.py for a longer explanation.

-- 
Anders



> 
> On Wed, Jun 10, 2009 at 6:33 PM, Shawn Walker<walker@xxxxxxxxxxxxxxx> wrote:
> > Actually, I have a question about this.  I may have asked this before, so
> > forgive me if I repeat.
> >
> > Suppose my exact solution is sin(2*pi*x).  I would like to compute the exact
> > error against this function.  Is this doable?  I know you can resample it
> > with a higher order function, but that is lame!  Can't FFC treat it like a
> > linear form and use quadrature to evaluate it?  I know it isn't really a
> > linear form, but FFC wouldn't know the difference!  :) Maybe I am missing
> > something...
> >
> > - Shawn
> >
> > On Wed, 10 Jun 2009, Martin Sandve Alnæs wrote:
> >
> >> The norm definitions should use "inner" instead of "dot" to handle
> >> tensor fields as well.
> >>
> >> Martin
> >>
> >>
> >>
> >> On Wed, Jun 10, 2009 at 6:14 PM, Anders Logg<logg@xxxxxxxxx> wrote:
> >>>
> >>> On Wed, Jun 10, 2009 at 09:58:20AM -0500, Jehanzeb Hameed wrote:
> >>>>
> >>>> Thanks. So I guess that means no such facility is available in C/C++ ?
> >>>
> >>> No, since the computation depends on the space the functions are in
> >>> and so the code needs to be generated. In C++, you need to define a
> >>> form file for the norm. Look at
> >>>
> >>>  site-packages/dolfin/norm.py
> >>>
> >>> for how to define the norms.
> >>>
> >>>
> >>>
> >>>> On Wed, Jun 10, 2009 at 2:03 AM, Anders Logg<logg@xxxxxxxxx> wrote:
> >>>>>
> >>>>> On Tue, Jun 09, 2009 at 05:11:48PM -0500, Jehanzeb Hameed wrote:
> >>>>>>
> >>>>>> Hello,
> >>>>>>
> >>>>>> Is there a builtin function in dolfin to compute L^2 or H_1 norms? If
> >>>>>> so, can you please point it out. If not, are there support functions
> >>>>>> (e.g. a Gauss Quadrature table, computation of Jacobians, etc) which
> >>>>>> can help in this?
> >>>>>
> >>>>> Yes, this is available in the DOLFIN Python interface:
> >>>>>
> >>>>>  norm(v)
> >>>>>
> >>>>> The default computes the L^2 norm. Several options are available:
> >>>>>
> >>>>>  L^2:     norm(v, 'L2')
> >>>>>  H^1:     norm(v, 'H1')      includes L^2 term
> >>>>>  H^1_0:   norm(v, 'H10')     does not include L^2 term
> >>>>>  H(div):  norm(v, 'Hdiv')    includes L^2 term
> >>>>>  H(div):  norm(v, 'Hdiv0')   does not include L^2 term
> >>>>>  H(curl): norm(v, 'Hcurl')   includes L^2 term
> >>>>>  H(curl): norm(v, 'Hcurl0')  does not include L^2 term
> >>>>>
> >>>>>
> >>>>> -----BEGIN PGP SIGNATURE-----
> >>>>> Version: GnuPG v1.4.9 (GNU/Linux)
> >>>>>
> >>>>> iEYEARECAAYFAkovWqUACgkQTuwUCDsYZdGb3gCfa2gWnzealWzkjPoRj8hf3cr/
> >>>>> 0EUAoJh4mpaIzRU9eCnnC+XWlupu6SV0
> >>>>> =so4c
> >>>>> -----END PGP SIGNATURE-----
> >>>>>
> >>>>> _______________________________________________
> >>>>> DOLFIN-dev mailing list
> >>>>> DOLFIN-dev@xxxxxxxxxx
> >>>>> http://www.fenics.org/mailman/listinfo/dolfin-dev
> >>>>>
> >>>>>
> >>>> _______________________________________________
> >>>> DOLFIN-dev mailing list
> >>>> DOLFIN-dev@xxxxxxxxxx
> >>>> http://www.fenics.org/mailman/listinfo/dolfin-dev
> >>>
> >>> -----BEGIN PGP SIGNATURE-----
> >>> Version: GnuPG v1.4.9 (GNU/Linux)
> >>>
> >>> iEYEARECAAYFAkov28sACgkQTuwUCDsYZdE8KQCdEI7wS27QaNw9knI2U9L+RVST
> >>> xeUAnRdLrrhAVzsBn6nO1b6CLEpF64ey
> >>> =a7iu
> >>> -----END PGP SIGNATURE-----
> >>>
> >>> _______________________________________________
> >>> DOLFIN-dev mailing list
> >>> DOLFIN-dev@xxxxxxxxxx
> >>> http://www.fenics.org/mailman/listinfo/dolfin-dev
> >>>
> >>>
> >> _______________________________________________
> >> DOLFIN-dev mailing list
> >> DOLFIN-dev@xxxxxxxxxx
> >> http://www.fenics.org/mailman/listinfo/dolfin-dev
> >>
> >
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev

Attachment: signature.asc
Description: Digital signature


Follow ups

References