Computer Lab: Difference between revisions
From phys824
Jump to navigationJump to search
(246 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
== | ==Installing Python and course related packages== | ||
*[https:// | *Install [https://www.anaconda.com/products/individual Anaconda] | ||
*[http://www. | *Install [https://kwant-project.org/install KWANT package]: | ||
*[ | <pre> | ||
*[ | conda install -c conda-forge kwant | ||
</pre> | |||
*Install [http://www.physics.rutgers.edu/pythtb/ PythTB package]: | |||
<pre> | |||
pip install pythtb --upgrade | |||
</pre> | |||
*Install and test [https://wiki.fysik.dtu.dk/ase/ ASE package]: | |||
<pre> | |||
pip install --upgrade --user ase | |||
python -m ase test | |||
</pre> | |||
*[https://wiki.fysik.dtu.dk/gpaw/ GPAW] package can be easily installed using Anaconda on [https://anaconda.org/conda-forge/gpaw Linux] or [https://wiki.fysik.dtu.dk/gpaw/platforms/MacOSX/anaconda.html#anaconda MacOS] | |||
*If you want to add [https://rise.readthedocs.io/en/stable/ RISE] package for Jupyter notebooks, execute: | |||
<pre> | |||
conda install -c conda-forge rise | |||
</pre> | |||
== | ==JUPYTER notebooks for hands-on practice== | ||
* [[Media:Getting_started_python.ipynb|Getting started with Python]] | |||
* [[Media:Getting_started_numpy_scipy.ipynb.txt|Getting started with NumPy and SciPy]] | |||
* [[Media:Getting_started_matplotlib.ipynb.txt|Getting started with Matplotlib]] | |||
* [[Media:Equilibrium_nanophysics_python.ipynb|Nanostructures in equilibrium with Python]] | |||
* [[Media:Nanostructures_out_of_equilibrium_with_python.ipynb.txt|Nanostructures out of equilibrium with Python]] | |||
* [[Media:getting_started_pythtb.ipynb.txt|Nanostructures in equilibrium with PythTB]] | |||
* [[Media:Nanostructures_in_equilibrium_with_kwant.ipynb.txt|Nanostructures in equilibrium with KWANT]] | |||
* [[Media:Nanostructures_out_of_equilibrium_with_kwant.ipynb.txt|Nanostructures out of equilibrium with KWANT]] | |||
== | ==Python references== | ||
* [http://www. | * [http://www.scipy-lectures.org/ Scipy lecture notes] | ||
* [http://www. | * [https://numpy.org/doc/1.19/user/absolute_beginners.html NumPy: Absolute Beginners Tutorial] | ||
* [https://numpy.org/doc/1.19/user/quickstart.html NumPy: Quickstart tutorial] | |||
* [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] | |||
* 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]] | |||
=== | ==KWANT references== | ||
* [http:// | *[https://kwant-project.org/doc/1/ KWANT documentation] | ||
*[ | *[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/doc/1/reference/kwant.solvers Selecting matrix solvers in KWANT] | |||
*[https://github.com/jbweston/kwant_tools KWANT tools] | |||
=== | == Density functional theory with GPAW package== | ||
=== | === How to run GPAW on ulam=== | ||
[https://wiki.fysik.dtu.dk/gpaw 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 === | ||
* [http://www. | * [https://www.youtube.com/watch?v=4P7ukme5f84 VIDEO Tutorial: Electronic structure calculations with GPAW] | ||
* [http://www.youtube.com/watch?v=guXoS3Ojd8Q VIDEO Tutorial: Short overview of GPAW] | |||
* [https://youtu.be/-z2M3g-o_sA VIDEO Longer overview of GPAW] | |||
* [http://www.youtube.com/watch?v=hUVu7Kcs7Tc VIDEO Tutorial: CO molecule] | |||
** [https://wiki.fysik.dtu.dk/gpaw/tutorials/plotting/plot_wave_functions.html Plotting CO wavefunction] | |||
** relax.py used in VIDEO Tutorial: | |||
<pre> | |||
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) | ||
</pre> | |||
* [https://wiki.fysik.dtu.dk/ase/tutorials/tutorials.html ASE tutorials] | |||
* [https://wiki.fysik.dtu.dk/gpaw/exercises/water/water.html Basics of GPAW calculations] | |||
* [[Band structure of Ni]] plotted in three steps | |||
* [[Lattice constant, DOS, and band structure of Si]] | |||
* [https://wiki.fysik.dtu.dk/gpaw/tutorials/stm/stm.html STM simulations] | |||
== | ===GPAW Exercises Related to Midterm Project=== | ||
== | |||
* [[Band structure of bulk graphene]] | * [[Band structure of bulk graphene]] | ||
* [[Subband structure of graphene nanoribbons]] | * [[Subband structure of graphene nanoribbons]] | ||
* [[Subband structure of carbon nanotubes]] | * [[Subband structure of carbon nanotubes]] | ||
=== | ===References=== | ||
* [https://wiki.fysik.dtu.dk/gpaw/ | * ''Electronic structure calculations with GPAW: a real-space implementation of the projector augmented-wave method'', J. Phys.: Condens. Matter '''22''', 253202 (2010). [http://iopscience.iop.org/0953-8984/22/25/253202 [PDF]] | ||
* [https://wiki.fysik.dtu.dk/gpaw/ | * [https://wiki.fysik.dtu.dk/gpaw/documentation/manual.html Parameters selection in GPAW scripts] | ||
* [https://wiki.fysik.dtu.dk/ | * [https://wiki.fysik.dtu.dk/gpaw/documentation/lcao/lcao.html LCAO basis set in GPAW] | ||
* [https://wiki.fysik.dtu.dk/gpaw/ | * [https://wiki.fysik.dtu.dk/ase/ase/atoms.html Parameters selection in ASE to define atomic coordinates] | ||
* [https://wiki.fysik.dtu.dk/gpaw/documentation/pdos/pdos.html Density of States in GPAW] | |||
* [[About k-point sampling]] | |||
== First-principles | == First-principles quantum transport calculations using NEGF+DFT within GPAW package== | ||
=== | ===Theory Background=== | ||
* [[Media:negf_dft_slide.pdf|Crash course on NEGF+DFT codes]] | * [[Media:negf_dft_slide.pdf|Crash course on NEGF+DFT codes]] | ||
* | * [https://wiki.fysik.dtu.dk/gpaw/documentation/transport/negftransport.html 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). [http://link.aps.org/doi/10.1103/PhysRevB.85.155140 [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). [http://dx.doi.org/10.1063/1.2839275 [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). [https://wiki.physics.udel.edu/wiki_qttg/images/d/dc/Negf_dft_gnr.pdf [PDF]] | |||
=== | ===GPAW Exercises=== | ||
* [[ | * [[PtH2Pt nanojunction|Pt-<math> \mathrm{H}_2 </math>-Pt nanojunction]]. | ||
* [[Annulene molecule between two graphene nanoribbon electrodes nanojunction]] | |||
* |
Latest revision as of 12:14, 7 September 2022
- 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
- GPAW package can be easily installed using Anaconda on Linux or MacOS
- If you want to add RISE package for Jupyter notebooks, execute:
conda install -c conda-forge rise
JUPYTER notebooks for hands-on practice
- Getting started with Python
- Getting started with NumPy and SciPy
- Getting started with Matplotlib
- Nanostructures in equilibrium with Python
- Nanostructures out of equilibrium with Python
- Nanostructures in equilibrium with PythTB
- Nanostructures in equilibrium with KWANT
- Nanostructures out of equilibrium with KWANT
Python references
- Scipy lecture notes
- NumPy: Absolute Beginners Tutorial
- NumPy: Quickstart tutorial
- NumPy for Matlab users
- Timing Python script performance
- J. M. Stewart, Python for Scientists (Cambridge University Press, Cambridge, 2014). [PDF]
KWANT references
- KWANT documentation
- VIDEO: Introduction to KWANT
- Learning KWANT through examples
- Selecting matrix solvers in KWANT
- KWANT tools
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: Short overview of GPAW
- VIDEO Longer 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]