On Thu, Oct 23, 2008 at 04:46:28PM +0100, Garth N. Wells wrote: > > > Anders Logg wrote: > > On Thu, Oct 23, 2008 at 04:29:16PM +0100, Garth N. Wells wrote: > >> > >> 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 > > > > What about dolfin::Array vs std::vector? > > > > OK with me. Can't remember any more if there was a reason for using > std::vector instead of Array.
The initial reason was to avoid confusion with dolfin::Vector, but we always use the std:: prefix anyway so there is little chance for confusion. And we've started to use quite a bit of std:: stuff anyway and we don't want to start wrapping dolfin::Map, dolfin::SharePointer etc... :-) Let's try to avoid it and then remove it at some point. > Does PyDOLFIN wrap the member functions of Array which are inherited > from std:vector? I don't know, but there are some standard wrappers for std stuff that we can rely on. -- Anders > Garth > > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > DOLFIN-dev mailing list > > [email protected] > > http://www.fenics.org/mailman/listinfo/dolfin-dev > > > _______________________________________________ > DOLFIN-dev mailing list > [email protected] > http://www.fenics.org/mailman/listinfo/dolfin-dev
signature.asc
Description: Digital signature
_______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
