← Back to team overview

dolfin team mailing list archive

Re: Adding factory functions in UFC

 

On Fri, 2011-01-28 at 11:25 +0100, Andre Massing wrote:
> Den 28.01.11 00.30, skrev Anders Logg:
> > On Thu, Jan 27, 2011 at 11:10:08PM +0100, Anders Logg wrote:
> >> I would like to add factory functions in UFC, in particular
> >>
> >>    finite_element* finite_element::create() const;
> >>    dof_map* dof_map::create() const;
> >>
> >> Are there any objections to this? It would be easy to add and easy to
> >> implement in FFC.
> >>
> >> I need it to implement refinement of FunctionSpaces in DOLFIN where
> >> fresh copies of ufc::finite_element and ufc::dof_map are needed given
> >> a ufc::finite_element or ufc::dof_map.
> >>
> >> An alternative is to hack create_sub_foo so that it returns a copy of
> >> the element/dofmap itself if the component argument 'i' is>= the
> >> number of sub elements/dofmaps.
> >
> > I suggest we add this to UFC 1.6 and make a release next week together
> > with DOLFIN 0.9.10, FFC 0.9.5 + other packages that need release. The
> > sooner the better: there will be time to make bug fix releases and
> > things will be tested before 1.0 in March.
> >
> > If there are any other things we want to add to UFC, now's a good
> > time.
> 
> What about the tabulate_tensor function taking arguments for runtime 
> quadrature rules, as we discussed a while ago? ATM I hacked UFC and my 
> generated form files having an additional function
> 
> virtual void tabulate_tensor(double* A,
>                               const double * const * w,
>                               const ufc::cell& c,
> 			     dolfin::uint num_quad_points,
> 			     const double * const * coordinates,
> 			     const double * weights) const
> 
> Such an interface would add a flexible layer for those who wants to have 
> some type of runtime quadrature.
> 
> General opinons about that?

Although this makes life easier for the case that we have to compute
quadrature rule in the run-time, but the current interface can also
handle this problem.  You can derive a class form ufc::foo_integrals and
pass object containing new gauss quadrature rule to its constructor as
we do for partition of unity method. 

Mehdi


> Cheers,
> Andre
> 
> 
> 
> >
> > --
> > Anders
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~dolfin
> > Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~dolfin
> > More help   : https://help.launchpad.net/ListHelp
> 
> 




Follow ups

References