On Thu, Mar 19, 2009 at 11:49 AM, Roy Stogner <[email protected]> wrote: > > On Thu, 19 Mar 2009, Vasilis Vavourakis wrote: > >> Roy, you are right too, the simplest way to implement the arc-length >> 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" degree-of-freedom in the system! > > Currently there is *no* good way to add another single dof with global > (or per-subdomain, 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 right-hand sides, by e.g. reusing matrix factorizations, if possible. -- John ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
