← Back to team overview

dolfin team mailing list archive

Re: [HG dolfin] merge.

 

On Sat, Mar 24, 2007 at 06:35:45PM +0100, Garth N. Wells wrote:
> 
> 
> Anders Logg wrote:
> > On Sat, Mar 24, 2007 at 04:49:15PM +0100, DOLFIN wrote:
> >> One or more new changesets pushed to the primary DOLFIN repository.
> >> A short summary of the last three changesets is included below.
> >>
> >> changeset:   2781:9abd9fe6941eba84f35a647a90a72931247d2f19
> >> tag:         tip
> >> parent:      2780:5cac4057403b78d443554190dddd4c8f33119489
> >> parent:      2778:bf8c741d97f0c0ef3a46102c5f4fe5ab54082dc1
> >> user:        "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
> >> date:        Sat Mar 24 16:48:47 2007 +0100
> >> files:       
> >> description:
> >> merge.
> >>
> >>
> >> changeset:   2780:5cac4057403b78d443554190dddd4c8f33119489
> >> user:        "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
> >> date:        Sat Mar 24 16:41:19 2007 +0100
> >> files:       src/kernel/fem/BoundaryCondition.cpp src/sandbox/assembly/main.cpp
> >> description:
> >> Small clean-up.
> >>
> >>
> >> changeset:   2779:7903177af9628644db3c52d806fda0b0861732cf
> >> parent:      2776:a12ef0274893cbce4db94abee4e16e8aa03b4e83
> >> user:        "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
> >> date:        Sat Mar 24 16:36:05 2007 +0100
> >> files:       src/kernel/fem/BoundaryCondition.cpp src/kernel/fem/dolfin/BoundaryCondition.h src/sandbox/assembly/main.cpp
> >> description:
> >> Small clean-up in BoundaryCondition.
> >>
> >> To put everything in place, waiting on FFC to generate the necessary
> >> UFC functions and the see what the UFC/DOLFIN Function interface looks
> >> like.
> > 
> > Will look just as it does today, with "::" --> "" on the DOLFIN side.
> > 
> > With the following form in FFC (in say Poisson.form),
> > 
> >    f = Function()
> >    L = v*f*dx
> > 
> > you will be able to do
> > 
> >    Function f;
> >    PoissonLinearForm L(f);
> > 
> > in DOLFIN. Same as before, but PoissonLinearForm instead of Poisson::LinearForm.
> > 
> 
> I was thinking more along the lines of how to work with ufc::function in 
>   order to call the function
> 
>    virtual double evaluate_dof(unsigned int i, const ufc::function& f,
>                                const ufc::cell& c) const
> 
> Garth

Something needs to inherit from ufc::function. One option is that
UserFunction inherits directly from ufc::function. The assembler calls
interpolate() on each Function as usual to compute the dofs, and for a
UserFunction, this specializes to a set of calls to evaluate_dof(),
which in turn will call ufc::function::evaluate(), which is overloaded
in UserFunction, which calls Function::eval(), which is overloaded by
the user to return the value at the point x where the dof is
located... Sounds reasonable?

/Anders


References