LobsterPy icon indicating copy to clipboard operation
LobsterPy copied to clipboard

Some quesitons on the lobster_basis used by this package.

Open hongyi-zhao opened this issue 1 year ago • 16 comments

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

hongyi-zhao avatar Jun 26 '24 09:06 hongyi-zhao

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 avatar Jun 26 '24 09:06 JaGeo

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

JaGeo avatar Jun 26 '24 09:06 JaGeo

  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

hongyi-zhao avatar Jun 26 '24 12:06 hongyi-zhao

  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 avatar Jun 26 '24 12:06 JaGeo

  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.

JaGeo avatar Jun 26 '24 12:06 JaGeo

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

hongyi-zhao avatar Jun 26 '24 12:06 hongyi-zhao

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

JaGeo avatar Jun 26 '24 13:06 JaGeo

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 avatar Jun 26 '24 13:06 hongyi-zhao

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

hongyi-zhao avatar Jun 26 '24 13:06 hongyi-zhao

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 avatar Jun 26 '24 13:06 JaGeo

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

By accident

JaGeo avatar Jun 26 '24 13:06 JaGeo

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.

hongyi-zhao avatar Jun 27 '24 13:06 hongyi-zhao

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.

JaGeo avatar Jun 27 '24 14:06 JaGeo

  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.

hongyi-zhao avatar Jun 27 '24 14:06 hongyi-zhao

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

JaGeo avatar Jun 27 '24 14:06 JaGeo

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

hongyi-zhao avatar Jun 27 '24 14:06 hongyi-zhao

In my opinion: this was anwered

JaGeo avatar Jul 26 '24 07:07 JaGeo