|
def | __init__ (self, wf, basis, unsym_basis=False, unsym_wf=False, pseudo=False) |
|
def | make_site_lists (self) |
|
def | setup_overlap (self) |
|
def | single_band_projection (self, band_num) |
|
def | proportion_conduction (self, band_num, spinpol=False) |
|
def | defect_band_analysis (self, num_below_ef=20, num_above_ef=20, spinpol=False, return_energies=False, vbmband=None, band_list=None, analyze_all=False) |
|
def | realspace_projection (self, band_num, dim=None) |
|
Projector is a class to project KS states
from wf onto the KS states of basis
(both wavefunction objects).
Attributes:
wf (Wavefunction): Wavefunction object
basis (Wavefunction): Wavefunction object onto which the
wavefunctions of wf are to be projected
pseudo (bool): Whether to perform projections
using only plane-wave coefficient components of the
wavefunctions. Sacrifices orthogonalization and
normalization for speed
def pawpyseed.core.projector.Projector.__init__ |
( |
|
self, |
|
|
|
wf, |
|
|
|
basis, |
|
|
|
unsym_basis = False , |
|
|
|
unsym_wf = False , |
|
|
|
pseudo = False |
|
) |
| |
Arguments:
wf (Wavefunction): The wavefunction objects whose
bands are to be projected onto basis
basis (Wavefunction): The wavefunction whose bands
serve as the basis set for projection
unsym_basis (bool, False): If True, makes a copy
of basis in which the k-point mesh is not symmetrically
reduced, and then frees the original basis
unsym_wf (bool, False): If True, makes a copy of
wf in which the k-point mesh is not symmetrically
reduced, and the frees the original wf
pseudo (bool, False): Whether to perform projections
using only plane-wave coefficient components of the
wavefunctions. Sacrifices orthogonalization and
normalization for speed
Returns:
Projector object
def pawpyseed.core.projector.Projector.defect_band_analysis |
( |
|
self, |
|
|
|
num_below_ef = 20 , |
|
|
|
num_above_ef = 20 , |
|
|
|
spinpol = False , |
|
|
|
return_energies = False , |
|
|
|
vbmband = None , |
|
|
|
band_list = None , |
|
|
|
analyze_all = False |
|
) |
| |
Identifies a set of 'interesting' bands in a defect structure
to analyze by choosing any band that is more than bound conduction
and more than bound valence in the pseudoprojection scheme,
and then fully analyzing these bands using single_band_projection.
NOTE: ALL BANDS ARE ZERO-INDEXED!
Args:
num_below_ef (int, 20): number of bands to analyze below the fermi level
num_above_ef (int, 20): number of bands to analyze above the fermi level
spinpol (bool, False): whether to return spin-polarized results (only allowed
for spin-polarized DFT output)
return_energies (bool, False): whether to return the energy levels
of the bands analyzed in the form
{band : [kpoint label: {spin label: (energy, occupation)}},
where the kpoint label and spin label are integers
vbmband (int, None): Optionally allows a VBM band number to be specified.
If None, the VBM of wf is determined and used.
band_list (list of int, None): If not None, overrides num_below_ef,
num_above_ef, and vbmband. Specifies the set of bands to analyze.
analyze_all (bool, False): If True, overrides num_below_ef,
num_above_ef, vbmband, and band_list. Whether to perform
analysis on all bands in wf
def pawpyseed.core.projector.Projector.setup_bases |
( |
|
basis_dirs, |
|
|
|
desymmetrize = True , |
|
|
|
atomate_compatible = True |
|
) |
| |
|
static |
This convenience function performs the setup
of all the bases in the basis_dirs list.
Arguments:
basis_dir (list of str): paths to the VASP outputs
to be used as the basis structures
desymmetrize (bool, False): If True, constructs
Wavefunction objects in which the k-point mesh
is not symmetrically reduced
atomate_compatible (bool, True): If True, checks for the gzipped
files created the atomate workflow tools and reads the most
recent run based on title
Returns:
list of Wavefunction objects, each basis in the same
order as the basis_dirs list
def pawpyseed.core.projector.Projector.setup_multiple_projections |
( |
|
basis_dir, |
|
|
|
wf_dirs, |
|
|
|
pseudo = False , |
|
|
|
ignore_errors = False , |
|
|
|
desymmetrize = False , |
|
|
|
atomate_compatible = True |
|
) |
| |
|
static |
A convenient generator function for processing the Kohn-Sham wavefunctions
of multiple structures with respect to one structure used as the basis.
All C memory is freed after each yield for the wavefunctions to be analyzed,
and C memory associated with the basis wavefunction is freed when
the generator is called after all wavefunctions have been yielded.
Args:
basis_dir (str): path to the VASP output to be used as the basis structure
wf_dirs (list of str): paths to the VASP outputs to be analyzed
ignore_errors (bool, False): whether to ignore errors in setting up
Wavefunction objects by skipping over the directories for which
setup fails.
desymmetrize (bool, False): If True, constructs
Wavefunction objects in which the k-point mesh
is not symmetrically reduced
atomate_compatible (bool, True): If True, checks for the gzipped
files created by the atomate workflow tools and reads the most
recent run based on title
Returns:
list -- wf_dir, basis, wf
Each iteration of the generator function returns a directory name from
wf_dirs (wf_dir), the basis Wavefunction object (basis), and the Wavefunction
object associated with wf_dir (wf), fully setup to project bands of wf
onto bands of basis.