ufl team mailing list archive
-
ufl team
-
Mailing list archive
-
Message #01064
Re: [HG UFL] Implemented better version of tuple syntax:
On Mon, Mar 30, 2009 at 03:28:32PM +0200, Anders Logg wrote:
> On Mon, Mar 30, 2009 at 02:00:51PM +0200, UFL wrote:
> > One or more new changesets pushed to the primary ufl repository.
> > A short summary of the last three changesets is included below.
> >
> > changeset: 780:bc9680be05bfd5048c3de1fbcc2f9281c3f2c5ef
> > tag: tip
> > user: "Martin Sandve Alnæs <martinal@xxxxxxxxx>"
> > date: Mon Mar 30 14:02:24 2009 +0200
> > files: ufl/algorithms/formfiles.py ufl/integral.py
> > description:
> > Implemented better version of tuple syntax:
> >
> > a = (u,v)*dx + (f,v)*dx
> >
> > in this case a is a Form, so no changes are needed anywhere else.
>
> Nice. I thought about this (implementing __rmul__ to handle tuples)
> but wanted the even shorter version (without dx).
>
> Can we keep both options?
>
> I haven't figured out how to make load_forms work though. The current
> implementation seems to extract *all* forms from a file, which may not
> always be appropriate. One might want to keep contributions in
> separate variables and then add up the results:
>
> CONV = (v, dot(beta, grad(u)))*dx
> DIFF = (grad(v), grad(u))*dx
> a = CONV + DIFF
>
> Code should here be generated only for the form a, not CONV and DIFF.
>
> FFC solves this by using reserved variable names for forms:
>
> a: bilinear form
> L: linear form
> M: functional
>
> element: single element
If this is not enough, load_forms could also look for a variable named
"forms" that lists the forms that should be compiled:
forms = [a0, a1, L]
or
forms = ["a0", "a1", "L"]
and if this is not found there could be a sensible default (like a, L,
M).
--
Anders
Attachment:
signature.asc
Description: Digital signature
Follow ups
References