Source code for pynao.m_fireball_hsx

from __future__ import print_function, division
import numpy as np
from scipy.sparse import csr_matrix


#
#
#
[docs]class fireball_hsx(): def __init__(self, nao, **kw): from pynao.m_fireball_get_HS_dat import fireball_get_HS_dat from pynao.m_siesta2blanko_csr import _siesta2blanko_csr self.cd = nao.cd atom2s = nao.atom2s self.fname = fname = kw['fname'] if 'fname' in kw else 'HS.dat' i2aoao,i2h,i2s,i2x = fireball_get_HS_dat(self.cd, fname) ni = len(i2aoao) i2a = np.zeros((ni), dtype=int) i2b = np.zeros((ni), dtype=int) for i,aoao in enumerate(i2aoao): i2a[i] = atom2s[aoao[0]-1]+aoao[1]-1 i2b[i] = atom2s[aoao[2]-1]+aoao[3]-1 m = atom2s[-1] n = atom2s[-1] self.spin2h4_csr = [csr_matrix((i2h, (i2a, i2b)), shape=(m, n))] self.s4_csr = csr_matrix((i2s, (i2a, i2b)), shape=(m, n)) self.x4_csr = [ csr_matrix((i2x[:,0], (i2a, i2b)), shape=(m, n)), csr_matrix((i2x[:,1], (i2a, i2b)), shape=(m, n)), csr_matrix((i2x[:,2], (i2a, i2b)), shape=(m, n)) ] self.orb_sc2orb_uc = np.array(list(range(atom2s[-1])), dtype=int) o2m = nao.get_orb2m() _siesta2blanko_csr(o2m, self.s4_csr, self.orb_sc2orb_uc) _siesta2blanko_csr(o2m, self.spin2h4_csr[0], self.orb_sc2orb_uc)
[docs] def deallocate(self): del self.spin2h4_csr del self.s4_csr