dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #04073
Assembly
Even if FFC does not yet generate code in UFC, it might be time to
start thinking about how to organize the assembly when we
(re-)implement it for the new interface. Here are some issues:
1. Do we want to keep the interface
FEM::assemble(a, A, mesh);
or do we want to change this? Another option would be
Assembler assembler;
assembler.assemble(a, A, mesh);
which could allow for reuse of data. We could also add assemble()
functions in namespace dolfin that create an Assembler object and
calls it which would allow
assemble(a, A, mesh);
2. The UFC specification is the same independent of the rank of the
global tensor, which might help us remove some of the duplicated code.
3. Do we want to keep the abstraction BilinearForm, LinearForm,
Functional? Or could we throw them away and just use Form? I imagine
something like
class Form
{
public:
...
friend FEM;
private:
ufc::form form;
}
Opinions?
We still need to write the UFC documentation, but I can write up some
pseudo-code for assembly based on a UFC form if there is
interest. Most of it will look similar to what we have now, but there
are some differences.
/Anders
Follow ups