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
