Git Product home page Git Product logo

chem-william / inelastica Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tfrederiksen/inelastica

0.0 0.0 0.0 23.47 MB

Python package for eigenchannels, vibrations and inelastic electron transport based on SIESTA/TranSIESTA DFT

Home Page: https://tfrederiksen.github.io/inelastica

License: GNU Lesser General Public License v3.0

Python 75.91% Fortran 3.05% Mathematica 16.46% Batchfile 0.06% Jupyter Notebook 4.51%

inelastica's Introduction

License: LGPL v3 Build Status Codacy Badge

Inelastica

Inelastica is both the name of this whole Python package as well as that of an included script to compute inelastic transport characteristics. Inelastica is based on the SIESTA/TranSIESTA DFT codes.

The project was initiated around 2003-2005 by Thomas Frederiksen and Magnus Paulsson while they worked in the group of Mads Brandbyge at the Technical University of Denmark.

Features

Inelastica contains a number of scripts such as

  • geom2geom: Geometry conversion between different file formats
  • Bandstructures: Computation of electron and phonon band structures
  • pyTBT: A Python version of tbtrans for elastic electron transport
  • EigenChannels: Eigenchannel analysis and generation of real-space scattering state wave functions
  • Phonons: Vibration modes/frequencies and electron-vibration couplings
  • Inelastica: Inelastic transport characteristics (IETS spectroscopy, inelastic shot noise, local heating, etc.)
  • STM: Calculation of STM images using the Bardeen approximation

Scripting

As alternative to the command line interface (CLI), it is also possible to interact with Inelastica via scripting, e.g.,

from Inelastica import EigenChannels, Phonons, iets

# Eigenchannels
options = EigenChannels.GetOptions('ECrun') # get default options
options.energy = 0.50 # overwrite the default value
options.fn = 'TSrun/RUN.fdf'
ecrun = EigenChannels.main(options) # Compute EigenChannels
left_states = ecrun.ECleft
teig = ecrun.EigTleft[:options.numchan].real

# Phonons and EPC couplings
options = Phonons.GetOptions('-F 5 -L 10 PHrun')
options.DynamicAtoms = [6, 9] # non-consecutive atoms
options.EPHAtoms = options.DynamicAtoms
options.CalcCoupl = True
phrun = Phonons.main(options) # Compute Phonons
hw = phrun.hw
normal_modes = phrun.UU.real

# IETS simulation
options = iets.GetOptions('--LOEscale 0 INrun')
options.DeviceFirst = 5
options.DeviceLast = 10
options.PhononNetCDF = 'PHrun/Output.nc'
options.fn = 'TSrun/RUN.fdf'
# Compute IETS with Inelastica
V, I, dI, ddI, BdI, BddI = iets.main(options)
IETS = BddI / BdI

Dependencies

Before installation of Inelastica the following packages are required

  • numpy >= 1.8
  • scipy
  • netCDF4

Installation

Manual installation of Inelastica is performed with the command

python setup.py install --prefix=<prefix>
# or
python setup.py install --home=<my-python-home>

One may also wish to set the following environment variables

export PYTHONPATH=<my-python-home>/lib/python/
export PATH=$PATH:<my-python-home>/bin/

For the required compilation of Inelastica's Fortran modules (f2py) one may also need

sudo apt install libblas-dev liblapack-dev python-dev gfortran

Citations

If used to produce scientific contributions please include relevant citations to

@Article{general-methods,
  Title = {Inelastic transport theory from first principles: Methodology and application to nanoscale devices},
  Author = {Frederiksen, T. and Paulsson, M. and Brandbyge, M. and Jauho, A.-P.},
  Journal = {Phys. Rev. B},
  Year = {2007},
  Number = {20},
  Pages = {205413},
  Volume= {75},
  Doi = {10.1103/PhysRevB.75.205413},
}

@Article{eigenchannels,
  Title = {Transmission eigenchannels from nonequilibrium Green's functions},
  Author = {Paulsson, M. and Brandbyge, M.},
  Journal = {Phys. Rev. B},
  Year = {2007},
  Number = {11},
  Pages = {115117},
  Volume = {76},
  Doi = {10.1103/PhysRevB.76.115117},
}

@Article{stm,
  Title = {Scanning tunneling microscopy current from localized basis orbital density functional theory},
  Author = {Gustafsson, A. and Paulsson, M.},
  Journal = {Phys. Rev. B},
  Year = {2016},
  Pages = {115434},
  Volume = {93},
  Doi = {10.1103/PhysRevB.93.115434},
}

@Article{noise,
  Title = {Inelastic shot noise characteristics of nanoscale junctions from first principles},
  Author = {Avriller, R. and Frederiksen, T.},
  Journal = {Phys. Rev. B},
  Year = {2012},
  Pages = {155411},
  Volume = {86},
  Doi = {10.1103/PhysRevB.86.155411},
}

Documentation

Some documentation may be found here.

Contributions, issues and bugs

Contributions are highly appreciated.

If you find any bugs please form a bug report/issue

If you have a fix please consider adding a pull request.

License

The Inelastica license is LGPL, please see the LICENSE file.

inelastica's People

Contributors

alguaa avatar brandimarte avatar eminamitani avatar jonaslb avatar mpn2 avatar tfrederiksen avatar zerothi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.