5.3.6. band_minimizer.pccg

eminus.band_minimizer.pccg(scf, W, Nit, cost=scf_step_occ, grad=get_grad_occ, condition=check_convergence, betat=3e-5, cgform=1, precondition=True)[source]

Preconditioned conjugate-gradient minimization algorithm for a fixed Hamiltonian.

Parameters:
  • scf – SCF object.

  • W – Expansion coefficients of unconstrained wave functions in reciprocal space.

  • Nit – Maximum number of SCF steps.

Keyword Arguments:
  • cost – Function that will run every SCF step.

  • grad – Function that calculates the respective gradient.

  • condition – Function to check and log the convergence condition.

  • betat – Step size.

  • cgform – Conjugate gradient form.

  • precondition – Whether to use a preconditioner.

Returns:

Band energies per SCF cycle and optimized expansion coefficients.