titan
Tight-binding suite code for electronic structure of nanomaterials
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.9%) to scientific vocabulary
Keywords
Repository
Tight-binding suite code for electronic structure of nanomaterials
Basic Info
- Host: GitHub
- Owner: TITAN-FZJ
- License: gpl-3.0
- Language: Fortran
- Default Branch: master
- Homepage: https://titan.iffgit.fz-juelich.de/TITAN/
- Size: 14.7 MB
Statistics
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 0
- Releases: 3
Topics
Metadata Files
README.md

TIme-dependent Transport and Angular momentum of Nanostructures
TITAN is publicly available under the GPLv3 license on GitHub.
A paper containing a detailed description of the method used in the code is in preparation. In the meantime, we shall greatly appreciate if scientific work done using TITAN will contain an explicit acknowledgement to the following reference:
Please also consider other publications done using the code.
Further documentation can be found at https://titan.iffgit.fz-juelich.de/TITAN/. The documentation is still in construction.
This program calculates the electric and spin excitations for bulk and thin films. It can describe Ferromagnetic Resonance (FMR) experiments and intrinsic Spin and Orbital Momentum Hall Effects (including Anomalous and Planar Hall effects), for example. A multi-orbital tight-binding model (as parametrized by Slater and Koster [1]) is used, with the el-el interaction described by a Hubbard-like hamiltonian [2]. The spin-orbit interaction is present, and a static magnetic field can be applied in any direction. Excitations are obtained in Kubo's linear response approach [3].
An applied AC electric field (described by a time-dependent potential
vector) that couples to the current density is applied, and the following
responses are calculated (for each site in the unit cell):
- local spin accumulations;
- local orbital momentum accumulations in each site;
- spin-orbit, exchange and external torques;
- effective magnetic fields;
- spin and charge currents;
- orbital momentum currents;
- DC components of pumped spin currents.
( currents need reimplementation for the new generalized cell)
The full 4x4 magnetic susceptibility matrix, including transverse and longitudinal blocks, is also evaluated.
The LDOS in each site, band structure, Fermi surface, and full exchange coupling tensor (including DMI and anisotropic terms are also implemented.
The program is currently written for 9 orbitals per site (1 s,3 p and 5 d), for a given set of nearest neighbours hopping parameters. The parameters obtained from DFT calculations can be found, for example, in the book of D. A. Papaconstantopoulus [4]. The generalized response functions are obtained as a function of the frequency within the Random-Phase Approximation, which are calculated from the mean-field counterpart. These ones are evaluated in terms of the monoeletronic Green functions. The integration in k-space (2D or 3D) is calculated using a uniformly spaced k-mesh. The integration over energy is done in the complex plane - part in the imaginary axis and part in the real axis (for ω≠0). The code is parallelized using openMP and MPI.
Plotting scripts (in Python) are provided in the 'scripts' folder.
[1] J. C. Slater and G. F. Koster, Simplified LCAO Method for the Periodic Potential Problem, Phys. Rev. 94, 1498 (1954).
[2] J. Hubbard, Electron Correlations in Narrow Energy Bands, Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences 276, 238 (1963).
[3] R. Kubo, Statistical-Mechanical Theory of Irreversible Processes. I. General Theory and Simple Applications to Magnetic and Conduction Problems, J. Phys. Soc. Jpn. 12, 570 (1957).
[4] D. A. Papaconstantopoulos, Handbook of the Band Structure of Elemental Solids. From Z = 1 to Z = 112, Boston, MA: Springer (1986).
OBS: Legacy version uses DFT parameters as described in
[5] O. K. Andersen and O. Jepsen, Phys. Rev. Lett. 53, 2571 (1984).
with parameters provided by A. B. Klautau.
Example files can be found in the examples folder.
!*******************************************************************************!
! CHOOSE WHAT TO CALCULATE !
! Options: !
! 0 - Test part (before self-consistency) !
! 1 - Self-consistency only !
! 2 - LDOS as a function of the energy !
! 3 - LDOS and exchange interactions as a function of energy !
! 4 - Band structure !
! 5 - Charge and spin density at Fermi surface !
! 6 - Exhange interactions and anisotropies (full tensor Jij) !
! 7 - Local susceptibility as a function of energy !
! 8 - Parallel currents, disturbances, susceptibilities, torques and !
! effective fields as a function of energy !
! 9 - dc-limit as a function of magnetic field (abs, theta or phi) !
! (use 'emin' as frequency) !
! 10 - Gilbert Damping using Torque correlation models !
! 11 - Real-time propagation (using eigenstates only)
!===============================================================================!
! OPTIONAL RUNNING VARIABLES !
! GSL - Calculate ground state of Orbital Angular Momentum L !
! verbose - Write intermediate steps and progress ars !
! ry2ev - Convert energy units to eV !
! tesla - Read values of static magnetic field in tesla !
! debug - Turn on to use this optional variable for debugging !
! createfiles - Just create files (WARNING: overwrite existing files!) !
! addresults - Add results to existing files, instead of creating new ones !
! (files MUST exist) !
! slatec - Use non-linear root finder dnsqe from Slatec library !
! kpoints - Write kpoints and weights into files !
! lineargfsoc - Adds linear order SOC in the GF !
! linearsoc - Adds linear order SOC in the susceptibility !
! nojac - Perform self-consistency without using the jacobian !
! hfresponses - Use Hartree-Fock response functions !
! ontheflysc - Writes intermediate self-consistency steps to file !
! rotatemag - Rotate the magnetization to the direction of the field !
! nolb - Remove Orbital Zeeman from the hamiltonian !
! nodiag - Don't diagonalize susceptibilities !
! sortfiles - Only sort files (no calculation is done) !
! writeonscreen - Also write some results on output files !
! sha - Only calculate the SHA for input parameters !
! lgtv - Only calculate total longitudinal and transverse currents !
!===============================================================================!
! PARAMETERS !
! Slater and Koster parameters given in Ref. [4] (above) can be found in !
! the 'parameters' folder. !
!===============================================================================!
! INTEGRATION VARIABLES !
! k-points are obtained using equally spaced points generated in the 2D or 3D !
! parallelogram. !
! !
! Legacy version uses Cunningham special points for BCC110 and FCC100 !
! as described in Ref.: !
! S. Cunningham, Phys. Rev. B 10, 4988 (1974) !
! !
! Energy integration use Gauss-Legendre quadrature !
!===============================================================================!
! BAND STRUCTURE !
! k-points must be listed in file 'kbands' and the path is given in the input. !
! e.g.: !
-> band = G N M G
! where the file 'kbands' contains !
G 0.0 0.0 0.0
N 0.0 0.5 0.0
M 0.5 0.5 0.0
! This is also used to calculate the q-dependent susceptibility !
!*******************************************************************************!
! To stop the program: !
! - after an energy step, just create a file called 'stop' !
! (e.g., in terminal: touch stop) !
! - after any layer/field calculation, just create a file called 'stopout' !
! (e.g., in terminal: touch stopout) !
!*******************************************************************************!
Compiling the code
Download:
First clone the repository on your local computer or supercomputer of choice.
batch
git clone https://iffgit.fz-juelich.de/titan/TITAN.git
cd TITAN/build
Compile:
To use TITAN in the super computers, the compiler and MPI modules, as well as CMake must be loaded.
For example, to use the intel compiler:
module load Intel IntelMPI CMake
or to use GFortran:
module load GCC ParaStationMPI CMake
TITAN uses CMake to create the Makefile for compilation. The following options are available:
batch
cmake ../ -DPLATFORM=system [-DCOMPILER=compiler -DDEBUG=ON]
make -j12
The system is defined for the intel compiler, and can be jureca, booster (for JURECA Booster), juwels, jusuf, iff.
TITAN was tested for the compilers: ifort (default), gfortran (gnu) and pgi.
The generated binary can be found in TITAN/bin/, and its filename contains the system, compiler (if not ifort) and debug if the respective flag was used.
Running the code
After compiling you can start running the code.
An example calculation can be found in TITAN/example
SLURM
One example of a submission script used for the SLURM workload manager: ```batch
!/bin/bash -x
SBATCH --nodes=1
SBATCH -J JobName
SBATCH --ntasks-per-node=1
SBATCH --cpus-per-task=24
SBATCH -e error-%j
SBATCH -o output-%j
SBATCH --mail-user=your@mail
SBATCH --mail-type=ALL
SBATCH --partition=batch
SBATCH --time=1:00:00
module load Intel IntelMPI NAG/Mark26
export OMPNUMTHREADS=${SLURMCPUSPERTASK} export MKLNUM_THREADS=1
export OMPSTACKSIZE=150m export KMPAFFINITY=scatter
srun ~/TITAN/bin/titanjureca.exe --exports=NAGKUSARIFILE --exports=OMPNUMTHREADS --exports=MKLNUMTHREADS --exports=KMPAFFINITY ```
Linux
To directly run the code with 2 MPI processes and 4 openMP threads:
batch
export OMP_NUM_THREADS=4
mpirun -np 2 ~/TITAN/bin/titan.exe --exports=OMP_NUM_THREADS
Automatic tests
TITAN contains various examples that are used as automatic tests using gitlab-ci. They are located in TITAN/examples.
Owner
- Name: TITAN-FZJ
- Login: TITAN-FZJ
- Kind: organization
- Repositories: 1
- Profile: https://github.com/TITAN-FZJ
Citation (CITATION.cff)
cff-version: 1.2.0
title: TITAN
message: >-
If you use this software, please cite it using the
metadata from the CITATION.cff file.
type: software
authors:
- family-names: Souza Mendes Guimarães
given-names: Filipe
orcid: https://orcid.org/0000-0002-5618-6727
- family-names: Suckert
given-names: Jens Renè
orcid: https://orcid.org/0000-0003-2961-8333
- family-names: Aceves Rodriguez
given-names: Uriel Allan
orcid: https://orcid.org/0000-0001-9530-0441
- family-names: Hamamera
given-names: Hanan
orcid: https://orcid.org/0000-0003-3699-2200
- family-names: Brinker
given-names: Sascha
orcid: https://orcid.org/0000-0002-7077-1244
- family-names: Bouaziz
given-names: Juba
orcid: https://orcid.org/0000-0003-3605-0563
- family-names: dos Santos Dias
given-names: Manuel
orcid: https://orcid.org/0000-0002-8835-5580
- family-names: Lounis
given-names: Samir
orcid: https://orcid.org/0000-0003-2573-2841
identifiers:
- type: doi
value: 10.5281/zenodo.8099072
description: The concept DOI of this software
url: 'https://titan.iffgit.fz-juelich.de/TITAN/'
keywords:
- band-structure
- tight-binding
- magnetism
- coupling
- excitation
- electronic-structure
- susceptibility
- exchange-interaction
license: GPL-3.0-or-later