Subject: [Ffc] Redesign

From: Anders Logg <[email-masked]>
Date: Wed, 16 Dec 2009 18:37:14 +0100

Marie and I have had some discussions on the redesign and FFC and
here's what came out:

  https://blueprints.launchpad.net/ffc/+spec/ffc-redesign

This allows us to remove both FiniteElement and DofMap since we won't
be needing any of those in the code generation stage.

Also note that we were quite on track when we coined the term "form
representation". Turns out the correct name for this kind of process
in a compiler is Intermediate Representation or IR.

The input to the computation of the IR should be the preprocessed form
and form metadata (FormData) and the output should be the IR which is
just a dictionary of stuff we need to generating code. Everything
complex should happen during the generation of the IR which means
will help reduce the complications of the later code generation.

--
Anders

---

From: "Garth N. Wells" <[email-masked]>
Date: Wed, 16 Dec 2009 18:54:54 +0000

> be needing any of those in the code generation stage.

And where does the transition to the new FIAT fit in?

Garth

> ------------------------------------------------------------------------
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~ffc
> Post to     : [email-masked]
> Unsubscribe : https://launchpad.net/~ffc
> More help   : https://help.launchpad.net/ListHelp

---

From: Anders Logg <[email-masked]>
Date: Wed, 16 Dec 2009 20:11:13 +0100

> And where does the transition to the new FIAT fit in?

It's quite orthogonal to that. We just need to make sure that we use
the new FIAT interface in stage 2.

Note that with this new design (which is really just a stricter
and cleaner version of what I originally intended) FIAT will only be
called in stage 2 which will make things easier.

I will start on changing things from the top and down, starting with
cleanups in compiler.py and then we can go from there.

--
Anders

---

From: "Garth N. Wells" <[email-masked]>
Date: Wed, 16 Dec 2009 19:16:08 +0000

> cleanups in compiler.py and then we can go from there.

I am completely confused by the strategy. We discussed moving the work
on the FIAT transition to lp:~ffc-core/ffc/dev, but now FiniteElement
has been removed and the message says that everything is broken. We to
have several things going on at once, none of which are working. Would
it be more sensible to make one thing at a time work? There seems to be
no clear plan.

Garth

---

From: Anders Logg <[email-masked]>
Date: Wed, 16 Dec 2009 20:23:10 +0100

> it be more sensible to make one thing at a time work? There seems to be

The redesign is difficult to do one step at a time. I would have liked
to do it in careful steps but I don't see how.

Here's a more detailed plan:

1. I rework compile.py tonight.

2. We make the compiler stages work again, one at a time.

As part of step 2, we make sure that we

a) Use the new FIAT interface

b) Use the code Kristian has been working on for evaluate_basis

--
Anders

---

From: "Garth N. Wells" <[email-masked]>
Date: Wed, 16 Dec 2009 19:30:01 +0000

> 1. I rework compile.py tonight.

If the changes are so close, why is the target for the Blueprint release
0.9 (we're at 0.7.1 now)?

> b) Use the code Kristian has been working on for evaluate_basis

Kristian: what's the prognosis on this?

Garth

---

From: Anders Logg <[email-masked]>
Date: Wed, 16 Dec 2009 20:33:32 +0100

