Subject: [FEniCS-dev] New FEniCS project on G2 solver

From: "Johan Hoffman" <[email-masked]>
Date: Tue, 24 Apr 2007 16:01:28 +0200 (MEST)

Hi all!

We are now in the process of launching a new FEniCS project, focused on
developing a simple and general solver for advanced applications, by
identifying and implementing common abstractions. The new project will be
based on our adaptive General Galerkin (G2) methodology, which we have
developed for incompressible/compressible laminar/turbulent flow, and
which we also recently at KTH have extended to fluid-structure interaction
(FSI). Thus our initial focus is on developing a general solver for
computational continuum mechanics, for which we have a prototype
available. Later on we expect to also add electromagnetics, chemistry and
physics.

So far this development has taken place within Dolfin, but it has shown
that solver development inside Dolfin has not been optimal, and recently
we in the Dolfin core team decided to move the solver modules outside
Dolfin. Dolfin is still the PSE of FEniCS suitable for developing your own
solver, whereas this new project is written on top of Dolfin, and is
focused on developing a general solver for certain application areas, to
start with continuum mechanics (FSI). Since both me and Johan Jansson are
main developers of Dolfin, we expect the coupling of the 2 projects to
work fine, and we expect Dolfin development to benefit from the new
project by involving many new developers working both on Dolfin and the
new project. When algorithms are more suitable to implement in Dolfin than
in the new project, we will do so. Ideally there will be few lines of code
in the new project, taking advantage of the many general PDE tools
available in Dolfin-FFC-FIAT.

The new project is not a loose collection of solvers. On the other hand,
our new project will focus on developing a general solver based on the
physics of a certain area, to start with continuum mechanics. Basic
ingredients of the methodology are the G2 method, adaptivity and a
posteriori error estimation based on duality, and ALE-methods.

So far there has been a lot of focus on the basics of CMM, such as
assembling forms etc. And as much as I think the bottom-up approach is
important to realize the FEniCS vision, I also think it is important to
balance this with a top-down project of this type.

The project will be maintained by myself and Johan Jansson, and the rest
of our group at KTH, but we hope to attract many other developers also
outside KTH. Version 0.1 can be expected to more or less consist of
dolfin-fsi minus dolfin-dev, together with some Ko.

I hope and believe that this new project will generate a lot of interest.

A tentative title of this new project is: "FEniCS General Galerkin solver"

Any input is appreciated!

/Johan

---

From: Anders Logg <[email-masked]>
Date: Wed, 25 Apr 2007 10:45:49 +0200

I don't mind cG(1), but this sounds like dolfin-modules with a
restriction (only cG(1) + stabilization allowed). Why not have a
repository dolfin-modules that may include also other modules?

If not, then where should we put those modules? As a separate project
(dolfin-modules-but-not-cg1-with-stabilization) or should we have
a separate project for each module?

/Anders

On Tue, Apr 24, 2007 at 04:01:28PM +0200, Johan Hoffman wrote:
> _______________________________________________
> FEniCS-dev mailing list
> [email-masked]
> http://www.fenics.org/mailman/listinfo/fenics-dev

---

From: "Johan Hoffman" <[email-masked]>
Date: Wed, 25 Apr 2007 11:03:30 +0200 (MEST)

> repository dolfin-modules that may include also other modules?

Think of it more as the automation of modelling in the FEniCS visison. The
basis being a simple and general method (such as cG(1) with adaptivity).
The generality here is with respect to possible applications, not to the
number of numerical methods covered.

> a separate project for each module?

Since it does not seem that anyone is interested in maintaining a general
collection of solvers, I think the best way is to do as we discussed on
the dolfin-dev list to have a dolfin-modules web-page under Dolfin with
links to modules by individual developers or homepages of groups that
publish Dolfin modules. This is important for visibility of Dolfin I
think.

/Johan

---

From: Anders Logg <[email-masked]>
Date: Wed, 25 Apr 2007 11:11:44 +0200

On Wed, Apr 25, 2007 at 11:03:30AM +0200, Johan Hoffman wrote:
> collection of solvers,

