On Tue, Feb 28, 2012 at 2:21 PM, Jed Brown <jedbrown@mcs.anl.gov> wrote:
On Tue, Feb 28, 2012 at 14:16, Dmitry Karpeev <karpeev@mcs.anl.gov> wrote:
Okay.  I would still refrain from calling these things by the class of the object consuming them.  DMFormFunction() and DMFormIFunction() seem fine, since these have a meaning independent of TS (although the DM has to then encode a transient problem).

The IFunction is a particular way of representing a (part of) a transient problem. Its arguments include the time and the time derivative. We have to make that clear somehow and I think naming it after TS is helpful. Otherwise I'll eventually just have a bunch of names (function, residual, rhsfunction, objective, gradient, jacobian, ijacobian, hessian) and not know which ones go together.

That's why encapsulating the related functions and their linearizations, one (R,J) pair per DM, is helpful.

Dmitry.
 
 
 But I don't like DMGetSNESFunction() any more than I like DMGetKSPJacobian() and DMGetPCJacobian().  

By the way, should we start using Residual instead of Function? 

Yes.