All Projects → tfrederiksen → inelastica

tfrederiksen / inelastica

Licence: LGPL-3.0 license
Python package for eigenchannels, vibrations and inelastic electron transport based on SIESTA/TranSIESTA DFT

Programming Languages

python
139335 projects - #7 most used programming language
Mathematica
289 projects
Jupyter Notebook
11667 projects
fortran
972 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to inelastica

TB2J
a python package for computing magnetic interaction parameters
Stars: ✭ 35 (+59.09%)
Mutual labels:  dft, siesta
phoebe
A high-performance framework for solving phonon and electron Boltzmann equations
Stars: ✭ 33 (+50%)
Mutual labels:  physics, electron-phonon
cplot
Function plotter
Stars: ✭ 27 (+22.73%)
Mutual labels:  physics
canvas-fluid-solver
Real-time fluid simulation in Javascript.
Stars: ✭ 45 (+104.55%)
Mutual labels:  physics
GFDL atmos cubed sphere
The GFDL atmos_cubed_sphere dynamical core code
Stars: ✭ 34 (+54.55%)
Mutual labels:  physics
InterfaceInteraction
Interact your app's interface elements with different effects!
Stars: ✭ 57 (+159.09%)
Mutual labels:  physics
SciNet PyTorch
A PyTorch implementation of the SciNet Paper
Stars: ✭ 34 (+54.55%)
Mutual labels:  physics
ooura
Javascript port of Ooura FFT implementation
Stars: ✭ 23 (+4.55%)
Mutual labels:  dft
gopem
GUI for OPEM library
Stars: ✭ 20 (-9.09%)
Mutual labels:  physics
DMFTwDFT
DMFTwDFT: An open-source code combining Dynamical Mean Field Theory with various Density Functional Theory packages
Stars: ✭ 39 (+77.27%)
Mutual labels:  dft
pymae
Materials for the book "Python for Mechanical and Aerospace Engineering"
Stars: ✭ 56 (+154.55%)
Mutual labels:  physics
physx-js
PhysX for JavaScript
Stars: ✭ 80 (+263.64%)
Mutual labels:  physics
verlet
build and animate objects according to verlet physics. pure golang library
Stars: ✭ 26 (+18.18%)
Mutual labels:  physics
piranha
The Piranha computer algebra system.
Stars: ✭ 91 (+313.64%)
Mutual labels:  physics
spicyphysics
Sup bois, here's my work
Stars: ✭ 22 (+0%)
Mutual labels:  physics
good-reads
List of inspiring articles, blogs, tutorials and books. Tech stuff.
Stars: ✭ 14 (-36.36%)
Mutual labels:  physics
use-spring
Hooke's law hook
Stars: ✭ 53 (+140.91%)
Mutual labels:  physics
TimeEvolvingMPO
A Python 3 package to efficiently compute non-Markovian open quantum systems.
Stars: ✭ 43 (+95.45%)
Mutual labels:  physics
ThePhysicsHub
The Physics Hub is an open source physics simulations project that is being developed by physics students worldwide and aims to deliver clear and easy to understand physics simulations free for everyone!
Stars: ✭ 116 (+427.27%)
Mutual labels:  physics
Radial-Engine
3D Game engine with an editor(Qt) using OpenGL
Stars: ✭ 23 (+4.55%)
Mutual labels:  physics

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].