Actually, making the regularization parameter independent for each process is much more efficient. Gene Golub had a poster on this at the last SIAM CS&E meeting.
Matt On Nov 1, 2007 9:24 AM, Lisandro Dalcin <dalcinl at gmail.com> wrote: > On 10/31/07, Barry Smith <bsmith at mcs.anl.gov> wrote: > > Lisandro, > > A followup to our previous discussion. It sounds to me like you > > are "actually" solving an n+1 unknown nonlinear problem where the > > "special" unknown is kept secret from SNES and managed somehow by the > > application code? > > That's exactly the case. Furthermore, this 'special' unknown in just a > regularization parameter who tends to zero as the nonlinear solution > is reached. Unfortunatelly, this unknow is coupled with all other > degree of freedom, thus generating a full dense row and a dense column > in the Jacobian matrix. But fortunatelly, the special unknown is just > a single scalar, thus computing the schur complement is feasible, but > requires two linear solves with the other 'sparse' block of the > Jacobian. > > > You can guess how I feel about this :-). > > Yes, of course. I agree that PETSc API must be consistent and clean. > But I also feel that some time I need more features. Please remember I > use PETSc exclusively from Python. And then is so easy to manage > complicated application setups. But at some point I need more > low-level support from PETSc to make it working. > > For example, I would love to have SNESSetPresolve/SNESSetPostSolve and > SNESSetPreStep/SNESSetPostStep, and perhaps a > SNESSetPreLinearSolve/SNESSetPostLinearSolve. Of course, this make the > API grow with features that are not frecuently needed. > > > PETSc/SNES is suppose > > to be good enough to allow you to feed it the ENTIRE nonlinear problem > > in a way that would allow as efficient solution as if you "handled the > > special unknown" specially. > > Even for my particular case? Can I pass-over the issue with the full > denses rows and columns? > > > In particular for this problem the intended > > solution is to use the PETSc DMComposite object via DMCompositeCreate() > > You may want to look at this construct to see if it is suitable > > for your friends needs. And what we need to add (note that though > > DMComposite > > can be used with DMMG it does not have to be, it can be used directly > > with a SNES also. > > I'll definitely take a loop ASAP. > > Regards, > > -- > Lisandro Dalc?n > --------------- > Centro Internacional de M?todos Computacionales en Ingenier?a (CIMEC) > Instituto de Desarrollo Tecnol?gico para la Industria Qu?mica (INTEC) > Consejo Nacional de Investigaciones Cient?ficas y T?cnicas (CONICET) > PTLC - G?emes 3450, (3000) Santa Fe, Argentina > Tel/Fax: +54-(0)342-451.1594 > > -- 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