From: John Peterson <jwpeterson@gm...>  20090319 18:27:03

On Thu, Mar 19, 2009 at 11:49 AM, Roy Stogner <roystgnr@...> wrote: > > On Thu, 19 Mar 2009, Vasilis Vavourakis wrote: > >> Roy, you are right too, the simplest way to implement the arclength >> procedure is to augment the system with one "constraint" equation... >> the problem is that it's not that clear to me (i'm not that a libmesh >> expert) to add another "one" degreeoffreedom in the system! > > Currently there is *no* good way to add another single dof with global > (or persubdomain, whatever) coupling to the algebraic system. So far > nobody's needed such a feature enough to do the DofMap work adding it > would require. In John's stuff (continuation_system.C) he wanted to > keep track of the arc length parameter independently anyway to do > adaptive step lengths, so IIRC he just kept it out of the algebraic > system and iterated them loosely. That's right, although it was more out of laziness than any other reason :) You have to solve two linear systems per Newton iteration instead of 1, but the benefit is that you don't have to modify your existing matrix assembly code, or worry about changing the DoF coupling or structure in LibMesh. The algorithm (which goes at least back to Herb Keller's work) is discussed in the Section "Numerical Solution of Bordered Systems" (maybe section 4.4.4) of the dissertation. One should also exploit the fact that the two solves involve the same matrix and different righthand sides, by e.g. reusing matrix factorizations, if possible.  John 