def test_str(self): bt = triangular((2, 1)) self.assertEqual( str(bt), """ Block 1 0.00000000 0.00000000 0.00000000 Block 2 0.00000000 """, )
def fv(self): """Get active Fock matrix""" if self._fv is None: with FortranBinary(self.name) as fb: fb.find(self.ifclabel) for i in range(9): fb.next() mmorbt = max(self.nnorbt, 4) dbl = fb.readbuf(mmorbt, self.FLOAT) self._fv = blocked.triangular(self.norb) n = 0 for isym in range(8): ij = 0 for i in range(self.norb[isym]): for j in range(i + 1): self._fv.subblock[isym][i, j] = dbl[ij] ij += 1 n += ij assert n == self.nnorbt return self._fv
def read(label="OVERLAP", filename="AOONEINT"): """Read integral for label""" lbuf = 600 # # Initialize # unlabeled = readhead(filename) nsym = unlabeled["nsym"] nbas = unlabeled["naos"] INT = unlabeled["int_fmt"] FLOAT = unlabeled["float_fmt"] nnbast = 0 for nbasi in nbas: nnbast += nbasi * (nbasi + 1) // 2 s = full.matrix((nnbast, )) # # Open file, locate label # aooneint = FortranBinary(filename) aooneint.find(label) # # Loop over records # for rec in aooneint: buf = rec.read(lbuf, FLOAT) ibuf = rec.read(lbuf, INT) length, = rec.read(1, INT) if length < 0: break for i, b in zip(ibuf[:length], buf[:length]): s[i - 1] = b _S = blocked.triangular(nbas) off = 0 for isym in range(nsym): nbasi = nbas[isym] * (nbas[isym] + 1) // 2 _S.subblock[isym] = np.array(s[off:off + nbasi]).view(full.triangular) off += nbasi # aooneint.close() return _S
def read(label="OVERLAP", filename="AOONEINT"): """Read integral for label""" lbuf = 600 # # Initialize # unlabeled = readhead(filename) nsym = unlabeled["nsym"] nbas = unlabeled["naos"] INT = unlabeled["int_fmt"] FLOAT = unlabeled["float_fmt"] nnbast = 0 for nbasi in nbas: nnbast += nbasi*(nbasi+1)/2 s = full.matrix((nnbast,)) # # Open file, locate label # aooneint = unformatted.FortranBinary(filename) labinfo = aooneint.find(label) # # Loop over records # for rec in aooneint: buf = rec.read(lbuf, FLOAT) ibuf = rec.read(lbuf, INT) length, = rec.read(1, INT) if length < 0: break for i, b in zip(ibuf[:length], buf[:length]): s[i-1] = b _S = blocked.triangular(nbas) off = 0 for isym in range(nsym): nbasi = nbas[isym]*(nbas[isym]+1)/2 _S.subblock[isym] = np.array(s[off:off+nbasi]).view(full.triangular) off += nbasi #aooneint.close() return _S
def test_blocked_random(self, mock_random): triangular([3, 2]).random() self.assertTrue(mock_random.calls, 2)