← Back to team overview

dolfin team mailing list archive

Re: Computation of Norms

 

Thanks. That works. I have a related question about forms.  Can the
form be defined in python, and then compiled via ffc? For example, I
did,

from dolfin import *
mesh = Mesh("./mesh_2d.xml")
V = VectorFunctionSpace(mesh, "Lagrange", 1,3)
u = Function(V)
M = dot(u,u)*dx


and then called ffc on this form. This generated a header file. Are
there any caveats here that I should be careful about?

-Jehanzeb

On Mon, Jun 15, 2009 at 3:20 AM, Anders Logg<logg@xxxxxxxxx> wrote:
> On Mon, Jun 15, 2009 at 10:09:11AM +0200, Patrick Riesen wrote:
>> Hi,
>>
>> ffc looks for the variables a, L or M to generate a form, so you should
>> use L  instead of L2, so that ffc notices it.
>
> Should be M unless you want to assemble a vector.
>
> --
> Anders
>
>
>> regards,
>> patrick
>>
>> Jehanzeb Hameed wrote:
>> > I cant figure out how to generate a form file for norm, in C++. The
>> > problem is that the form is quadratic in its arguments, and so isn't a
>> > valid form according to ffc user manual. I tried it anyway, making a
>> > file like this (just for testing):.
>> >
>> > vecElement = VectorElement("Lagrange", "triangle", 1,3)
>> > u = Function(vecElement)
>> > L2 = dot(u,u)*dx
>> >
>> > ffc doesnt make .h file, and exits with the following message:
>> >
>> > "No forms or elements specified, nothing to do."
>> >
>> > I tried compiling by "ffc -r quadrature l2norm.form", and again got
>> > the same message.
>> >
>> > Can someome please help amd point out what I can do?
>> >
>> > Thanks,
>> > -Jehanzeb
>> >
>> > On Wed, Jun 10, 2009 at 11:14 AM, 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
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iEYEARECAAYFAko2BFQACgkQTuwUCDsYZdF7qACeJkPnmaCDwkc1ffLUsGyyEOtY
> /kAAnidGRwRLBL7jksqEnf0KsUw4D7hb
> =k8B2
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev
>
>


Follow ups

References