Source code for pyiron_atomistics.dft.bader
import os
from vaspparser.dft.bader import Bader as _Bader
from pyiron_atomistics.vasp.volumetric_data import VaspVolumetricData
[docs]
class Bader(_Bader):
def _create_cube_files(self):
"""
Create CUBE format files of the total and valce charges to be used by the Bader program
"""
cd_val, cd_total = get_valence_and_total_charge_density(
working_directory=self._working_directory
)
cd_val.write_cube_file(
filename=os.path.join(self._working_directory, "valence_charge.CUBE")
)
cd_total.write_cube_file(
filename=os.path.join(self._working_directory, "total_charge.CUBE")
)
[docs]
def get_valence_and_total_charge_density(working_directory):
"""
Gives the valence and total charge densities
Returns:
tuple: The required charge densities
"""
cd_core = VaspVolumetricData()
cd_total = VaspVolumetricData()
cd_val = VaspVolumetricData()
if os.path.isfile(working_directory + "/AECCAR0"):
cd_core.from_file(working_directory + "/AECCAR0")
cd_val.from_file(working_directory + "/AECCAR2")
cd_val.atoms = cd_val.atoms
cd_total.total_data = cd_core.total_data + cd_val.total_data
cd_total.atoms = cd_val.atoms
return cd_val, cd_total