dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #18258
Re: Fwd: [Branch ~dolfin-core/dolfin/main] Rev 4734: Introduce functionality for automated error control and adaptivity.
On Sunday May 9 2010 13:26:04 Garth N. Wells wrote:
> On 09/05/10 21:08, Marie Rognes wrote:
> > Garth N. Wells wrote:
> >> On 09/05/10 20:11, Anders Logg wrote:
> >>> On Sun, May 09, 2010 at 07:50:14PM +0100, Garth N. Wells wrote:
> >>>> On 09/05/10 19:25, Anders Logg wrote:
> >>>>> On Sun, May 09, 2010 at 07:06:04PM +0100, Garth N. Wells wrote:
> >>>>>> On 09/05/10 15:04, Marie Rognes wrote:
> >>>>>>> Garth N. Wells wrote:
> >>>>>>>> Does this work from the C++ interface too?
> >>>>>>>
> >>>>>>> Nope. It is a pure python prototype.
> >>>>>>
> >>>>>> This isn't the design philosophy that we've used in developing
> >>>>>> DOLFIN. We have developed in C++ (and I think still should) and
> >>>>>> generated the Python interface automatically, and implemented Python
> >>>>>> extensions by hand only when necessary. I don't want to see a
> >>>>>> divergence of the interfaces and advocate that Python 'prototypes'
> >>>>>> should not be part of DOLFIN.
> >>>>>>
> >>>>>> Garth
> >>>>>
> >>>>> I think this prototype is too good to be kept as a prototype. We will
> >>>>> move the things that can be moved to C++, but it might not be
> >>>>> possible to move all of it since it relies on automatic
> >>>>> differentiation and auto-generation of the dual problem.
> >>>>
> >>>> Having Python-only parts when required is fine (like we do now), but
> >>>> why not develop the C++ building blocks before committing to
> >>>> dolfin-main?
> >>>
> >>> Simply because we just finished the Python version and thought it
> >>> would be useful to others.
> >>>
> >>>> If the structure is clear and clean, it doesn't take much effort to
> >>>> write the C++ code. By not adding the C++ code now, there is a
> >>>> strong likelihood that it will never be added.
> >>>
> >>> It's not unlikely. There is quite a strong commitment to moving parts
> >>> of it to C++.
> >>>
> >>>> I would prefer that prototypes remain in the sandbox until the C++
> >>>> code is in place.
> >>>>
> >>>> The addition of the Python adaptivity code marks a change in
> >>>> development approach and should be discussed.
> >>>
> >>> I'm not sure the sandbox is a good place (at least not in its current
> >>> form). It's a mixture of stuff that works and stuff that doesn't work,
> >>> things that are broken, test snippets etc.
> >>>
> >>> If we decide to enforce a strong policy that we should not add
> >>> experimental code to DOLFIN,
> >>
> >> The question is not on experimental code - it's preserving the
> >> language-neutral nature of DOLFIN and whether we want to continue this
> >> approach. I would like DOLFIN to remain language-neutral.
> >>
> >>> is there a way that we could organize
> >>> modules like the adaptivity module and make them easily installable?
> >>> I don't think it's a good idea to create things as separate projects,
> >>> if the intention is to merge it into DOLFIN. It would be something
> >>> between dolfin-sandbox and dolfin-main.
> >>
> >> A DOLFIN-app? Once ready, it could be merged into dolfin-main. I would
> >> like to have the adaptivity code in dolfin-main now (with C++ code),
> >> but I'm too much of a cynic to be sold on assurances that C++ code
> >> will be added ;). What's the driver if the code already meets the need
> >> of the developer?
> >
> > I don't think I'll embark on the philosophical issues. However,
> >
> > (1) I take personal responsibility for adding this on the c++ side to
> > the extent this is possible (at least as long as it stays in dolfin-main
> > ;) )h
>
> Great! I look forward to it . . . soon ;).
>
> > (2) I'm envisioning having a hard time at explaning (potential) users
> > that "we can do this really cool thing, that nobody else can do, but we
> > do not want to make it easily accessible because of our language
> > philosophy".
>
> Two points on the argumentation under (2):
>
> (a) Code can always be made available. I've made Python-only code
> publicly available in support of papers, etc (e.g.,
> http://www.dspace.cam.ac.uk/handle/1810/221687)
This is true, but the availability of the features decrease dramatically,
which I think is a very important argument.
> (b) What you describe under point (2) is exactly what Python-only
> features says to users of the DOLFIN C++ interface.
Live with it! ;)
For a long time alot of features were only available for C++ users. For
example everything regardning paralell assemble in DOLFIN. Also when I found
something that were not available for Python, or suboptimal, I had to
implement it my self.
> My point is our development model. The philosophy relates to the
> design/development process which we described in
>
> http://doi.acm.org/10.1145/1731022.1731030
>
> and which I argue has worked pretty well so far. There is no language
> philosophy.
Which still, I would say, is mostly true. I would obviously like the above
mentioned feature to be implemented in C++ too. But having more eyes and most
important users of a features, creates dynamics to the development process, we
would not have if it was not committed to main.
It might also not be the author of a particular feature that implements it for
the other language. Sometimes (read almost everytime) the main author has a
prefered language. Implementing the feature in the other language might be
frustrating and it is likely the results get suboptimal.
Johan
> Garth
>
> > --
> > Marie
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help : https://help.launchpad.net/ListHelp
Follow ups
References