JaGeo / LobsterPy

Package to perform automatic bonding analysis with the program Lobster in the field of computational materials science and quantum chemistry
https://jageo.github.io/LobsterPy/
BSD 3-Clause "New" or "Revised" License
74 stars 27 forks source link

Some quesitons on the lobster_basis used by this package. #306

Closed hongyi-zhao closed 4 weeks ago

hongyi-zhao commented 1 month ago

About the lobster_basis used by this package, I have the following questions:

  1. How are they made?
  2. As shown below, Why is there a space at the end?
werner@x13dai-t:~/Public/repo/github.com/materialsproject/pymatgen.git/pymatgen/io/lobster/lobster_basis$ ug Cd
BASIS_PBE_54_min.yaml:  Cd: '4d 5s '
BASIS_PBE_54_standard.yaml:  Cd: '4d 5p 5s '
BASIS_PBE_54_max.yaml:  Cd: '4d 5p 5s '

Regards, Zhao

JaGeo commented 1 month ago

So, I simply used the occupations from the POTCAR files to determine which orbitals should be occupied and therefore are needed for the projection (min). Then, we added all potentially available unoccupied orbitals to max. In LobsterPy and the workflows, we iterate over all combinations in between min and max possible basis per element.

JaGeo commented 1 month ago

The spaces are an artefact of how I produced the files.

hongyi-zhao commented 1 month ago
  1. The trailing space should be removed, IMHO.
  2. The standard basis set used in your package is inconsistent with the one shown on vasp wiki, say, for Cd, the Valence electron configuration of the standard PBE.54 potential is shown as follows:

image

But the one used in your package, which we also have discussed before, is as follows:

image

  1. What do the fractional superscripts mean used on the vasp wiki for indicating the Valence electron configuration, as shown below: image
JaGeo commented 1 month ago
  1. The trailing space should be removed, IMHO.
  2. The standard basis set used in your package is inconsistent with the one shown on vasp wiki, say, for Cd, the Valence electron configuration of the standard PBE.54 potential is shown as follows:

image

But the one used in your package, which we also have discussed before, is as follows:

image

  1. What do the fractional superscripts mean used on the vasp wiki for indicating the Valence electron configuration, as shown below: image
  1. I personally think it is a small issue.
  2. As said: we rely on the POTCARs for the determination of the valence. We use their valence electron count to figure out what they treat as valence electrons.
JaGeo commented 1 month ago
  1. The trailing space should be removed, IMHO.
  2. The standard basis set used in your package is inconsistent with the one shown on vasp wiki, say, for Cd, the Valence electron configuration of the standard PBE.54 potential is shown as follows:

image But the one used in your package, which we also have discussed before, is as follows: image

  1. What do the fractional superscripts mean used on the vasp wiki for indicating the Valence electron configuration, as shown below: image
  1. I personally think it is a small issue.
  2. As said: we rely on the POTCARs for the determination of the valence. We use their valence electron count to figure out what they treat as valence electrons. To compare with the VASP wiki, you would need to look into the min file.
hongyi-zhao commented 1 month ago

Here is my additional comment:

For the potpaw.64, as stated on vasp wiki, the updated potentials with respect to the potpaw.54 set are as follows:

image

JaGeo commented 1 month ago

I will try to dig out the script that I used to produce these files. If you are interested, you are surely invited to add the corresponding files for the new POTCARs to pymatgen and extend the functionality. (I opened an issue on pymatgen on this topic a while back)

https://github.com/materialsproject/pymatgen/issues/3840

hongyi-zhao commented 1 month ago

As far as I can think of at the moment, I am mainly interested in the following aspects w.r.t the basis sets of VASP potcars:

  1. Basis sets on-the-fly generation based on the system's POTCAR under study and dynamically determine which type of basis set should be used for the materials' current properties of interest.
  2. Extending the above idea to GW potentials.
  3. The standard for determining whether a basis set is appropriate or not.
hongyi-zhao commented 1 month ago

I don't know why you posted this https://github.com/JaGeo/LobsterPy/issues/306#issuecomment-2191614799 twice.

JaGeo commented 1 month ago

I am uploading the scripts that I used at the time to get the information for 1. Script_to_get_available_basis_functions.zip There is a list of all available basis functions in LOBSTER (PBE VASP fit basis set).

  1. I think I excluded them at the time. You might need to check the format
  2. As said, we are working on this part as well. We might release more information
JaGeo commented 1 month ago

I don't know why you posted this #306 (comment) twice.

By accident

hongyi-zhao commented 1 month ago

I am uploading the scripts that I used at the time to get the information for 1. Script_to_get_available_basis_functions.zip There is a list of all available basis functions in LOBSTER (PBE VASP fit basis set).

  1. However, LOBSTER itself does not provide the following file used in your script, aka, availabe_basis_functions:
    #read in all available basis functions
    available_basis_functions={}
    with zopen("availabe_basis_functions") as f:
    data = f.read().split("\n")

    image

So, I'm still not sure how you made the availability basis_functions file here.

  1. If I understand correctly, according to the latest lobster version's user manual shown above and the description here, as shown below, Lobster itself has not fully implemented the corresponding support for the latest VASP potpaw.64. So, is our discussion about updating basis sets still reasonable?

image

  1. Also see here for the related Data and code of https://doi.org/10.1002/cplu.202200123.
JaGeo commented 1 month ago

I am uploading the scripts that I used at the time to get the information for 1. Script_to_get_available_basis_functions.zip There is a list of all available basis functions in LOBSTER (PBE VASP fit basis set).

  1. However, LOBSTER itself does not provide the following file used in your script, aka, availabe_basis_functions:
#read in all available basis functions
available_basis_functions={}
with zopen("availabe_basis_functions") as f:
    data = f.read().split("\n")

image

So, I'm still not sure how you made the availability basis_functions file here.

  1. If I understand correctly, according to the latest lobster version's user manual and the description here, as shown below, Lobster itself has not fully implemented the corresponding support for the latest VASP potpaw.64. So, is our discussion about updating basis sets still reasonable?

image

  1. Also see here for the related Data and code of https://doi.org/10.1002/cplu.202200123.
  1. I got the file from the LOBSTER developers.
  2. If it is not implemented and supported yet, then we might wait until it is. You can also ask the Lobster people about it.
hongyi-zhao commented 1 month ago
  1. I got the file from the LOBSTER developers.

May I ask if the LOBSTER developers allow users to freely redistribute this file? If so, could you privately send me a copy? Otherwise, I can try contacting the LOBSTER developers to request one.

JaGeo commented 1 month ago

I think it is uploaded here. It's just a text file including all available basis functions.

hongyi-zhao commented 1 month ago

Sorry, you are right, it has been included in the Script_to_get_available_basis_functions.zip you uploaded earlier, as shown below

werner@x13dai-t:~/Public/repo/github.com/JaGeo/Script_to_get_available_basis_functions$ find . -type f -name 'availabe_basis_functions'
./MaxBasis/availabe_basis_functions
./MinBasis/availabe_basis_functions
JaGeo commented 4 weeks ago

In my opinion: this was anwered