3.2.1. horton.correlatedwfn.geminal – Correlated wavefunction implementations¶
This is a general geminals class.
- 
class 
horton.correlatedwfn.geminal.Geminal(lf, occ_model, npairs=None, nvirt=None)¶ Bases:
objectArguments:
- lf
 - A LinalgFactory instance.
 - occ_model
 - Occupation model
 
Optional arguments:
- npairs
 - Number of electron pairs, if not specified, npairs = number of occupied orbitals
 - nvirt
 - Number of virtual orbitals, if not specified, nvirt = (nbasis-npairs)
 
- 
check_convergence(e0, e1, gradient, thresh)¶ Check convergence.
Arguements:
- e0, e1
 - Used to calculate energy difference e0-e1
 - gradient
 - The gradient, a OneIndex instance
 - thresh
 - Dictionary containing threshold parameters (‘energy’, ‘gradientmax’, ‘gradientnorm’)
 - Returns:
 - True if energy difference, norm of orbital gradient, largest element of orbital gradient are smaller than some threshold values.
 
- 
check_stepsearch(linesearch)¶ Check trustradius. Abort calculation if trustradius is smaller than 1e-8
- 
clear()¶ Clear all wavefunction information
- 
clear_dm()¶ Clear RDM information
- 
clear_geminal()¶ Clear geminal information
- 
clear_lagrange()¶ Clear lagrange information
- 
compute_rotation_matrix(coeff)¶ Compute orbital rotation matrix
- 
generate_guess(guess, dim=None)¶ Generate a guess of type ‘guess’.
Arguments:
- guess
 - A dictionary, containing the type of guess.
 
Optional arguments:
- dim
 - Length of guess.
 
- 
get_auxmatrix(select)¶ Get auxiliary matrices
- 
get_four_dm(select)¶ Get a density matrix (4-RDM). If not available, it will be created (if possible)
Arguments:
select
- 
get_one_dm(select)¶ Get a density matrix (1-RDM). If not available, it will be created (if possible)
Arguments:
- select
 - ‘ps2’, or ‘response’.
 
- 
get_three_dm(select)¶ Get a density matrix (3-RDM). If not available, it will be created (if possible)
Arguments:
select
- 
get_two_dm(select)¶ Get a density matrix (2-RDM). If not available, it will be created (if possible)
Arguments:
- select
 - ‘(r(esponse))ppqq’, or ‘(r(esponse))pqpq’.
 
- 
init_four_dm(select)¶ Initialize 4-RDM
Arguments
select
- 
init_one_dm(select)¶ Initialize 1-RDM as OneIndex object
The 1-RDM expressed in the natural orbital basis is diagonal and only the diagonal elements are stored.
Arguments
- select
 - ‘ps2’ or ‘response’.
 
- 
init_three_dm(select)¶ Initialize 3-RDM
Arguments
select
- 
init_two_dm(select)¶ Initialize 2-RDM as TwoIndex object
Only the symmetry-unique elements of the (response) 2-RDM are stored. These are matrix elements of type
\[Gamma_{p\bar{q}p\bar{q}}\](spin-up and spin-down (bar-sign)) or
\[Gamma_{p\bar{p}q\bar{q}}\]and are stored as elements \({pq}\) of two_dm_pqpq, and two_dm_ppqq.
Arguments
- select
 - ‘(r(esponse))ppqq’, or ‘(r(esponse))pqpq’.
 
- 
perm(a)¶ Calculate the permament of a matrix
Arguements
- a
 - A np array
 
- 
prod(lst)¶ 
- 
solve(one, two, core, orb, olp, **kwargs)¶ 
- 
solve_scf(one, two, core, orb, olp, **kwargs)¶ 
- 
update_auxmatrix(select, two_mo, one_mo=None)¶ Update auxiliary matrices
- 
update_ecore(new)¶ Update core energy
- 
update_four_dm(four_dm=None)¶ Update 2-RDM
Optional arguments:
- four_dm
 - When provided, this 4-RDM is stored.
 
- 
update_geminal(geminal=None)¶ Update geminal matrix
Optional arguments:
- geminal
 - When provided, this geminal matrix is stored.
 
- 
update_lagrange(lagrange=None, dim1=None, dim2=None)¶ Update Lagragne multipliers
Optional arguments:
- lagrange
 - When provided, this set of Lagrange multipliers is stored.
 
- 
update_one_dm(one_dm=None)¶ Update 1-RDM
Optional arguments:
- one_dm
 - When provided, this 1-RDM is stored.
 
- 
update_three_dm(three_dm=None)¶ Update 3-RDM
Optional arguments:
- three_dm
 - When provided, this 3-RDM is stored.
 
- 
update_two_dm(two_dm=None)¶ Update 2-RDM
Optional arguments:
- two_dm
 - When provided, this 2-RDM is stored.
 
- 
dimension¶ The number of unknowns (i.e. the number of geminal coefficients)
- 
ecore¶ The core energy
- 
geminal¶ The geminal coefficients
- 
lagrange¶ The Lagrange multipliers
- 
lf¶ The LinalgFactory instance
- 
nbasis¶ The number of basis functions
- 
nocc¶ The number of occupied orbitals
- 
npairs¶ The number of electron pairs
- 
nvirt¶ The number of virtual orbitals
- 
one_dm_ps2¶ Alpha 1-RDM
- 
one_dm_response¶ Alpha 1-RDM
- 
two_dm_ppqq¶ Alpha-beta PS2 (ppqq) 2-RDM
- 
two_dm_pqpq¶ Alpha-beta PS2 (pqpq) 2-RDM
- 
two_dm_rppqq¶ Alpha-beta (ppqq) 2-RDM
- 
two_dm_rpqpq¶ Alpha-beta (pqpq) 2-RDM