pauxy.systems package¶
Submodules¶
pauxy.systems.generic module¶
-
class
pauxy.systems.generic.Generic(nelec=None, h1e=None, chol=None, ecore=None, inputs={}, verbose=False)[source]¶ Bases:
objectGeneric system defined by ab-initio Hamiltonian.
Can be created by either passing the one and two electron integrals directly or initialised from integrals stored in QMCPACK hdf5 format. If initialising from file the `inputs’ optional dictionary should be populated.
Parameters: - nelec (tuple) – Number of alpha and beta electrons.
- h1e (:class:`numpy.ndarray’) – One-electron integrals. Optional. Default: None.
- chol (:class:`numpy.ndarray’) – Factorized 2-electron integrals of shape (naux, nbasis, nbasis). Optional. Default: None.
- ecore (float) – Core energy.
- inputs (dict) – Input options defined below.
- nup (int) – Number of up electrons.
- ndown (int) – Number of down electrons.
- integrals (string) – Path to file containing one- and two-electron integrals in QMCPACK format.
- threshold (float) – Cutoff for cholesky decomposition or minimum eigenvalue.
- verbose (bool) – Print extra information.
-
H1¶ One-body part of the Hamiltonian. Spin-dependent by default.
Type: numpy.ndarray
-
h1e_mod¶ Modified one-body Hamiltonian.
Type: numpy.ndarray
-
chol_vecs¶ Cholesky vectors.
Type: numpy.ndarray
pauxy.systems.hubbard module¶
Hubbard model specific classes and methods
-
class
pauxy.systems.hubbard.Hubbard(inputs, verbose=False)[source]¶ Bases:
objectHubbard model system class.
1 and 2 case with nearest neighbour hopping.
Parameters: inputs (dict) – dictionary of system input options. -
T¶ Hopping matrix
Type: numpy.array
-
gamma¶ Super matrix (not currently implemented).
Type: numpy.array
-
-
pauxy.systems.hubbard.decode_basis(nx, ny, i)[source]¶ Return cartesian lattice coordinates from basis index.
Consider a 3x3 lattice then we index lattice sites like:
(0,2) (1,2) (2,2) 6 7 8 (0,1) (1,1) (2,1) -> 3 4 5 (0,0) (1,0) (2,0) 0 1 2
i.e., i = i_x + n_x * i_y, and i_x = i%n_x, i_y = i//nx.
Parameters:
-
pauxy.systems.hubbard.encode_basis(i, j, nx)[source]¶ Encode 2d index to one dimensional index.
See decode basis for layout.
Parameters: Returns: ix – basis index.
Return type:
-
pauxy.systems.hubbard.kinetic(t, nbasis, nx, ny, ks)[source]¶ Kinetic part of the Hamiltonian in our one-electron basis.
Parameters: Returns: T – Hopping Hamiltonian matrix.
Return type: numpy.array
-
pauxy.systems.hubbard.kinetic_pinning(t, nbasis, nx, ny)[source]¶ Kinetic part of the Hamiltonian in our one-electron basis.
Adds pinning fields as outlined in [Qin16]. This forces periodic boundary conditions along x and open boundary conditions along y. Pinning fields are applied in the y direction as:
\[\nu_{i\uparrow} = -\nu_{i\downarrow} = (-1)^{i_x+i_y}\nu_0,\]for \(i_y=1,L_y\) and \(\nu_0=t/4\).
Parameters: Returns: T – Hopping Hamiltonian matrix.
Return type: numpy.array
-
pauxy.systems.hubbard.kinetic_pinning_alt(t, nbasis, nx, ny)[source]¶ Kinetic part of the Hamiltonian in our one-electron basis.
Adds pinning fields as outlined in [Qin16]. This forces periodic boundary conditions along x and open boundary conditions along y. Pinning fields are applied in the y direction as:
\[\nu_{i\uparrow} = -\nu_{i\downarrow} = (-1)^{i_x+i_y}\nu_0,\]for \(i_y=1,L_y\) and \(\nu_0=t/4\).
Parameters: Returns: T – Hopping Hamiltonian matrix.
Return type: numpy.array
-
pauxy.systems.hubbard.kpoints(t, nx, ny)[source]¶ Construct kpoints for system.
Parameters: Returns: - kp (numpy array) – System kpoints Note these are not sorted according to eigenvalue energy but rather so as to conform with numpys default kpoint indexing for FFTs.
- kfac (float) – Kpoint scaling factor (2pi/L).
- eigs (numpy array) – Single particle eigenvalues associated with kp.