On Sun, Nov 10, 2013 at 6:22 PM, Barry Smith <[email protected]> wrote:
> > On Nov 10, 2013, at 6:15 PM, Jed Brown <[email protected]> wrote: > > > Barry Smith <[email protected]> writes: > > > >> PetscInitializeBegin() > >> PetscSetX() > >> PetscSetY() > >> …. > >> PetscInitializeEnd() > >> > >> where PetscInitialize() does the default of all of these things? > > > > I'm not sure you need a special PetscInitializeEnd(), just > > PetscInitializeMinimal() and then pass arguments to the > > optional/customizable initialization steps. > > What about any possibly customizable steps that the user choose not to > set? When would they happen? I was thinking in the InitializeEnd(). I > really don’t like the InitializeAsNeeded much later business since some > initializations may be collective. > > We don’t have to save all the intermediate initialization info till the > end. Each Set could trigger some initialization and the end only handles > the left over. This all seems like a terribly convoluted and fragile solution to this problem. If we stack this up against some extra configure work to get the lock call right, I think that is a clear win. Matt > > Barry > > > > It's easier to understand > > an error that is returned from the function that caused it then to store > > the arguments until one big function at the end, unless there are > > terribly confusing ordering problems. > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
