← Back to team overview

ufl team mailing list archive

Re: Extending UFL

 



Kristian Oelgaard wrote:
Quoting Martin Sandve Alnæs <martinal@xxxxxxxxx>:

Hi all,
thanks for all the nice comments and feedback at the workshop.
There was in particular some interest in how to extend UFL
with experimental features without having to interfere with the
main development branch. I'd like to compile a list of the kind
of features that are most interesting to people, so we can figure
out what to make extensible. Then I'll see what I can do.

Extending UFL with lifting operators.

Recall that for the Poisson equation we have:

a = \int (grad(v) + R(v))(grad(u) + R(u)) d\Omega
    + \sum_e \int (\eta r^e(v) r^e(u) d\Omega

with

R(u) = \sum_e r^e(u)
and
\int_{E = E^{+} + E^{-}} w r^e(u) d\Omega = - \int_e {w}[u] d\Gamma

where the last equation is the lifting operation.

I think we need to introduce two new functions in order to distinguish terms
like grad(v)R(u) and the stabilisation term r^e(v)r^e(u).
As mentioned at the workshop, we probably also need a new integral type.

So (some of) the terms in the Poisson equation could be represented as:

element  = FiniteElement("Discontinuous Lagrange", triangle, 1)
l_space = VectorElement("Discontinuous Lagrange", triangle, 0)

v = TestFunction(element)
u = TrialFunction(element)
R = LiftingFunction(l_space)
r = LiftingOperator(l_space)

a = inner(grad(v), R(u))*dE + inner(r(v), r(u))*dE

For this to work, we probably have to introduce a new type of integral in UFC
and modify the assembly in DOLFIN.


I think that this can be cast in a more generic framework of static condensation. The question then is how UFL should let a form compiler know that a dof should be eliminated at some local level (typically at the level of a cell or the union of two cells). This may also require an extension of UFC (to return/accept local and global parts of the tensor).

Garth

Kristian

Martin
_______________________________________________
UFL-dev mailing list
UFL-dev@xxxxxxxxxx
http://fenics.org/mailman/listinfo/ufl-dev



_______________________________________________
UFL-dev mailing list
UFL-dev@xxxxxxxxxx
http://fenics.org/mailman/listinfo/ufl-dev




Follow ups

References