ffc team mailing list archive
-
ffc team
-
Mailing list archive
-
Message #03469
Re: Status (again)
On Wed, 2010-01-27 at 16:54 +0100, Kristian Oelgaard wrote:
>
> 2010/1/27 Medhi Nikbakht <m.nikbakht@xxxxxxxxxx>:
> > On Wed, 2010-01-27 at 15:50 +0100, Marie Rognes wrote:
> >>
> >> FFC compilation fails for
> >>
> >> ElementRestriction.ufl
> >
> > The error message says that "ElementRestriction" is not supported by
> > FIAT.
> > How will the restricted elements be implemented? Wouldn't it be better
> > to support them inside FFC?
>
> There are two types of restrictions supported in UFL (and the old FFC).
> 1) Restriction onto Measure (like 'dc'), which is what you want.
> 2) Restriction onto Cell, as for instance restricting a Lagrange element defined on a 'triangle' to its facets.
>
> The third restriction that we might want in the future is restriction onto subdomains possible in UFL but not in FFC.
>
> To implement 1) I think it is enough to just attach the Measure as a member to the fiat_element and the simply look for it in appropriate places when generating the code. That means handle it in FFC.fiatinterface, could that work?
>
Yes, it works. In my case just adding these few lines to the beginning
of create_fiat_element is enough,
domain = ufl_element.domain_restriction()
if isinstance(domain, Measure):
if domain.domain_type() == "surface":
ufl_element = ufl_element._element
Since I have the same properties as non-restricted element.
Mehdi
> To implement 2) I modified the return value of entity_dofs() and tabulate() accordingly. To do it this way again we will need to make changes in FIAT_NEW.FiniteElement and FFC.MixedElement. I'm not sure it is a good idea to make FIAT_NEW.PolynomialSet aware of restrictions, but I don't know enough about the FIAT internals to back up this claim.
>
> I'm not really sure how to handle the restriction onto subdomains, but it should most likely be implemented in FFC.
>
> Kristian
>
> > Mehdi
> >
> >> QuadratureElement.ufl
> >> TensorWeightedPoisson.ufl
> >>
> >> Running test programs fails for
> >>
> >> P5tet.bin (Segmentation faults after evaluate_basis(0, ...)
> >>
> >> Differences in output
> >>
> >> evaluate_basis*
> >>
> >> FacetIntegrals.out (missing value in generated code (many))
> >> SubDomain.out (missing value in generated code
> >> (tabulate_tensor))
> >>
> >>
> >> Others:
> >>
> >> tabulate_entity_dofs (errors thrown are all wrong. Marie will fix)
> >>
> >>
> >> --
> >> Marie
> >>
> >>
> >> _______________________________________________
> >> Mailing list: https://launchpad.net/~ffc
> >> Post to : ffc@xxxxxxxxxxxxxxxxxxx
> >> Unsubscribe : https://launchpad.net/~ffc
> >> More help : https://help.launchpad.net/ListHelp
> >
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~ffc
> > Post to : ffc@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~ffc
> > More help : https://help.launchpad.net/ListHelp
> >
>
References