← Back to team overview

dolfin team mailing list archive

Assembler clean up

 

I'm about to start cleaning up the assemblers, and fixing some bugs
will necessitate some interface changes. For example we have:

  /// Assemble tensor
  void assemble(GenericTensor& A,
                const Form& a,
                bool reset_sparsity=true,
                bool add_values=false,
                bool finalize_tensor=true,
                bool keep_diagonal=false);

  /// Assemble tensor on sub domains
  void assemble(GenericTensor& A,
                const Form& a,
                const MeshFunction<std::size_t>* cell_domains,
                const MeshFunction<std::size_t>* exterior_facet_domains,
                const MeshFunction<std::size_t>* interior_facet_domains,
                bool reset_sparsity=true,
                bool add_values=false,
                bool finalize_tensor=true,
                bool keep_diagonal=false);

but calling

  assemble(A, a, 0, 0, 0);

is to me ambiguous in terms which function will be called. I think the
best solution, which we've discussed, it to always attach the domain
data to forms.

Garth


Follow ups