Skip to content

Commit f6f2be5

Browse files
committed
Expand PPCG description in the PW solver documentation
Note that PPCG is a restarted block method with a bounded 2*nband subspace, targeted at the many-eigenpair regime, and that pw_diag_ndim controls its block size.
1 parent 9aca420 commit f6f2be5

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

docs/advanced/scf/hsolver.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
Method of explicit solving KS-equation can be chosen by variable "ks_solver" in INPUT file.
66

7-
When "basis_type = pw", `ks_solver` can be `cg`, `bpcg`, `dav`, `dav_subspace`, or `ppcg`. The default setting `cg` is recommended, which is a band-by-band conjugate-gradient diagonalization method. The `dav` and `dav_subspace` settings use Davidson-style subspace diagonalization and can be tried to improve performance. The `ppcg` setting uses the projection preconditioned conjugate-gradient method. It is optimized and validated for CPU plane-wave calculations; non-CPU devices use a transitional host/device bridge.
7+
When "basis_type = pw", `ks_solver` can be `cg`, `bpcg`, `dav`, `dav_subspace`, or `ppcg`. The default setting `cg` is recommended, which is a band-by-band conjugate-gradient diagonalization method. The `dav` and `dav_subspace` settings use Davidson-style subspace diagonalization and can be tried to improve performance. The `ppcg` setting uses the projection preconditioned conjugate-gradient method (a restarted block method that keeps a bounded `2*nband` subspace). It targets the many-eigenpair regime where the bounded memory and block operations pay off; it is optimized and validated for CPU plane-wave calculations, and non-CPU devices use a transitional host/device bridge. The PPCG block size / Rayleigh-Ritz interval is controlled by `pw_diag_ndim`.
88

99
When "basis_type = lcao", `ks_solver` can be `genelpa` or `scalapack_gvx`. The default setting `genelpa` is recommended, which is based on ELPA (EIGENVALUE SOLVERS FOR PETAFLOP APPLICATIONS) (https://elpa.mpcdf.mpg.de/) and the kernel is auto choosed by GENELPA(https://github.com/pplab/GenELPA), usually faster than the setting of "scalapack_gvx", which is based on ScaLAPACK(Scalable Linear Algebra PACKage)
1010

0 commit comments

Comments
 (0)