Computer Lab: Difference between revisions
From phys824
Jump to navigationJump to search
No edit summary |
|||
Line 15: | Line 15: | ||
</pre> | </pre> | ||
== | ==JUPYTER notebooks for hands-on computer lab sessions== | ||
== | ==Python references== | ||
* J. M. Stewart, Python for Scientists (Cambridge University Press, Cambridge, 2014). ([https://delcat.worldcat.org/title/python-for-scientists/oclc/885338129&referer=brief_results PDF from UD library]) | |||
* | |||
* [http://www.scipy-lectures.org/ Scipy lecture notes] | * [http://www.scipy-lectures.org/ Scipy lecture notes] | ||
* [https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html NumPy for Matlab users] | * [https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html NumPy for Matlab users] | ||
* [http://www.huyng.com/posts/python-performance-analysis/ Timing Python script performance] | * [http://www.huyng.com/posts/python-performance-analysis/ Timing Python script performance] | ||
== | ==KWANT references== | ||
* [https:// | *[https://kwant-project.org/doc/1/ KWANT documentation] | ||
* [https:// | *[https://kwant-project.org/doc/1/reference/kwant.solvers Selecting matrix solvers in KWANT] | ||
* | *[https://github.com/jbweston/kwant_tools KWANT tools] | ||
*[http://kwant-project.org/doc/kwant-screencast-2014 VIDEO: Introduction to KWANT] | |||
* | *[https://kwant-project.org/doc/1/tutorial/ Learning KWANT through examples] | ||
* [ | *[https://kwant-project.org/mm16 Interactive tutorials using Jupyter Notebooks] | ||
*[https://kwant-project.org/doc/1/tutorial/discretize Discretization of continuous Hamiltonians] | |||
*[[Conductance of graphene nanoribbons]] | |||
*[[Conductance of topological insulators built from graphene nanoribbons]] | |||
*[[Spin Hall effect in four terminal devices]] | |||
*[[Topological Hall effect in four terminal devices]] | |||
===Charge and spin densities in quantum dots via equilibrium density matrix=== | ===Charge and spin densities in quantum dots via equilibrium density matrix=== | ||
Line 106: | Line 70: | ||
* [http://www.physics.udel.edu/~bnikolic/teaching/phys824/MATLAB/self_energy.m self_energy.m] (Self-energy of the semi-infinite ideal metallic lead modeled on the square tight-binding lattice - the code shows how to convert analytical formulas of the lead surface Green function into a working program) | * [http://www.physics.udel.edu/~bnikolic/teaching/phys824/MATLAB/self_energy.m self_energy.m] (Self-energy of the semi-infinite ideal metallic lead modeled on the square tight-binding lattice - the code shows how to convert analytical formulas of the lead surface Green function into a working program) | ||
* [[Media:transmission.m|transmission.m]] (Transmission function for 1D tight-binding chain with spin-dependent terms) | * [[Media:transmission.m|transmission.m]] (Transmission function for 1D tight-binding chain with spin-dependent terms) | ||
== Density functional theory with GPAW package== | == Density functional theory with GPAW package== |
Revision as of 06:33, 29 August 2020
Python and package installation
- Install Anaconda
- Install KWANT package:
conda install -c conda-forge kwant
- Install PythTB package:
pip install pythtb --upgrade
- Install and test ASE package:
pip install --upgrade --user ase python -m ase test
JUPYTER notebooks for hands-on computer lab sessions
Python references
- J. M. Stewart, Python for Scientists (Cambridge University Press, Cambridge, 2014). (PDF from UD library)
- Scipy lecture notes
- NumPy for Matlab users
- Timing Python script performance
KWANT references
- KWANT documentation
- Selecting matrix solvers in KWANT
- KWANT tools
- VIDEO: Introduction to KWANT
- Learning KWANT through examples
- Interactive tutorials using Jupyter Notebooks
- Discretization of continuous Hamiltonians
- Conductance of graphene nanoribbons
- Conductance of topological insulators built from graphene nanoribbons
- Spin Hall effect in four terminal devices
- Topological Hall effect in four terminal devices
Charge and spin densities in quantum dots via equilibrium density matrix
DOS of 1D disordered nanowire using eigenvalues + visualization of Anderson localization of eigenfunctions
Density of states using equilibrium Green functions
- dos_negf_closed.m computes DOS for finite 1D wire
- dos_negf_open.m computes DOS for finite 1D wire attached to one or two macroscopic reservoirs
- graphene_dos.m computes DOS for a supercell of graphene with periodic boundary conditions
Subband structure of graphene nanoribbons using tight-binding models
- 8zgnr.m (poor man's script follows literally the lecture slide, so it works only for 8-ZGNR)
Quantum transport in 1D nanowires using NEGF
- How to use NEGF matrix formulas: Step-by-step in pictures
- qt_1d.m (computes conductance, as well as total and local density of states for 1D nanowire modeled as tight-binding chain, with possible potential barriers or impurities, attached to two semi-infinite leads)
Tunneling magnetoresistance in tight-binding models of magnetic tunnel junctions using NEGF
- mtj_1d.m (computes TMR of F/I/F MTJs modeled using 1D tight-binding chain)
- mtj_3d.m (computes TMR of F/I/F MTJs modeled using mixed real space and k-space tight-binding model of 3D junctions
Quantum transport in graphene nanostructures via NEGF
Self.m, (code to compute the conductance of a finite graphene nanoribbon attached to two semi-infinite graphene electrodes)
MATLAB functions
- matrix_exp.m (Exponential, or any other function with small changed in the code, of a Hermitian matrix)
- visual_graphene_H.m (For a given tight-binding Hamiltonian on the honeycomb lattice, function plots position of carbon atoms and draws blue lines to represent hoppings between them; red circles to represent on-site potential between them; and cyan lines to represent the periodic boundary conditions; it can be used to test if the tight-binding Hamiltonian of graphene is set correctly); This function calls another three function which should be placed in the same directory (or in the path): atomCoord.m, atomPosition.m, and constrainView.m
- self_energy.m (Self-energy of the semi-infinite ideal metallic lead modeled on the square tight-binding lattice - the code shows how to convert analytical formulas of the lead surface Green function into a working program)
- transmission.m (Transmission function for 1D tight-binding chain with spin-dependent terms)
Density functional theory with GPAW package
How to run GPAW on ulam
GPAW has been installed on ulam with the OS installed python 2.6.
- in order to use the serial version of GPAW type:
python your_gpaw_program.py
- in order to use the parallel version of gpaw use the following syntax (replace 8 with the number of cores you want to use):
mpirun -np 8 gpaw-python_openmpi your_gpaw_program.py
Getting started with GPAW
- VIDEO Tutorial: Electronic structure calculations with GPAW
- VIDEO Tutorial: Overview of GPAW
- VIDEO Tutorial: CO molecule
- Plotting CO wavefunction
- relax.py used in VIDEO Tutorial:
from ase import Atoms from ase.io import write from ase.optimize import QuasiNewton from gpaw import GPAW d = 1.10 # Starting guess for the bond length atoms = Atoms('CO', positions=((0, 0, 0), (0, 0, d)), pbc=False) atoms.center(vacuum=4.0) write('CO.cif', atoms) calc = GPAW(h=0.20, xc='PBE', txt='CO_relax.txt') atoms.set_calculator(calc) relax = QuasiNewton(atoms, trajectory='CO.traj', logfile='qn.log') relax.run(fmax=0.05)
- ASE tutorials
- Basics of GPAW calculations
- Band structure of Ni plotted in three steps
- Lattice constant, DOS, and band structure of Si
- STM simulations
GPAW Exercises Related to Midterm Project
- Band structure of bulk graphene
- Subband structure of graphene nanoribbons
- Subband structure of carbon nanotubes
References
- Electronic structure calculations with GPAW: a real-space implementation of the projector augmented-wave method, J. Phys.: Condens. Matter 22, 253202 (2010). [PDF]
- Parameters selection in GPAW scripts
- LCAO basis set in GPAW
- Parameters selection in ASE to define atomic coordinates
- Density of States in GPAW
- About k-point sampling
First-principles quantum transport calculations using NEGF+DFT within GPAW package
Theory Background
- Crash course on NEGF+DFT codes
- NEGF+DFT within GPAW - see also J. Chen, K. S. Thygesen, and K. W. Jacobsen, Ab initio nonequilibrium quantum transport and forces with the real-space projector augmented wave method, Phys. Rev. B 85, 155140 (2012). [PDF]
- M. Strange, I. S. Kristensen, K. S. Thygesen, and K. W. Jacobsen, Benchmark density functional theory calculations for nanoscale conductance, J. Chem. Phys. 128, 114714 (2008). [PDF]
- D. A. Areshkin and B. K. Nikolić, Electron density and transport in top-gated graphene nanoribbon devices: First-principles Green function algorithms for systems containing a large number of atoms, Phys. Rev. B 81, 155450 (2010). [PDF]