update the nonlinear part