deepmodeling / deepks-kit

a package for developing machine learning-based chemically accurate energy and density functional models
GNU Lesser General Public License v3.0
102 stars 36 forks source link

Projector basis and spherical harmonics #51

Closed nqhq-lou closed 1 year ago

nqhq-lou commented 1 year ago

In deepks/utils.py:L17, variable _coef composes _table and then DEFAULT_BASIS. I couldn't find out how _coef works for basis.

proj_basis = [[0,  # l=0 azimuthal quantum number. Is it?
  [4.0, 1.0, -1.0, 0.0, 0.0, 0.0],  # 4.0 for radial length. Is it?
  [2.0, 0.0, 1.0, -1.0, 0.0, 0.0],  # I have no idea on the 5x5 diag block
  [1.0, 0.0, 0.0, 1.0, -1.0, 0.0],
  [0.5, 0.0, 0.0, 0.0, 1.0, -1.0],
  [0.25, 0.0, 0.0, 0.0, 0.0, 1.0]],
 [1,
  [4.0, 1.0, -1.0, 0.0, 0.0, 0.0],
  [2.0, 0.0, 1.0, -1.0, 0.0, 0.0],
  [1.0, 0.0, 0.0, 1.0, -1.0, 0.0],
  [0.5, 0.0, 0.0, 0.0, 1.0, -1.0],
  [0.25, 0.0, 0.0, 0.0, 0.0, 1.0]],
 [2,
  [4.0, 1.0, -1.0, 0.0, 0.0, 0.0],
  [2.0, 0.0, 1.0, -1.0, 0.0, 0.0],
  [1.0, 0.0, 0.0, 1.0, -1.0, 0.0],
  [0.5, 0.0, 0.0, 0.0, 1.0, -1.0],
  [0.25, 0.0, 0.0, 0.0, 0.0, 1.0]],
]

The furthest code block I arrived at is pyscf/gto/mole/format_basis, and I think that [(l, ((-exp, c_1, c_2, ..), in the function comments might be related to the _coef above.

What are the rules/conventions for this format? And if you know, could you please provide me with more references for such a convention? Thanks!