titan

Tight-binding suite code for electronic structure of nanomaterials

https://github.com/titan-fzj/titan

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

band-structure coupling electronic-structure exchange-interaction excitation magnetism susceptibility tight-binding
Last synced: 6 months ago · JSON representation ·

Repository

Tight-binding suite code for electronic structure of nanomaterials

Basic Info
Statistics
  • Stars: 4
  • Watchers: 2
  • Forks: 2
  • Open Issues: 0
  • Releases: 3
Topics
band-structure coupling electronic-structure exchange-interaction excitation magnetism susceptibility tight-binding
Created over 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

README.md

TIme-dependent Transport and Angular momentum of Nanostructures

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:

DOI

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

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

GitHub Events

Total
Last Year