[Ffc] Redesign

2009-12-16 Thread Anders Logg
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


signature.asc
Description: Digital signature
___
Mailing list: https://launchpad.net/~ffc
Post to : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp


Re: [Ffc] Redesign

2009-12-16 Thread Garth N. Wells


Anders Logg wrote:
> 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.
>

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

Garth

> 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
> 
> 
> 
> 
> ___
> Mailing list: https://launchpad.net/~ffc
> Post to : ffc@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~ffc
> More help   : https://help.launchpad.net/ListHelp



___
Mailing list: https://launchpad.net/~ffc
Post to : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp


Re: [Ffc] Redesign

2009-12-16 Thread Anders Logg
On Wed, Dec 16, 2009 at 06:54:54PM +, Garth N. Wells wrote:
>
>
> Anders Logg wrote:
> > 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.
> >
>
> 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


> Garth
>
> > 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.
> >
>
>


signature.asc
Description: Digital signature
___
Mailing list: https://launchpad.net/~ffc
Post to : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp


Re: [Ffc] Redesign

2009-12-16 Thread Garth N. Wells


Anders Logg wrote:
> On Wed, Dec 16, 2009 at 06:54:54PM +, Garth N. Wells wrote:
>>
>> Anders Logg wrote:
>>> 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.
>>>
>> 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.
>

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


> --
> Anders
> 
> 
>> Garth
>>
>>> 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.
>>>
>>



___
Mailing list: https://launchpad.net/~ffc
Post to : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp


Re: [Ffc] Redesign

2009-12-16 Thread Anders Logg
On Wed, Dec 16, 2009 at 07:16:08PM +, Garth N. Wells wrote:
>
>
> Anders Logg wrote:
> > On Wed, Dec 16, 2009 at 06:54:54PM +, Garth N. Wells wrote:
> >>
> >> Anders Logg wrote:
> >>> 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.
> >>>
> >> 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.
> >
>
> 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.

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


signature.asc
Description: Digital signature
___
Mailing list: https://launchpad.net/~ffc
Post to : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp


Re: [Ffc] Redesign

2009-12-16 Thread Garth N. Wells


Anders Logg wrote:
> On Wed, Dec 16, 2009 at 07:16:08PM +, Garth N. Wells wrote:
>>
>> Anders Logg wrote:
>>> On Wed, Dec 16, 2009 at 06:54:54PM +, Garth N. Wells wrote:
 Anders Logg wrote:
> 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.
>
 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.
>>>
>> 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.
> 
> 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.
> 

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

> 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
>

Kristian: what's the prognosis on this?

Garth

> --
> Anders



___
Mailing list: https://launchpad.net/~ffc
Post to : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp


Re: [Ffc] Redesign

2009-12-16 Thread Anders Logg
On Wed, Dec 16, 2009 at 07:30:01PM +, Garth N. Wells wrote:
>
>
> Anders Logg wrote:
> > On Wed, Dec 16, 2009 at 07:16:08PM +, Garth N. Wells wrote:
> >>
> >> Anders Logg wrote:
> >>> On Wed, Dec 16, 2009 at 06:54:54PM +, Garth N. Wells wrote:
>  Anders Logg wrote:
> > 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.
> >
>  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.
> >>>
> >> 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.
> >
> > 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.
> >
>
> If the changes are so close, why is the target for the Blueprint release
> 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


> > 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
> >
>
> Kristian: what's the prognosis on this?
>
> Garth
>
>
>


signature.asc
Description: Digital signature
___
Mailing list: https://launchpad.net/~ffc
Post to : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp


Re: [Ffc] Redesign

2009-12-16 Thread Kristian Oelgaard



2009/12/16 Anders Logg 
On Wed, Dec 16, 2009 at 07:16:08PM +, Garth N. Wells wrote:
>
>
> Anders Logg wrote:
> > On Wed, Dec 16, 2009 at 06:54:54PM +, Garth N. Wells wrote:
> >>
> >> Anders Logg wrote:
> >>> 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

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

 > >>>
> >>> This allows us to remove both FiniteElement and DofMap since 
we won't
> >>> be needing any of those in the code generation stage.
> >>>
> >> 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.
> >
>
> 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.

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 soon as stage 1 is complete we can work on both representations in parallel?
 
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

OK.

Kristian
 
--
Anders

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkspM54ACgkQTuwUCDsYZdHzbwCdFvFPPYvxTRObm8sfqpJ01HHF
9GUAoJA1N+eT3SRg249C2+FwNng8MQNW
=jgbw
-END PGP SIGNATURE-

___
Mailing list: https://launchpad.net/~ffc
Post to     : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp




signature.asc
Description: OpenPGP digital signature
___
Mailing list: https://launchpad.net/~ffc
Post to : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp


Re: [Ffc] Redesign

2009-12-16 Thread Kristian Oelgaard



2009/12/16 Garth N. Wells 


Anders Logg wrote:
> On Wed, Dec 16, 2009 at 07:16:08PM +, Garth N. Wells wrote:
>>
>> Anders Logg wrote:
>>> On Wed, Dec 16, 2009 at 06:54:54PM +, Garth N. Wells wrote:
 Anders Logg wrote:
> 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.
>
 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.
>>>
>> 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.
>
> 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.
>

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

> 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
>

Kristian: what's the prognosis on this?

Hopefully I'll finish evaluate_basis tomorrow.

Kristian

 Garth

> --
> Anders



___
Mailing list: https://launchpad.net/~ffc
Post to     : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp



signature.asc
Description: OpenPGP digital signature
___
Mailing list: https://launchpad.net/~ffc
Post to : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp


Re: [Ffc] Redesign

2009-12-16 Thread Anders Logg
On Wed, Dec 16, 2009 at 08:37:35PM +0100, Kristian Oelgaard wrote:
>
>
> 2009/12/16 Anders Logg 
>
> On Wed, Dec 16, 2009 at 07:16:08PM +, Garth N. Wells wrote:
> >
> >
> > Anders Logg wrote:
> > > On Wed, Dec 16, 2009 at 06:54:54PM +, Garth N. Wells wrote:
> > >>
> > >> Anders Logg wrote:
> > >>> 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
>
>
> The end result looks very nice. I think it makes sense.
>
>
>
> > >>>
> > >>> This allows us to remove both FiniteElement and DofMap since we 
> won't
> > >>> be needing any of those in the code generation stage.
> > >>>
> > >> 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.
> > >
> >
> > 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.
>
> 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 soon as stage 1 is complete we can work on both representations in 
> parallel?

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


>
>
> 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
>
>
> OK.
>
> Kristian
>
>
>
>
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iEYEARECAAYFAkspM54ACgkQTuwUCDsYZdHzbwCdFvFPPYvxTRObm8sfqpJ01HHF
> 9GUAoJA1N+eT3SRg249C2+FwNng8MQNW
> =jgbw
> -END PGP SIGNATURE-
>
> ___
> Mailing list: https://launchpad.net/~ffc
> Post to : ffc@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~ffc
> More help   : https://help.launchpad.net/ListHelp
>
>
>




signature.asc
Description: Digital signature
___
Mailing list: https://launchpad.net/~ffc
Post to : ffc@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp