2
0
mirror of https://github.com/LCPQ/DEHam synced 2024-07-30 09:04:19 +02:00
Go to file
2023-01-12 16:11:20 +01:00
examples Added bigger examples and improved notebook functions. 2020-05-01 13:16:05 +02:00
notebooks Added bigger examples and improved notebook functions. 2020-05-01 13:16:05 +02:00
src Fixed bug in reading true or false for FAM1. 2022-06-13 17:51:24 +02:00
.gitignore Changes in .gitignore for MacOS. 2020-04-29 17:28:58 +02:00
LICENCE added licence file 2016-12-20 12:37:30 +01:00
Makefile Update for new IRPF90 version 2022-04-23 15:49:11 +02:00
README.md Update README.md 2023-01-12 16:11:20 +01:00

DOI

DEHam

Double Exchange Hamiltonian: Complete Version

(under GNU GENERAL PUBLIC LICENSE v2)

This program can perform Exact diagonalization calculations of various types of model Hamiltonians. It is especially optimized for the t-J (or Double Exchange) type model Hamiltonians. The core feature which the program is specialized for is the adressing of determinant in an efficient manner to quickly construct the Hamiltonian non-zero matrix-elements. Once the Hamiltonian is constructed in its sparse format, it is stored in distributed memory for all linear algebra operations.

The main work of diagonalizing the Hamiltonian is performed using PETSc and SLEPc helper functions. These functions return the eigenvectors which are not stored to disk by default due to their large size.

This project also contains subroutines which analyze the wavefunction in its distributed memory form and calculates the various observables. The output of the program are the energies and the various observables such as the total Spin, various Spin-Spin correlation functions, and one-and two-body density matrices.

Dependencies

  1. PETSc and SLEPc

  2. IRPF90

Compiling

  1. Export environment variables for PETSc and SLEPc
export PETSC_DIR=${PATH_TO_PETSC_INSTALLATION}
export SLEPC_DIR=${PATH_TO_SLEPC_INSTALLATION}
export C_INCLUDE_PATH+=:$PETSC_DIR/include/:$SLEPC_DIR/include:$PETSC_DIR/arch-linux2-c-debug/include/:$SLEPC_DIR/arch-linux2-c-debug/include
# The "arch-linux2-c-debug" directory can have different names depending on PETSC and SLEPC installation procedure.
  1. Make the executable
make ex1

Using DEHam

  1. The DEHam program requires an input file which has the topology of the Hamiltonian and the various parameters as explained below in a sample inputfile:
8     # The number of orbitals (total)
140   # The largest number of non-zero elements per row (Multiple of Ndet)
1     # The total number of processors used in parallel (Multiple of Ndet)
1     # The number of holes
0     # The Sz (nalpha-nbeta-1) (odd spins) value or (nalpha-nbeta) (even spins) 
true     # Restrict the hole to the 1'st (i.e. half of natom) Family of states. *false* for no restrictions
1,2,3,1,2,3,4,5,6,7 # The topology of the system is specified here
2,3,4,8,7,6,5,6,7,8 # first and second line contain the two sites linked
1,1,1,2,2,2,2,3,3,3 # third line contains the type of link (1 for t or J, 2 for K and 3 for J in the second family of states)
.1430,-0.20,0.0000  # The three types of links this line gives J, K, J2 along x axis
.1430,-0.20,0.0000  # The three types of links this line gives J, K, J2 along y axis
-1.00,0.0,0.00        # This line gives t
0.,0.,0.,0.,0.,0.,0.,0.,0. # Energy of each orbital + *one extra term*
2                   # The total number of roots
1                   # I a1   The position of the first 
1                   # I a2   SBox (starts from 0 )
1                   # I b1
1                   # I b2
1                   # II  The positions of the second
1                   # II  SBox (starts from 0)
1                   # II 
1                   # II
1                   # III
1                   # III The positions of the third
1                   # III SBox (starts from 0)
1                   # III
1                   # positio of the hole
0                   # fix the position of the first hole during the CI
0                   # fix the position of the second hole during the CI
0                   # Print the wavefunction. It is stored in the FIL666 file after the run
  1. running DEHam
mpiexec -n [nprocs] ./bin/ex1 input_file.inp

Sample Application

A 2D t-J model Hamiltonian description and setup for using DEHam to solve for few low lying states is provided in the notbooks folder. Please have a look about the details of using DEHam to study t-J Hamiltonians.

Publications using this code please cite the following publication

  1. High-Spin Chains and Crowns from Double-Exchange Mechanism doi:10.3390/cryst6040039