Thread Previous • Date Previous • Date Next • Thread Next |
On Apr 24, 2006, at 2:07 AM, Johan Hoffman wrote:
It appears that the most straightforward (and general?) way to implement surface integrals would be to just integrate the cell basis functions over a boundary/interior facet. Possibly by first throwing away dofs that are zero on the facet. Using the "trace_tabulate" of FIAT this should be toomuch work?
You have to be a little careful here -- yes you can throw away zero dofs on a facet *if* you are integrating the function. Sometimes you want to integrate derivatives. That makes things more complicated.
On the DOLFIN side we would get element matrices corresponding to all dofs of the cell also when looping over (boundary) edges, typically with a lot of zero entries. There may be some optimizations here to consider, but thegeneral algorithm seems rather clear, or? On the FFC side, the reference tensor needs to be modified (using FIATtrace_tabulate?) to reflect integration over an edge/face instead of overthe whole cell.
Yes, you also need to use the lower-dimensional quadrature rules, etc. This should just require being careful and not necessarily addressing any major conceptual problems. Except maybe getting the orientation correct -- you might need different routines for doing boundary integrals if for each possibly local boundary number/ orientation.
Rob
Thread Previous • Date Previous • Date Next • Thread Next |