← Back to team overview

dolfin team mailing list archive

Re: Dealing with incomplete UFL finite elements

 

2011/4/27 Johan Hake <johan.hake@xxxxxxxxx>

> On Wednesday April 27 2011 12:03:56 Martin Sandve Alnæs wrote:
> > On 27 April 2011 19:07, Garth N. Wells <gnw20@xxxxxxxxx> wrote:
> > > I'm starting here a new thread on how to deal with the recent change in
> > > UFL that has broken a good number of DOLFIN demos. The previous thread
> > > meandered and got side-tracked.
> > >
> > > The framework in we need to operate is:
> > >
> > > A. UFL will not allow forms to be modified post-construction.
> > >
> > > B. It should be relatively easy to replace ufl.Coefficients in a form
> > > and return a new form.
> > >
> > > C. The issue with replacing ufl.Coefficients is that we lose DOLFIN
> data
> > > (like the eval() functions) associated with the removed coefficients.
> > >
> > >
> > > I'll kick off with the obvious solution:
> > >
> > > 1. Require that all DOLFIN Expressions are associated with a
> > > ufl.FiniteElement.
> > >
> > > Other solutions?
> > >
> > > Garth
> >
> > 2.  At the stage when ffc calls ufl.preprocess, or even in
> ufl.preprocess,
> > let the preprocessed form contain ufl Coefficients with new elements in
> > place of the dolfin.Expressions. This is similar to the replacements done
> > for renumbering of Coefficients, and could either be done simultaneously
> or
> > as an additional step. The original Form and Expression objects will be
> > untouched, and the preprocessed form will be fine.
>
> +
>
> However, setting cell and degree is done during analysis and relies on
> form_data. The form is also preprocessed when the form_data is extracted.
> This
> means that for the preprocessed form to get correct signature, cell and
> degrees being set, we need to break up the logic.
>
>  1) extract form_data
>  2) set degree and cell
>  3) genererate preprocessed form
>

Lets figure out the exact algorithm if we need it. It could perhaps be
integrated better with preprocess. Or it might be better to extract just the
information needed to determine degree and cell first, and pass the element
replacements to preprocess.

Martin

Follow ups

References