ufl team mailing list archive
-
ufl team
-
Mailing list archive
-
Message #00063
Fwd: FiniteElement classes
Sorry, missed the list.
---------- Forwarded message ----------
From: Martin Sandve Alnæs <martinal@xxxxxxxxx>
Date: 15.mar.2008 11:45
Subject: Re: [UFL-dev] FiniteElement classes
To: Marie Rognes <meg@xxxxxxxxxxx>
2008/3/15, Marie Rognes <meg@xxxxxxxxxxx>:
> Martin Sandve Alnæs wrote:
> > 2008/3/14, Anders Logg <logg@xxxxxxxxx>:
> >
> >> On Thu, Mar 13, 2008 at 05:46:03PM -0400, Marie Rognes wrote:
> >>
> > '> > Just a comment: I typically want to write something like
> >
> >> >
> >> > VectorElement("Nedelec", ...)
> >> >
> >> > in order to have a vector of Nedelec elements...!
> >>
> >
> > So, does that represent a tensor field?
>
>
> For instance, yes.
>
>
> > I've implemented value_rank()
> > in the VectorElement and TensorElement that way, so the value rank of
> > a VectorElement is the value rank of the subelement (Nedelec) plus
> > one. Thus each row of the tensor is represented by a Nedelec element.
> >
> > If you want a set of vector elements instead:
> > fe = FiniteElement("Nedelec",...)
> > me = MixedElement(fe, fe, fe)
> > # or
> > me = fe+fe+fe
> > should also work. The value rank of a MixedElement constructed one of
> > these ways is undefined, since Functions should be defined over its
> > subelements anyway.
> >
> >
>
>
> I'm sure this works well. It is just a matter of philosophy in the
> naming, I guess. A VectorElement could either represent a vector field
> or a vector of elements... To me, the latter is the most intuitive, but
> that's probably just because that's what I'm used to ;)
The way I've implemented value_rank() now, VectorElement represents a
vector of elements which combines into a single field, while
MixedElement is "only" a list of elements where the element fields are
distinct.
The reason value_rank() is important, is that UFL does consistency
checking as early as possible to give good user feedback. It should be
very difficult to construct an expression that doesn't make sense and
get away with it.
--
Martin
--
Martin
Follow ups
References