add nonlinearCG