I was hoping one of you would be willing to maintain the modules, not
just your own module.

> I think the best way is to do as we discussed on the dolfin-dev list
> to have a dolfin-modules web-page under Dolfin with links to modules
> by individual developers or homepages of groups that publish Dolfin
> modules. This is important for visibility of Dolfin I think.
> 
> /Johan

Will your module then be one of those modules or will it be something
different?

/Anders

---

From: "Johan Hoffman" <[email-masked]>
Date: Wed, 25 Apr 2007 11:19:08 +0200 (MEST)

> I was hoping one of you would be willing to maintain the modules, not

Apart from our modules there are mainly a few simple modules for Poisson
and Heat equation, that rather should be demos in Dolfin, together with
Garths plasticity solver. And I have not got any indication that
publication of many more modules is under way.

Also, I think we were of the opinion that such dolfin_modules should be
rather clean, which will not be the case of these modules where still a
lot of work is going on.

> Will your module then be one of those modules or will it be something

Of course, it will be one of these modules. So from the Dolfin point of
view this will be just another set of solvers, but it will also be a
project towards automation of modelling, with feedback into Dolfin of
general functionality.

If successful I expect it to boost interest for Dolfin. A variant to make
the connection more clear is to use the name "Dolfin Genereal Galerkin
solver", but I think "FEniCS" may be better since automation of modelling
is a general goal.

/Johan

---

From: Anders Logg <[email-masked]>
Date: Wed, 25 Apr 2007 12:13:16 +0200

> solver", but I think "FEniCS" may be better since automation of modelling

Yes, boosting interest is good, but why can't the two be combined? I
would prefer a single project dolfin-modules containing a collection
of DOLFIN solvers, including your solvers and others.

/Anders

---

From: "Johan Hoffman" <[email-masked]>
Date: Wed, 25 Apr 2007 20:27:40 +0200 (MEST)

>> >>
>> >> Think of it more as the automation of modelling in the FEniCS
>> visison.
>> >> The
just your own module.
different?
>> the connection more clear is to use the name "Dolfin Genereal Galerkin
solver", but I think "FEniCS" may be better since automation of
modelling
> Yes, boosting interest is good, but why can't the two be combined? I
would prefer a single project dolfin-modules containing a collection of
DOLFIN solvers, including your solvers and others.
> /Anders