> 0.9 (we're at 0.7.1 now)?

I thought we bump the version number since it's such a major change.
We moved to 0.7 when we moved to UFL and I figured we could perhaps
jump to 0.9 when this is done, to indicate that we're just as close to
1.0 as DOLFIN.

So hopefully we can release 0.9 in the very near future. It will take
a major effort but I think we can get it done quickly.

--
Anders

---

From: Kristian Oelgaard <[email-masked]>
Date: Wed, 16 Dec 2009 20:37:35 +0100 (CET)

2009/12/16 Anders Logg &lt;[email-masked]&gt;
On Wed, Dec 16, 2009 at 07:16:08PM +0000, Garth N. Wells wrote:
&gt;
&gt;
&gt; Anders Logg wrote:
&gt; &gt; On Wed, Dec 16, 2009 at 06:54:54PM +0000, Garth N. Wells wrote:
&gt; &gt;&gt;
&gt; &gt;&gt; Anders Logg wrote:
&gt; &gt;&gt;&gt; Marie and I have had some discussions on the redesign and FFC and
&gt; &gt;&gt;&gt; here's what came out:
&gt; &gt;&gt;&gt;
&gt; &gt;&gt;&gt; &nbsp; https://blueprints.launchpad.net/ffc/+spec/ffc-redesign

The end result looks very nice. I think it makes sense.

&nbsp;&gt; &gt;&gt;&gt;
&gt; &gt;&gt;&gt; This allows us to remove both FiniteElement and DofMap since we won't
&gt; &gt;&gt;&gt; be needing any of those in the code generation stage.
&gt; &gt;&gt;&gt;
&gt; &gt;&gt; And where does the transition to the new FIAT fit in?
&gt; &gt;
&gt; &gt; It's quite orthogonal to that. We just need to make sure that we use
&gt; &gt; the new FIAT interface in stage 2.
&gt; &gt;
&gt; &gt; Note that with this new design (which is really just a stricter
&gt; &gt; and cleaner version of what I originally intended) FIAT will only be
&gt; &gt; called in stage 2 which will make things easier.
&gt; &gt;
&gt; &gt; I will start on changing things from the top and down, starting with
&gt; &gt; cleanups in compiler.py and then we can go from there.
&gt; &gt;
&gt;
&gt; I am completely confused by the strategy. We discussed moving the work
&gt; on the FIAT transition to lp:~ffc-core/ffc/dev, but now FiniteElement
&gt; has been removed and the message says that everything is broken. We to
&gt; have several things going on at once, none of which are working. Would
&gt; it be more sensible to make one thing at a time work? There seems to be
&gt; no clear plan.

As soon as stage 1 is complete we can work on both representations in parallel?
&nbsp;
As part of step 2, we make sure that we

OK.

Kristian
&nbsp;
--
Anders

_______________________________________________
Mailing list: https://launchpad.net/~ffc
Post to &nbsp; &nbsp; : [email-masked]
Unsubscribe : https://launchpad.net/~ffc
More help &nbsp; : https://help.launchpad.net/ListHelp

---

From: Kristian Oelgaard <[email-masked]>
Date: Wed, 16 Dec 2009 20:41:59 +0100 (CET)

2009/12/16 Garth N. Wells &lt;[email-masked]&gt;

Anders Logg wrote:
&gt; On Wed, Dec 16, 2009 at 07:16:08PM +0000, Garth N. Wells wrote:
&gt;&gt;
&gt;&gt; Anders Logg wrote:
&gt;&gt;&gt; On Wed, Dec 16, 2009 at 06:54:54PM +0000, Garth N. Wells wrote:
&gt;&gt;&gt;&gt; Anders Logg wrote:
&gt;&gt;&gt;&gt;&gt; Marie and I have had some discussions on the redesign and FFC and
&gt;&gt;&gt;&gt;&gt; here's what came out:
&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&gt; &nbsp; https://blueprints.launchpad.net/ffc/+spec/ffc-redesign
&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&gt; This allows us to remove both FiniteElement and DofMap since we won't
&gt;&gt;&gt;&gt;&gt; be needing any of those in the code generation stage.
&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt; And where does the transition to the new FIAT fit in?
&gt;&gt;&gt; It's quite orthogonal to that. We just need to make sure that we use
&gt;&gt;&gt; the new FIAT interface in stage 2.
&gt;&gt;&gt;
&gt;&gt;&gt; Note that with this new design (which is really just a stricter
&gt;&gt;&gt; and cleaner version of what I originally intended) FIAT will only be
&gt;&gt;&gt; called in stage 2 which will make things easier.
&gt;&gt;&gt;
&gt;&gt;&gt; I will start on changing things from the top and down, starting with
&gt;&gt;&gt; cleanups in compiler.py and then we can go from there.
&gt;&gt;&gt;
&gt;&gt; I am completely confused by the strategy. We discussed moving the work
&gt;&gt; on the FIAT transition to lp:~ffc-core/ffc/dev, but now FiniteElement
&gt;&gt; has been removed and the message says that everything is broken. We to
&gt;&gt; have several things going on at once, none of which are working. Would
&gt;&gt; it be more sensible to make one thing at a time work? There seems to be
&gt;&gt; no clear plan.
&gt;
&gt; The redesign is difficult to do one step at a time. I would have liked
&gt; to do it in careful steps but I don't see how.
&gt;
&gt; Here's a more detailed plan:
&gt;
&gt; 1. I rework compile.py tonight.
&gt;

&gt; 2. We make the compiler stages work again, one at a time.
&gt;
&gt; As part of step 2, we make sure that we
&gt;
&gt; a) Use the new FIAT interface
&gt;
&gt; b) Use the code Kristian has been working on for evaluate_basis
&gt;

Hopefully I'll finish evaluate_basis tomorrow.

Kristian

&nbsp;Garth

&gt; --
&gt; Anders

---

From: Anders Logg <[email-masked]>
Date: Wed, 16 Dec 2009 20:54:23 +0100

On Wed, Dec 16, 2009 at 08:37:35PM +0100, Kristian Oelgaard wrote:
>
>
> 2009/12/16 Anders Logg <[email-masked]>
>

Yes!

It's basically independent but we should decide on a common convention
for the naming/nesting of the dictionary keys, like how to store the
data for the list of elements associated with a form etc.

--
Anders

>     -----BEGIN PGP SIGNATURE-----
>     Version: GnuPG v1.4.9 (GNU/Linux)
>
>     iEYEARECAAYFAkspM54ACgkQTuwUCDsYZdHzbwCdFvFPPYvxTRObm8sfqpJ01HHF
>     9GUAoJA1N+eT3SRg249C2+FwNng8MQNW
>     =jgbw
>     -----END PGP SIGNATURE-----
>