Feature #8

Add support for UFL with DOLFIN-HPC

Added by Johan Jansson about 5 years ago. Updated about 4 years ago.

Status:ClosedStart date:09/19/2012
Priority:NormalDue date:
Assignee:Johan Jansson% Done:

100%

Category:-
Target version:-

Description

The Unified Form Language (UFL) (http://fenicsproject.org/documentation/ufl/1.0.0/ufl.html) is a generalization of the FFC form language adding support for differentiation, adjoint derivation, conditionals, etc. We should aim to add support for UFL in DOLFIN-HPC since it could help simplify the input forms.

History

#1 Updated by Johan Jansson about 5 years ago

  • Assignee set to Johan Jansson

#2 Updated by Niclas Jansson about 5 years ago

Should we replace UFC completely or should we add UFL as an optional package?

Either way, I suggest that we create a UFL branch in the git repo for this work.

#3 Updated by Aurélien Larcher over 4 years ago

I think that Cem's work on FFC 1.0 + UFC 2.x to make code generation compatible addresses this RFE.
My dolfin-hpc branch has already a modified ElementLibrary which uses FFC 1.0 signatures + minor fixes to enable UFC 2.x compatibility as I am now using Cem's python modules only.

Is there something else to do ?

#4 Updated by Niclas Jansson over 4 years ago

Aurélien Larcher wrote:

I think that Cem's work on FFC 1.0 + UFC 2.x to make code generation compatible addresses this RFE.
My dolfin-hpc branch has already a modified ElementLibrary which uses FFC 1.0 signatures + minor fixes to enable UFC 2.x compatibility as I am now using Cem's python modules only.

Is there something else to do ?

We must assure that everything is backward compatible. But as we have discussed, that's probably a minor issue, more a question of using #ifdefs in vertain places of the code.

#5 Updated by Johan Jansson over 4 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 90

The feature has been implemented by Cem and is working, and is available in Auréliens branch:

http://dryad.csc.kth.se/projects/dolfin-hpc/repository?utf8=%E2%9C%93&rev=larcher

Some minor testing and compatibility work remains (see Niclas' recent comment).

#6 Updated by Niclas Jansson over 4 years ago

Johan Jansson wrote:

The feature has been implemented by Cem and is working, and is available in Auréliens branch:

http://dryad.csc.kth.se/projects/dolfin-hpc/repository?utf8=%E2%9C%93&rev=larcher

Some minor testing and compatibility work remains (see Niclas' recent comment).

Please, don't merge Auréliens branch with the master branch!!!

We have discussed how to merge it without breaking Unicorn and existing code, and will begin as soon as we have time, most likely during June.

So please be patient.

#7 Updated by Johan Jansson over 4 years ago

Ok, I am not pushing for Auréliens branch to be merged. It would be useful to have a branch available that incorporates the UFL updates though, and works with Unicorn. Do you have such a branch available Cem that you could push to dryad? Or someone else?

#8 Updated by Niclas Jansson over 4 years ago

Johan Jansson wrote:

Ok, I am not pushing for Auréliens branch to be merged. It would be useful to have a branch available that incorporates the UFL updates though, and works with Unicorn. Do you have such a branch available Cem that you could push to dryad? Or someone else?

No, your definitely right. It should be merged asap. I only wanted to point out that the branch can't be merge 'as is' without massive badness.

#9 Updated by Niclas Jansson over 4 years ago

Niclas Jansson wrote:

Johan Jansson wrote:

Ok, I am not pushing for Auréliens branch to be merged. It would be useful to have a branch available that incorporates the UFL updates though, and works with Unicorn. Do you have such a branch available Cem that you could push to dryad? Or someone else?

No, your definitely right. It should be merged asap. I only wanted to point out that the branch can't be merge 'as is' without massive badness.

I've created a new branch 'UFL' based on Auréliens work (Cherry-picks + fixed merge issues). It seems to be working fine with UFC 2.1.1. However backward compatibility is lost, it's mostly due to issues in the element library.

I really would like to avoid a std::FEniCS solution and force everyone to move to UFL. Therefore, I don't want to merge the branch with 'master' before we can assure backwards compatibility.

#10 Updated by Niclas Jansson about 4 years ago

Niclas Jansson wrote:

Niclas Jansson wrote:

Johan Jansson wrote:

Ok, I am not pushing for Auréliens branch to be merged. It would be useful to have a branch available that incorporates the UFL updates though, and works with Unicorn. Do you have such a branch available Cem that you could push to dryad? Or someone else?

No, your definitely right. It should be merged asap. I only wanted to point out that the branch can't be merge 'as is' without massive badness.

I've created a new branch 'UFL' based on Auréliens work (Cherry-picks + fixed merge issues). It seems to be working fine with UFC 2.1.1. However backward compatibility is lost, it's mostly due to issues in the element library.

I really would like to avoid a std::FEniCS solution and force everyone to move to UFL. Therefore, I don't want to merge the branch with 'master' before we can assure backwards compatibility.

I think my last commit (4 month ago) resolved the backward compatibility issue. I have tested the entire suite with unicorn on my workstation, and it seems to be working fine.

I'll merge everything into the main branch, without a fast-forward such that we have an easy point to revert to.

#11 Updated by Niclas Jansson about 4 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 90 to 100

Applied in changeset dolfin-hpc|commit:91f20b556cddba9e653d8335cae3a6f796b4613b.

Also available in: Atom PDF