I do not understand. What other solvers are you referring to? The solvers
I talk about to constitute our new project is the Navier-Stokes/Euler
solvers (compressible + incompressible, the ALE-FSI solver, and the
elasticity solver. In the list at
www.fenics.org/wiki/DOLFIN_solver_modules, I can only see Stokes, Poisson,
heat eqn. and convection-diffusion, apart from these. Are these the
solvers you refer to? I consider these solvers rather being simple demos,
to either stay in the Dolfin-kernel for demo/test, or to be dropped, not
being part of a solver project for advanced applications.

If the motive of such a dolfin-module project would only be a showcase of
a collection of Dolfin solvers, I think we might as well host a webpage at
the wiki with links to download the solvers from developers together with
info on what version of Dolfin it works for, and couple this to the
gallery. This would serve the purpose and would minimize maintainment
work. And here our new project would also be present for showcasing
Dolfin.

The project I suggest is not just a showcase of Dolfin solvers, it is
aimed at developing solvers for automating/generalizing modelling for
advanced applications in different areas. For starters, our NS-solver for
turbulent flow would fit here as an automated turbulence solver, using one
simple method (G2 including adaptivity) for "all" turbulent flows
(contrary to common practise of using specific turbulence models for
different flows). We are now working on generalizing this solver to
compressible flow and fluid-structure interaction. Thus there would then
be one solver for turbulent fluid-structure interaction, which would
correspond to automated modeling of FSI.

So far we have no FEniCS project on advanced solvers or automation of
modeling, so this project would fill that gap, and would not interfere
with any other FEniCS project as far as I can see.

If the name is disturbing, signaling exclusivity, we can use another name,
not containing FEniCS or Dolfin. If then someone else want to publish an
advanced solver project at FEniCS that is of course also very welcome. So
far I have heard nothing about such a project.

/Johan

---

From: Anders Logg <[email-masked]>
Date: Wed, 25 Apr 2007 22:28:05 +0200

On Wed, Apr 25, 2007 at 08:27:40PM +0200, Johan Hoffman wrote:

> I do not understand. What other solvers are you referring to?

True, but why must the set of solvers be limited to NSE with cG(1)?

Examples of other solvers that would be nice to see in a
dolfin-modules collection would be the plasticity solver and the
other modules we just removed along with the NSE solver. Indeed some
of these were very simple, but they don't need to be. The goal has
always been that the modules would offer more than the demos. Just
having an adaptive and very efficient Poisson solver in such a
collection of modules would be very useful.

> far I have heard nothing about such a project.

I don't mind the name, I just think here is a chance to take the
DOLFIN modules and make something very good and useful of them, which
would be to offer a collection of very efficient, adaptive and
polished solvers for a range of equations.

/Anders

---

From: "Johan Hoffman" <[email-masked]>
Date: Thu, 26 Apr 2007 10:32:38 +0200 (MEST)

> True, but why must the set of solvers be limited to NSE with cG(1)?

It is not, initially it would include incompressible/compressible flow,
fluid-structure interaction, including visco-elasto-plastic material and
contact. I am not talking about cG(1), I am talking about G2 which refers
to Galerkins method together with L2-control of part of the residual (that
is, it includes about all FEM, FDM, FVM methods) together with a
posteriori error adaptivity. Which is not that restricted.

> collection of modules would be very useful.

They are included, see above.

> polished solvers for a range of equations.

We have indeed the goal to make this good and useful, and adaptive. And
sooner or later it will be polished as well.

I do not see any argument against what we are proposing.

We could of course publish our solver somewhere else, but that would make
little sense. I expect this project to be of much benefit for FEniCS, and
by publishing our development at www.fenics.org we invite to a
collaborative effort.

/Johan

---

From: Anders Logg <[email-masked]>
Date: Thu, 26 Apr 2007 10:41:50 +0200

> They are included, see above.

Is the DOLFIN plasticity solver (that Garth and Kristian wrote)
included? And Poisson?

> by publishing our development at www.fenics.org we invite to a

I just suggest that you do exactly what you intend + a little more,
which would be to maintain the entire collection of DOLFIN solvers,
not just your own modules.

/Anders

---

From: "Johan Hoffman" <[email-masked]>
Date: Thu, 26 Apr 2007 15:34:23 +0200 (MEST)

>> of
>> >> If the motive of such a dolfin-module project would only be a
>> showcase
>> >> of
>> >> a collection of Dolfin solvers, I think we might as well host a
>> webpage
>> >> at
>> >> turbulent flow would fit here as an automated turbulence solver,
>> using
>> >> one
>> >> advanced solver project at FEniCS that is of course also very
>> welcome.
>> >> So

This is not in line with the project we propose, since we are aiming for
as few solvers as possible, ideally just one, applicable to as many
applications as possible. Whereas the dolfin_module project you propose
rather aims for many solvers for a set of chosen PDEs.

We push for our project because this is in line with what we want to
achieve, and as much as I would have liked consensus I do not see any
strong reason not to launch such a project based on the discussion here,
or the parallel discussions off the fenics-dev list. Therefore we will
launch our project as soon as we are ready. About the name, it appears
that it may be best to go with a neutral name, not referring to FEniCS or
Dolfin, to open for similar efforts that are very welcome. Let us remember
that the existing Ko project is of this nature, and the present project
may be seen as an extension of that one. One main reason for publishing
the project at www.fenics.org is to open for a collaborative effort, so
naturally everyone interested is welcome to join.

As for the dolfin_modules, I think we should go with what Garth suggested
on the dolfin-dev list: set up a DOLFIN_MODULES wikipage with links to
dolfin modules that are actively devloped and maintained (including the
new project). But this discussion rather belongs to the dolfin-dev list I
guess.

/Johan