dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #10336
Re: Assembler interface
On Thu, Oct 23, 2008 at 05:39:18PM +0200, Martin Sandve Alnæs wrote:
> 2008/10/23 Garth N. Wells <gnw20@xxxxxxxxx>:
> >
> >
> > Anders Logg wrote:
> >> On Thu, Oct 23, 2008 at 05:24:54PM +0200, Anders Logg wrote:
> >>> Now that we have removed DofMapSet, how should the general assembly
> >>> interface look? We have lots of simple assemble() functions and they
> >>> all end up calling the main function which is
> >>>
> >>> void assemble(GenericTensor& A,
> >>> const ufc::form& form,
> >>> const Array<Function*>& coefficients,
> >>> const DofMapSet& dof_map_set,
> >>> const MeshFunction<uint>* cell_domains,
> >>> const MeshFunction<uint>* exterior_facet_domains,
> >>> const MeshFunction<uint>* interior_facet_domains,
> >>> bool reset_tensor = true);
> >>>
> >>> One option would be
> >>>
> >>> void assemble(GenericTensor& A,
> >>> const ufc::form& form,
> >>> const std::vector<std::tr1::shared_ptr<FunctionSpace> > function_spaces,
> >>> const std::vector<std::tr1::shared_ptr<Function> > coefficients,
> >>> const MeshFunction<uint>* cell_domains,
> >>> const MeshFunction<uint>* exterior_facet_domains,
> >>> const MeshFunction<uint>* interior_facet_domains,
> >>> bool reset_tensor = true);
> >>
> >> I meant
> >>
> >> void assemble(GenericTensor& A,
> >> const ufc::form& form,
> >> const std::vector<FunctionSpace&> function_spaces,
> >> const std::vector<Function&> coefficients,
> >> const MeshFunction<uint>* cell_domains,
> >> const MeshFunction<uint>* exterior_facet_domains,
> >> const MeshFunction<uint>* interior_facet_domains,
> >> bool reset_tensor = true);
> >>
> >
> > That look better.
> >
> > Why is
> >
> > const std::vector<FunctionSpace&> function_spaces
> >
> > required in the assembler?
> >
> > Garth
>
> For initialized DofMaps.
>
> Another option is to just require the user to construct dolfin::Form
> objects with ufc::form and dolfin::FunctionSpaces.
That would simplify things. I would prefer that, but it would mean
that the Assembler is not able to operate on ufc:: objects, only their
DOLFIN wrapper, but the Assembler requires wrapping of the
ufc::dof_map anyway.
--
Anders
Attachment:
signature.asc
Description: Digital signature
Follow ups
References