Computer Lab: Difference between revisions

From phys824
Jump to navigationJump to search
Line 125: Line 125:


===I-V curve calculations===
===I-V curve calculations===
* [[I-V curve of zigzag GNR with nanopore]]
* [[I-V curve of annulene molecule between two graphene nanoribbon electrodes]]
* [[I-V curve of magnetically ordered zigzag GNR]]
* [[I-V curve of magnetically ordered zigzag GNR]]
* D. A. Areshkin and B. K. Nikolić, ''I-V curve signatures of nonequilibrium-driven band gap collapse in magnetically ordered zigzag graphene nanoribbon two-terminal devices'', Phys. Rev. B '''79''', 205430 (2009). [https://wiki.physics.udel.edu/wiki_qttg/images/f/fa/Noneq_spin_zgnr.pdf [PDF]]
* D. A. Areshkin and B. K. Nikolić, ''I-V curve signatures of nonequilibrium-driven band gap collapse in magnetically ordered zigzag graphene nanoribbon two-terminal devices'', Phys. Rev. B '''79''', 205430 (2009). [https://wiki.physics.udel.edu/wiki_qttg/images/f/fa/Noneq_spin_zgnr.pdf [PDF]]
* J. Chen, K. S. Thygesen, and K. W. Jacobsen, Phys. Rev. B '''85''', 155140 (2012). [http://link.aps.org/doi/10.1103/PhysRevB.85.155140 [PDF]]
* J. Chen, K. S. Thygesen, and K. W. Jacobsen, Phys. Rev. B '''85''', 155140 (2012). [http://link.aps.org/doi/10.1103/PhysRevB.85.155140 [PDF]]

Revision as of 12:23, 28 October 2014

Unix Training

MATLAB Training

Hands-on tutorials by Instructor

Hands-on Lab tutorials by MathWorks

Reference

Books and notes

Implementation Tools

Python training

Using Anaconda Python on ulam

  • in order to enable the python environment provided by Anaconda you need to add the following to your ~/.bashrc:
export PATH="/opt/anaconda/1.9.2/bin:$PATH"
  • if you want to use the Accelerate and NumbaPro add-ons you'll need to request a free academic license from here and once you receive the license put it in the ~/.continuum directory in your home directory

MATLAB Scripts

Electron density in nanowires using equilibrium density matrix

DOS of 1D disordered nanowire using eigenvalues + visualization of Anderson localization of eigenfunctions

Density of states using equilibrium retarded Green function

  • 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

Magnetic field on the lattice

Subband structure of graphene nanoribbons using tight-binding models

Quantum transport in 1D nanowires using NEGF

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 using NEGF

Self.m, (code to compute the conductance of a finite graphene nanoribbon attached to two semi-infinite graphene electrodes)

  • M.-H. Liu and K. Richter, Efficient quantum transport simulation for bulk graphene heterojunctions, Phys. Rev. B 86, 115455 (2012). [PDF].

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)

Quantum transport simulations using Kwant package

First-principles electronic structure calculations using DFT within GPAW

Using 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

GPAW Technical Details

GPAW Exercises Related to Midterm Project

Additional GPAW Exercises

First-principles electronic transport calculations using NEGF+DFT within GPAW

Zero-bias conductance

I-V curve calculations