Comments (13)
I realized I haven't answered your 2nd question fully:
- you really need to test
- for semi-conductors, we have successfully used the smallest possible basis but this might not be sufficient for metals (https://www.nature.com/articles/s41597-023-02477-5)
- this is, however, a topic we are still working on as well
from lobsterpy.
If you are interested in running LOBSTER with newer POTCARs and want some more information on this and how the code here and in pymatgen works, please feel free to write me an email and then we can talk about a collaboration.
from lobsterpy.
I have noticed these files.
from lobsterpy.
I will try to answer my above questions as follows:
- The number of basis sets available for an element is related to the type of POTCAR used. In my case, for the Cd element, I have multiple POTCARs available on my machine, such as Cd, Cd_GW, and Cd_sv_GW. Each of these POTCARs represents a different basis set for the Cd element. Additionally, the PSCTR files associated with each POTCAR can provide further information on the specific settings and parameters used in the basis set.
On the other hand, the detailed basis sets information can also be found in the Atomic configuration
part from the OUTCAR file, as shown below:
POTCAR: PAW_PBE Cd 06Sep2000
POTCAR: PAW_PBE F 08Apr2002
POTCAR: PAW_PBE Cd 06Sep2000
SHA256 = 8b7ca71966beae5276c8bb910adb3ecc013a3354c27473914c94cd54c83be4f7 Cd/POTCAR
COPYR = (c) Copyright 06Sep2000 Georg Kresse
COPYR = This file is part of the software VASP. Any use, copying, and all other rights are regul
COPYR = If you do not have a valid VASP license, you may not use, copy or distribute this file.
VRHFIN =Cd : s2 d10
LEXCH = PE
EATOM = 1293.1815 eV, 95.0462 Ry
TITEL = PAW_PBE Cd 06Sep2000
LULTRA = F use ultrasoft PP ?
IUNSCR = 1 unscreen: 0-lin 1-nonlin 2-no
RPACOR = 2.000 partial core radius
POMASS = 112.411; ZVAL = 12.000 mass and valenz
RCORE = 2.300 outmost cutoff radius
RWIGS = 2.980; RWIGS = 1.577 wigner-seitz radius (au A)
ENMAX = 274.336; ENMIN = 205.752 eV
RCLOC = 2.054 cutoff for local pot
LCOR = T correct aug charges
LPAW = T paw PP
EAUG = 456.106
DEXC = 0.000
RMAX = 2.358 core radius for proj-oper
RAUG = 1.300 factor for augmentation sphere
RDEP = 2.450 radius for radial grids
RDEPT = 1.955 core radius for aug-charge
Atomic configuration
12 entries
n l j E occ.
1 0 0.50 -26519.7817 2.0000
2 0 0.50 -3936.9612 2.0000
2 1 1.50 -3532.2230 6.0000
3 0 0.50 -733.7908 2.0000
3 1 1.50 -601.0792 6.0000
3 2 2.50 -393.5307 10.0000
4 0 0.50 -105.8977 2.0000
4 1 1.50 -66.9488 6.0000
4 2 2.50 -11.7331 10.0000
5 0 0.50 -5.6592 2.0000
5 1 0.50 -1.3606 0.0000
4 3 2.50 -1.3606 0.0000
Description
l E TYP RCUT TYP RCUT
2 -11.7331479 23 2.300
2 -13.0937305 23 2.300
0 -5.6591502 23 2.300
0 -1.5561433 23 2.300
1 -2.7211652 23 2.300
1 8.3548275 23 2.300
local pseudopotential read in
partial core-charges read in
partial kinetic energy density read in
atomic valenz-charges read in
non local Contribution for L= 2 read in
real space projection operators read in
non local Contribution for L= 2 read in
real space projection operators read in
non local Contribution for L= 0 read in
real space projection operators read in
non local Contribution for L= 0 read in
real space projection operators read in
non local Contribution for L= 1 read in
real space projection operators read in
non local Contribution for L= 1 read in
real space projection operators read in
PAW grid and wavefunctions read in
number of l-projection operators is LMAX = 6
number of lm-projection operators is LMMAX = 18
POTCAR: PAW_PBE F 08Apr2002
SHA256 = 53c630871ac675939349fc2b976745ee17808dedc90b5bdde026bc81f0faf456 F/POTCAR
COPYR = (c) Copyright 08Apr2002 Georg Kresse
COPYR = This file is part of the software VASP. Any use, copying, and all other rights are regul
COPYR = If you do not have a valid VASP license, you may not use, copy or distribute this file.
VRHFIN =F: s2p5
LEXCH = PE
EATOM = 659.6475 eV, 48.4827 Ry
TITEL = PAW_PBE F 08Apr2002
LULTRA = F use ultrasoft PP ?
IUNSCR = 1 unscreen: 0-lin 1-nonlin 2-no
RPACOR = 1.200 partial core radius
POMASS = 18.998; ZVAL = 7.000 mass and valenz
RCORE = 1.520 outmost cutoff radius
RWIGS = 1.500; RWIGS = 0.794 wigner-seitz radius (au A)
ENMAX = 400.000; ENMIN = 300.000 eV
ICORE = 2 local potential
LCOR = T correct aug charges
LPAW = T paw PP
EAUG = 613.614
RMAX = 1.555 core radius for proj-oper
RAUG = 1.300 factor for augmentation sphere
RDEP = 1.539 radius for radial grids
RDEPT = 1.299 core radius for aug-charge
Atomic configuration
4 entries
n l j E occ.
1 0 0.50 -663.3661 2.0000
2 0 0.50 -29.8995 2.0000
2 1 0.50 -11.1114 5.0000
3 2 1.50 -10.8847 0.0000
Description
l E TYP RCUT TYP RCUT
0 -29.8995018 23 1.200
0 -9.5240782 23 1.200
1 -11.1113914 23 1.520
1 1.3605826 23 1.520
2 -10.8846608 7 1.500
local pseudopotential read in
partial core-charges read in
partial kinetic energy density read in
atomic valenz-charges read in
non local Contribution for L= 0 read in
real space projection operators read in
non local Contribution for L= 0 read in
real space projection operators read in
non local Contribution for L= 1 read in
real space projection operators read in
non local Contribution for L= 1 read in
real space projection operators read in
PAW grid and wavefunctions read in
number of l-projection operators is LMAX = 4
number of lm-projection operators is LMMAX = 8
-
In a specific study, one should choose a specific basis set for his/her calculations and analysis based on the requirements of the specific study. It is not necessary to perform calculations and analyses on all available basis sets. Selecting the appropriate basis set involves considering factors such as computational accuracy, efficiency, and the properties under investigation in the corrresponding research.
-
I tried the following method, and it seems that pymatgen does not fully support it so far:
$ cat create_and_test_potcar.py
from pymatgen.io.vasp.inputs import Potcar, PotcarSingle
import os
# Specify the required elements
potcar_symbols = ["Cd_GW", "F"]
# Specify the POTCAR functional
functional = "PBE_64" # Ensure using the correct functional set
# Print the POTCAR file path for each element
for symbol in potcar_symbols:
try:
# Create PotcarSingle object for the symbol and functional
potcar_single = PotcarSingle.from_symbol_and_functional(symbol, functional)
if potcar_single:
functional_dir_dict = potcar_single.functional_dir
if functional in functional_dir_dict:
functional_dir = functional_dir_dict[functional]
potcar_path = os.path.join(functional_dir, symbol, "POTCAR")
print(f"{symbol} POTCAR created successfully.")
print(f"Element: {potcar_single.element}")
print(f"Symbol: {potcar_single.symbol}")
print(f"Functional: {potcar_single.functional}")
print(f"Number of electrons: {potcar_single.nelectrons}")
print(f"Potential type: {potcar_single.potential_type}")
print(f"POTCAR file path: {potcar_path}")
else:
print(f"Functional {functional} not found in directory dictionary.")
else:
print(f"POTCAR file for {symbol} with functional {functional} not found.")
except Exception as e:
print(f"Error occurred for symbol {symbol}: {e}")
# Create Potcar object
try:
potcar = Potcar(potcar_symbols, functional)
# Write the Potcar to a file
potcar.write_file("POTCAR")
# Read the generated POTCAR file
potcar_read = Potcar.from_file("POTCAR")
# Print POTCAR information
# print(potcar_read)
except Exception as e:
print(f"Error occurred while creating or reading POTCAR: {e}")
$ python create_and_test_potcar.py
Cd_GW POTCAR created successfully.
Element: Cd
Symbol: Cd_GW
Functional: PBE
Number of electrons: 12.0
Potential type: PAW
POTCAR file path: POT_PAW_PBE_64/Cd_GW/POTCAR
F POTCAR created successfully.
Element: F
Symbol: F
Functional: PBE
Number of electrons: 7.0
Potential type: PAW
POTCAR file path: POT_PAW_PBE_64/F/POTCAR
$ lobsterpy create-inputs --overwrite
/home/werner/Public/repo/github.com/materialsproject/pymatgen.git/pymatgen/io/lobster/inputs.py:642: UserWarning: These POTCARs are not compatible with Lobster up to version 4.1.0.
The keywords SHA256 and COPYR cannot be handled by Lobster
and will lead to wrong results.
warnings.warn(
Traceback (most recent call last):
File "/home/werner/.pyenv/versions/datasci/bin/lobsterpy", line 8, in <module>
sys.exit(main())
^^^^^^
File "/home/werner/Public/repo/github.com/JaGeo/LobsterPy.git/lobsterpy/cli.py", line 33, in main
run(args)
File "/home/werner/Public/repo/github.com/JaGeo/LobsterPy.git/lobsterpy/cli.py", line 987, in run
list_basis_dict = Lobsterin.get_all_possible_basis_functions(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/werner/Public/repo/github.com/materialsproject/pymatgen.git/pymatgen/io/lobster/inputs.py", line 401, in get_all_possible_basis_functions
max_basis = Lobsterin.get_basis(
^^^^^^^^^^^^^^^^^^^^
File "/home/werner/Public/repo/github.com/materialsproject/pymatgen.git/pymatgen/io/lobster/inputs.py", line 376, in get_basis
raise ValueError(
ValueError: Missing basis information for POTCAR symbol: Cd_GW. Please provide the basis manually.
If there are any deficiencies or errors in my understanding above, please point them out, and feel free to correct and supplement them.
from lobsterpy.
These basis sets have been developed for the PBE_54 POTCARs.
from lobsterpy.
These basis sets have been developed for the PBE_54 POTCARs.
Therefore, this should be a feature of the corresponding pymatgen package that has not yet been implemented and needs to be enhanced.
So, what I want to know is whether lobster itself already fully supports any type of POTCAR and basis sets implemented in VASP?
from lobsterpy.
@hongyi-zhao For this, you need to check the LOBSTER manual or LOBSTER itself.
from lobsterpy.
@hongyi-zhao For this, you need to check the LOBSTER manual or LOBSTER itself.
I checked the release notes of the latest version of lobster-5.1.0 and did not find any information regarding whether it supports the latest version of VASP POTCAR. Therefore, this should be further discussed and confirmed with the lobster development team.
However, based on the following description in CHANGELOG.pdf shipped with lobster-5.1.0, we can reasonably infer that the latest version of lobster supports the latest POTCAR specifications:
from lobsterpy.
If you are interested in running LOBSTER with newer POTCARs and want some more information on this and how the code here and in pymatgen works, please feel free to write me an email and then we can talk about a collaboration.
In my group, there are also several graduate students and researchers conducting collaborative research. We can communicate appropriately to see if there is an opportunity to arrange further research work.
from lobsterpy.
As said, we support PBE_54 and only the standard POTCARs used in the LOBSTER input set in pymatgen. We can surely document this more clearly.
from lobsterpy.
Agreed.
from lobsterpy.
You can check out the yaml files here: https://github.com/materialsproject/pymatgen/tree/master/pymatgen/io/lobster/lobster_basis
from lobsterpy.
Closing this as well
from lobsterpy.
Related Issues (20)
- Fatband plots
- Large number of environments break the automatic plot HOT 1
- Plot does not save png correctly
- Code of conduct HOT 2
- Speed up installation
- Tests for multi-center bonding plotting features
- Edge features from LobsterNeighbors
- Fix warnings for flake8 pre-commit CI
- import of `typing` causing issues for down stream installs HOT 12
- Developers installation out of date HOT 7
- [CI] `test_cli` failed on MacOS due to different `matplotlib` rounding precision HOT 4
- [Bug] NumPy 2.x breaks CI tests HOT 5
- Do we really need very large kpoint grid density to do the vasp computation in order to do the further lobster computation? HOT 5
- Some quesitons on the lobster_basis used by this package. HOT 17
- Fractional occupancies. HOT 6
- What about add PBE_64 into the _valid_potcars list of the LobsterSet function defined in pymatgen? HOT 6
- The inappropriate code snippet appeared in the `Command line interface` tutorial. HOT 1
- Failed to run `Command line interface` tutorial. HOT 9
- Calc quality analysis needs to be updated HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lobsterpy.