Skip to content

LMP2 converence problems #1

@pulkin

Description

@pulkin

LMP2, generally, converges only down to a limitedly small value. The reason may be improper transformation when transforming residuals into updated amplitudes.

local-pyscf/lmp2.py

Lines 101 to 111 in 7fca442

basis = fock_basis_local[k]
virt_e = fock_energies_local[k]
# dual = numpy.linalg.inv(basis).T
v = common.transform(v, basis)
denominator = fock_occ[k[0], k[0]] + fock_occ[k[1], k[1]] - virt_e[:, numpy.newaxis] - virt_e[numpy.newaxis, :]
dt = v / denominator
dt_pao = common.transform(dt, basis.T)
result[k] = dt_pao
t2_diff = max(t2_diff, numpy.abs(dt_pao).max())

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions