Skip to content

New CG implemented and will be replaced #35

@zhucaoxiang

Description

@zhucaoxiang

The current nonlinear conjugate gradient (CG) method was written by myself based on the strategy of Yuan & Dai. The line search subroutine is also written by myself based on Numerical Optimization. It is often observed un-converged line search.
In the develop branch, FOCUS is linked to another well-written library, CG-descent. If you want to use the old version CG, just compile with PFLAGS='-D oldcg'.

Here is a test using the rotating ellipse. Solid lines are the CG-descent, and dashed lines the old CG.

  1. Convergence over iterations.
    image

  2. Convergence over wall-time.
    image

  3. Poincare plots from CG-descent
    image

  4. Poincare plots from old CG
    image

The testing results show that the CG-descent is much faster in speed. My guess is that I didn't implement a very good line search subroutine. So I will encourage everyone to test the CG-descent and will merge it into master after some time.

git fetch
git checkout develop
make clean; make xfocus; make dfocus

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions