← Back to team overview

dolfin team mailing list archive

Re: Python Form

 

On 07/01/11 07:50, Johan Hake wrote:
On Thursday June 30 2011 16:55:46 Marie E. Rognes wrote:
On 07/01/11 01:05, Johan Hake wrote:
On Jun 30, 2011, at 12:41, "Marie E. Rognes"<meg@xxxxxxxxx>   wrote:
On 06/05/11 21:47, Marie E. Rognes wrote:
On 06/01/2011 05:45 PM, Johan Hake wrote:
On Wednesday June 1 2011 05:31:35 Anders Logg wrote:
On Wed, Jun 01, 2011 at 01:29:20PM +0200, Marie E. Rognes wrote:
I'm for some strange reason loooking at dolfin.fem.Form and

dolfin.fem.assemble:
      The form can be either an FFC form or a precompiled UFC form.
      If a precompiled or 'pure' FFC form is given, then
      coefficients and function_spaces have to be provided too. The
      coefficient functions

Where and in what cases is the above used?
I think this is something Martin and possibly Kent have requested
before. It's not used anywhere I know.
They were added so one could use dolfin to assemble a "pure"
ufc::form. This is a nice feature for people who come with their own
form compiler, which is not fully integrated with all the PyDOLFIN
magic we have.

The statement:
    "dolfin can assemble any ufc complaint code"

becomes a little more true with that possibility.
Ok, thanks :-)
Late follow-up: so is the logic in dolfin.fem.form regarding given
function_spaces and coefficients versus those in form_data mainly
designed around this?
Not sure I understand your question...
Sorry, I was unacceptably unclear.

What I meant to ask was this: if assemble did not handle both a "FFC
form" and a "precompiled form"(*), but rather just a "FFC form" would it
be sufficient to have a dolfin.fem.Form class that only had  form,
form_compiler_parameters and common_cell as input to __init__?

(*) Side note: I'm using the terminology of the docstring of
dolfin.fem.assembling here, but I find it a bit confusing, because it
refers to a "precompiled or pure FFC form" as the same thing -- should
it be "precompiled or pure UFC form"?
Yes, I guess you are right. But that is just wrong anyway. A dolfin.Form can
be created from a pure ufc form if it is provided with FunctionSpace and
Coefficient. One cannot just pass a pure ufc form to assemble.

The docstrings need to be updated, and we probably need a unit test for this
too. In the meantime I think we can remove using pure ufc forms and ad it back
if someone needs it ;)

Recently we have stripped dolfin of nice but unused functionality, and this
would be in line with that I guess.

It makes sense to have the dual functionality, but I think the Form class would benefit from an update. Something for the summer.

--
Marie


Follow ups

References