dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #10335
Re: Assembler interface
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.
--
Martin
Follow ups
References