Published July 16, 2015 | Version 0.0.1
Software Open

DEHam: First Public Release

  • 1. GUIHERY
  • 2. CHILKURI
  • 3. ROLAND
  • 4. SUAUD
  • 5. SCEMAMA

Description

Double Exchange Hamiltonian

============================

The present code is a Fortran library to provide the Modified Double-Exchange Hamiltonian for systems with various geometries. The subroutine generates a library which can be used with custom or standard parallel/serial matrix diagonalization routines in order to get the spectrum of the Hamiltonian. The present code is capable of generating very large Hamiltonian matrix elements in a reasonable time. Further optimization of the subroutines is under progress.

Dependencies

--------------

1. Dependencies

1. [PETSc](https://www.mcs.anl.gov/petsc/documentation/installation.html) and [SLEPc](http://slepc.upv.es/documentation/current/docs/instal.htm)

2. [IRPF90](https://github.com/scemama/irpf90)

Building

---------

In order to build the source code one first needs to compile IRPF90 following the instructions given below:

* Install and build IFORTRAN/use GFORTRAN

* clone irpf90: https://github.com/scemama/irpf90.git

* build irpf90 and source it After building IRPF90 where the systems knows the location of the irpf90 executable one can simply compile the code with:

* make

Libraries

----------

The present code contains a subroutine called "unit_l1" which can be used in the following way with a C++/Fortran library.

call unit_l1(tl1, & tl2, & tktyp, & tistart, & txjjxy, & txjjz , & txtt , & tcountcol, & tntrou, & tcol,tval)

The inputs to the subroutine consist of the following variables: 1. The `tl1` and `tl2` are arrays that consist of the numbers of the two orbitals that interact and `tktyp` (also an array) is the type of exchange interaction between them. 2. The three variables `txjjxy`, `txjjz` and `txtt` represent the values of the coulomb integral, exchange integral and hopping integral respectively for the various types of orbitals. 3. `tistart` is the row number. The program provides the non-zero Hamiltonian matrix elements of the given row. 4. The elements are stored in the two vectors `tcol` and `tval`, where `tcol` contains the column adress and `tval` contains the non-zero value. This subroutine can be used in a parallel driver program written in C++ which diagonalizes the Hamiltonian matrix.

Notes

vijay.gopal.c@gmail.com

Files

slepc_version-0.0.1.zip

Files (19.5 kB)

Name Size Download all
md5:fcd1fc49874c2a5b0cf430bd5a5b3bf8
19.5 kB Preview Download

Additional details

Related works

References

  • High-Spin Chains and Crowns from Double-Exchange Mechanism [doi:10.3390/cryst6040039]