All Projects → zerothi → Sisl

zerothi / Sisl

Licence: lgpl-3.0
Scientific Python toolbox for large scale tight-binding and electronic structure calculations (DFT and NEGF analysis)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Sisl

Root
The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
Stars: ✭ 1,377 (+1955.22%)
Mutual labels:  geometry, physics
DynamicalBilliards.jl
An easy-to-use, modular, extendable and absurdly fast Julia package for dynamical billiards in two dimensions.
Stars: ✭ 97 (+44.78%)
Mutual labels:  geometry, physics
cas
Cellular Automata Simulator
Stars: ✭ 22 (-67.16%)
Mutual labels:  geometry, physics
Physicalconstants.jl
Collection of fundamental physical constants with uncertainties. It supports arbitrary-precision constants
Stars: ✭ 55 (-17.91%)
Mutual labels:  physics
Gulp Json Editor
A gulp plugin to edit JSON objects
Stars: ✭ 55 (-17.91%)
Mutual labels:  gulp
Generator Kittn
The Yeoman Kittn Generator
Stars: ✭ 63 (-5.97%)
Mutual labels:  gulp
Gulp Wp Pot
Gulp plugin to generate pot file for WordPress plugins and themes
Stars: ✭ 67 (+0%)
Mutual labels:  gulp
Mcmd
Monte Carlo and Molecular Dynamics Simulation Package
Stars: ✭ 52 (-22.39%)
Mutual labels:  physics
Pymesh
Geometry Processing Library for Python
Stars: ✭ 1,135 (+1594.03%)
Mutual labels:  geometry
Nebula Trifid
Nebula Trifid
Stars: ✭ 62 (-7.46%)
Mutual labels:  physics
Aliphysics
ALICE Analysis Repository
Stars: ✭ 61 (-8.96%)
Mutual labels:  physics
Phidl
Python GDS layout and CAD geometry creation
Stars: ✭ 56 (-16.42%)
Mutual labels:  geometry
Grunt2gulp.js
Converts Grunt task files, gruntfile.js, to Gulp files.
Stars: ✭ 64 (-4.48%)
Mutual labels:  gulp
Sopgi
A small VEX raytracer for SideFX Houdini with photon mapping global illumination and full recursive reflections and refractions
Stars: ✭ 55 (-17.91%)
Mutual labels:  geometry
Bemgo
Quick start of developing projects using Gulp build system and BEM methodology.
Stars: ✭ 66 (-1.49%)
Mutual labels:  gulp
Generator Dhboilerplate
Boilerplate made by David Hellmann
Stars: ✭ 54 (-19.4%)
Mutual labels:  gulp
Korma
Mathematics library focused on geometry for Multiplatform Kotlin 1.3
Stars: ✭ 65 (-2.99%)
Mutual labels:  geometry
Gulp Apidoc
📄 RESTful web API Documentation Generator
Stars: ✭ 60 (-10.45%)
Mutual labels:  gulp
Livro Sem Apego
📚 Um site de doação de livros, sem fins lucrativos! o/
Stars: ✭ 58 (-13.43%)
Mutual labels:  gulp
Phplint
Lightning fast concurrent PHP linter for Node.js, Grunt & Gulp! ⚡️
Stars: ✭ 62 (-7.46%)
Mutual labels:  gulp

sisl

Install sisl using PyPI Install sisl using conda DOI for citation Join discussion on Discord

License: LGPL v3 Build Status Checkout sisl code coverage Donate money to support development of sisl

Why sisl

The Python library sisl was born out of a need to handle(create and read), manipulate and analyse output from DFT programs. It was initially developed by Nick Papior (co-developer of Siesta) as a side-project to TranSiesta and TBtrans to efficiently analyse TBtrans output for N-electrode calculations.
Since then it has expanded to accommodate a rich set of DFT code input/outputs such as (but not limited to) VASP, OpenMX, BigDFT, Wannier90.

A great deal of codes are implementing, roughly, the same thing. However, every code implements their own analysis and post-processing utilities which typically turns out to be equivalent utilities only having the interface differently.

sisl tries to solve some of the analysis issues by creating a unified scripting approach in Python which does analysis using the same interface, regardless of code being used. For instance one may read the Kohn-Sham eigenvalue spectrum from various codes and return them in a consistent manner so the post-processing is the same, regardless of code being used.

sisl is also part of the training material for a series of workshops hosted here.

In some regards it has overlap with ASE and sisl also interfaces with ASE.

Example use

Here we show 2 examples of using sisl together with Siesta.

To read in a Hamiltonian from a Siesta calculation and calculate the DOS for a given Monkhorst-Pack grid one would do:

import numpy as np
import sisl
H = sisl.get_sile('RUN.fdf').read_hamiltonian()
mp = sisl.MonkhorstPack(H, [13, 13, 13])
E = np.linspace(-4, 4, 500)
DOS = mp.apply.average.DOS(E)
from matplotlib import pyplot as plt
plt.plot(E, DOS)

Which calculates the DOS for a 13x13x13 Monkhorst-Pack grid.

Another common analysis is real-space charge analysis, the following command line subtracts two real-space charge grids and writes them to a CUBE file:

sgrid reference/Rho.grid.nc --diff Rho.grid.nc --geometry RUN.fdf --out diff.cube

which may be analysed using VMD, XCrySDen or other tools.

Installation

Installing sisl using PyPi or Conda is the easiest:

pip3 install sisl
pip3 install sisl[analysis] # also installs tqdm and xarray
# or
conda install -c conda-forge sisl

If performing a manual installation, these packages are required:

  • A C- and fortran-compiler
  • numpy (1.13 or later)
  • scipy (0.18 or later)
  • netCDF4
  • setuptools
  • pyparsing (1.5.7 or later)
  • pytest, optional dependency for running the tests
  • matplotlib, encouraged optional dependency
  • tqdm, encouraged optional dependency
  • xarray, optional dependency

Subsequently manual installation may be done using this command:

python3 setup.py install --prefix=<prefix>

If trying to install without root access, you may be required to use this command:

python3 setup.py install --user --prefix=<prefix>

Once installed, the installation can be tested by executing the following:

pytest --pyargs sisl

Everyday use of sisl

There are different places for getting information on using sisl, here is a short list of places to search/ask for answers:

If sisl was used to produce scientific contributions, please use this DOI for citation. We recommend to specify the version of sisl in combination of this citation:

@misc{zerothi_sisl,
  author = {Papior, Nick},
  title  = {sisl: v<fill-version>},
  year   = {2020},
  doi    = {10.5281/zenodo.597181},
  url    = {https://doi.org/10.5281/zenodo.597181}
}

To get the BibTeX entry easily you may issue the following command:

sdata --cite

which fills in the version number.

Help sisl help you!

  • If you've ideas of missing features
  • If you've ideas for improving documentation
  • If you've found a bug
  • If you've found a documentation error
  • If you've created a tutorial

Then please share them here!

All of the above may be done via a pull-request or by opening an issue.

Remember:

No contribution is too small!

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].