← Back to team overview

ufl team mailing list archive

Re: [HG UFL] Added ElementRestriction class with notation 'Vr = V[dx(k)]'.

 

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

> On Wed, Jun 17, 2009 at 5:15 PM, Anders Logg<logg@xxxxxxxxx> wrote:
> > On Wed, Jun 17, 2009 at 03:32:03PM +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:   908:ef256e35e417096ae9b9d3a7e915e27e6971ae3f
> >> tag:         tip
> >> user:        "Martin Sandve Alnæs <martinal@xxxxxxxxx>"
> >> date:        Wed Jun 17 15:32:01 2009 +0200
> >> files:       test/newtests/test_demos/test_demos.py
> test/newtests/test_elements/test_elements.py
> test/newtests/test_exprbasics/test_construction.py ufl/__init__.py
> ufl/exproperators.py ufl/finiteelement.py ufl/function.py
> >> description:
> >> Added ElementRestriction class with notation "Vr = V[dx(k)]".
> >
> > What does this mean? What is V?
> >
> > --
> > Anders
>
> The restriction of a function space to a domain.
> Obviously the use of the measure "dx" is an
> abuse of concepts, but it's convenient to reuse it.
>
> Consider:
>
> V1 = FiniteElement("CG", cell, 1)
> V0 = FiniteElement("DG", cell, 0)
> V = V1 + V0[ds(2)]
> u, lamda = TrialFunctions(V)
>
> Here lamda lives only on boundary 2.
>
> Of course, this is useless without support in the rest of
> FEniCS, so it's only a proof of concept for input syntax.
>
> Feel free to suggest alternative syntax and naming.

First of all, any ideas on how to implement support for this in say FFC?


In relation to this new functionality.
If we want to restrict an element, not to a particular subdomain, but to the
exterior of each element, i.e., only consider the dofs that live on facets,
would that also fit in this framework?
Should the syntax for this be V[ds + dS]?
But then what should the syntax be for only considering dofs that live
internally on the cell?

Or, if V is defined on 'triangle', then one could do
V['interval'] to get the facet dofs, and V['triangle'] to get the interior dofs.
It would even be possible to do V['vertex']. If we also allow this syntax we can
restrict elements with respect to either Cells or Measure.
Could this work?

How can this be implemented in FFC? In the case of V['interval'], we could get
the finite element from FIAT as usual, and then find all dofs NOT on the facet
and dump them in a list of dofs that should be ignored when generating all the
code.

Kristian


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




Follow ups

References