← Back to team overview

dolfin team mailing list archive

Re: Future work

 

Yes, FFC will need to work with the basis functions for the space on
the entire element, for two reasons:

1. It won't work for other elements than Lagrange, since we may have
basis functions associated with other entities than the boundary
segment in question (the edge or the face) that don't vanish on the
boundary segment.

2. It won't work for Lagrange either, since you may want to integrate
derivatives along the boundary and then we need to differentiate all
basis functions since their derivatives don't vanish on the boundary.

The boundary assembly will look something like the applyBC* functions
in FEM.cpp (or NewFEM.h :-) and will go something like this:

Iterate over faces in mesh:
   cell = cell to which face belongs (function Face::cell())
   segment = compute which segment we are on
   A^K = call FFC code to compute tensor
   A += A^K as usual

Johan Jansson and Karin Kraft has implemented a prototype version of
assembly over the boundary, where they hand-coded the code that FFC
should generate.

The "unsigned int boundary" is needed since the element tensor should
be computed differently depending on which edge or face we are
integrating over (with respect to the reference element). I think we
should rename it to "segment" instead of "boundary".

Thanks for pointing out the trace_tabulate function in FIAT, I was
gonna ask about that at some point.

Another thing I just realized: Rob, you use the term "boundary facet".
Could we use that as a common term to name edges and faces? So we have

    d        cell
    d - 1    facet
    d - 2    ???
    ...
    0        vertex

/Anders


On Wed, Apr 12, 2006 at 10:37:13AM -0500, Robert C. Kirby wrote:
> There is a "trace_tabulate" method in FIAT that computes the values  
> of the basis functions on a boundary facet (or the interior, if you  
> like), FFC should make use of that and then throw away things that  
> are zero.
> 
> 
> On Apr 12, 2006, at 10:22 AM, Johan Hoffman wrote:
> 
> >Ok, good to know. Any ideas on what would be the best solution?
> >
> >/Johan
> >
> >
> >>You most definitely don't want to use the d-1 dimensional element of
> >>the same type.  Works great for Lagrange (and actually Hermite, for
> >>what it's worth), but is disastrously catastrophic for everything  
> >>else.
> >>
> >>
> >>On Apr 12, 2006, at 8:29 AM, Garth N. Wells wrote:
> >>
> >>>On Wed, 2006-04-12 at 15:09 +0200, Garth N. Wells wrote:
> >>>>On Wed, 2006-04-12 at 14:30 +0200, Johan Hoffman wrote:
> >>>>
> >>>>>Apart from the issue of duplicating code with or without
> >>>>>templates, what
> >>>>>do we need to figure out to get the assembly of boundary integrals
> >>>>>correct?
> >>>>>
> >>>>>Do we have a clear way to obtain the FE basis for the boundary of
> >>>>>a cell
> >>>>>given the basis of the cell? Do we use the corresponding basis
> >>>>>for for d-1
> >>>>>dimensions?
> >>>>>
> >>>>>/Johan
> >>>>>
> >>>>
> >>>>This will have to come from FFC won't it? It might be less  
> >>>>efficient,
> >>>>but we could work with the finite element of the whole cell and
> >>>>perhaps
> >>>>the edge/face number is enough for FFC to do the rest.
> >>>
> >>>Thinking about this some more, it might be better not to restrict  
> >>>the
> >>>finite element basis to the boundary in order to work with problems
> >>>where derivatives of the basis functions appear in the boundary
> >>>integrals, and hence involve all nodes of the element. Similar
> >>>story for
> >>>non-conforming elements.
> >>>
> >>>Garth
> >>>
> >>>
> >>>>I noticed that
> >>>>the FFC-produced function eval takes "unsigned int boundary" as an
> >>>>argument, but doesn't do anything with it yet.
> >>>>
> >>>>Garth
> >>>>
> >>>>
> >>>>_______________________________________________
> >>>>DOLFIN-dev mailing list
> >>>>DOLFIN-dev@xxxxxxxxxx
> >>>>http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
> >>>
> >>>
> >>>_______________________________________________
> >>>DOLFIN-dev mailing list
> >>>DOLFIN-dev@xxxxxxxxxx
> >>>http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
> >>
> >>
> >>_______________________________________________
> >>DOLFIN-dev mailing list
> >>DOLFIN-dev@xxxxxxxxxx
> >>http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
> >>
> >
> >
> >
> >_______________________________________________
> >DOLFIN-dev mailing list
> >DOLFIN-dev@xxxxxxxxxx
> >http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
> 
> 
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
> 

-- 
Anders Logg
Research Assistant Professor
Toyota Technological Institute at Chicago
http://www.tti-c.org/logg/



Follow ups

References