Example: bachelor of science

Numerical Methods in Quantum Mechanics

Lecture notesNumerical Methods inQuantum MechanicsCorso di Laurea Magistrale in FisicaInterateneo Trieste UdineAnno accademico 2020/2021 Paolo GiannozziUniversity of UdineContains software and material written byFurio Ercolessi1and Stefano de Gironcoli21 Formerly at University of Udine2 SISSA - TriesteLast modified May 27, About Software .. Tools .. Libraries .. in C-Fortran interlanguage calls .. Bibliography ..41 One-dimensional Schr odinger The harmonic oscillator .. solution .. with classical probability density .. Quantum Mechanics and Numerical codes .. pitfall: pathological asymptotic behavior .. Numerov s method .. : harmonic0 .. : harmonic1 .. 152 Schr odinger equation for central Variable separation .. equation .. Coulomb potential .. levels .. wave functions .. Code: hydrogenradial .. grid .. convergence with perturbation theory .. 243 Scattering from a Short reminder of the theory of scattering.

Introduction The aim of these lecture notes is to provide an introduction to methods and techniques used in the numerical solution of simple (non-relativistic) quantum-

Tags:

  Methods, Numerical, Mechanics, Quantum, Numerical methods in quantum mechanics

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Advertisement

Transcription of Numerical Methods in Quantum Mechanics

1 Lecture notesNumerical Methods inQuantum MechanicsCorso di Laurea Magistrale in FisicaInterateneo Trieste UdineAnno accademico 2020/2021 Paolo GiannozziUniversity of UdineContains software and material written byFurio Ercolessi1and Stefano de Gironcoli21 Formerly at University of Udine2 SISSA - TriesteLast modified May 27, About Software .. Tools .. Libraries .. in C-Fortran interlanguage calls .. Bibliography ..41 One-dimensional Schr odinger The harmonic oscillator .. solution .. with classical probability density .. Quantum Mechanics and Numerical codes .. pitfall: pathological asymptotic behavior .. Numerov s method .. : harmonic0 .. : harmonic1 .. 152 Schr odinger equation for central Variable separation .. equation .. Coulomb potential .. levels .. wave functions .. Code: hydrogenradial .. grid .. convergence with perturbation theory .. 243 Scattering from a Short reminder of the theory of scattering.

2 Scattering of H atoms from rare gases .. Code: crossection .. 304 The Variational The variational principle .. of the variational principle .. demonstration of the variational principle .. principle for the ground state energy .. The variational method in practice .. into a basis set of orthonormal functions .. equation .. Plane-wave basis set .. Code: pwell .. routines .. 405 Non-orthonormal basis Variational method for non-orthonormal basis set .. basis set .. kinds of localized basis functions .. Code: hydrogengauss .. 456 Self-consistent The Hartree-Fock method .. determinants .. equations .. and exchange potentials .. and correlation energy .. atom .. Code: heliumhfradial .. 547 Born-Oppenheimer approximation .. Potential Energy Surface .. Diatomic molecules .. Rothaan-Hartree-Fock equations.

3 Gaussian integrals .. Code: h2hfgauss .. 628 Electrons in periodic Crystalline solids .. Boundary Conditions .. Theorem .. empty potential .. for the crystal potential .. basis set .. Code: periodicwell .. 709 Three-dimensional crystals .. Plane waves, core states, pseudopotentials .. Code: cohenbergstresser .. 7610 Exact diagonalization of Quantum spin The Heisenberg model .. Hilbert space in spin systems .. Iterative diagonalization .. Code:heisenbergexact.. Computer Laboratory .. 8211 Density-Functional Hohenberg-Kohn theorem .. Kohn-Sham equations .. Approximated functionals .. Structure of a DFT code .. Matrix elements of the potential .. FFT and FFT grids .. Computing the charge density .. Computing the potential .. Laboratory .. 90A Real-space two- and three-dimensional grids92B Solution of time-dependent Schr odinger Discretization in time: Crank-Nicolson algorithm.

4 Direct discretization of the time evolution operator .. 96C Derivation of Van der Waals interaction98D The Helium Perturbative treatment for Helium atom .. Variational treatment for Helium atom .. Beyond-HF treatment for Helium atom .. Laboratory .. 104E More about An early idea .. A modern view .. 106iiiIntroductionThe aim of these lecture notes is to provide an introduction to Methods andtechniques used in the Numerical solution of simple (non-relativistic) Quantum -mechanical problems, with special emphasis on atomic and condensed-matterphysics. The practical sessions are meant to be a sort of computational lab-oratory , introducing the basic ingredients used in the calculation of materialsproperties at a much larger scale. The latter is a very important field of today scomputational physics, due to its technological interest and potential codes provided during the course are little more than templates. Stu-dents are expected to analyze them, to run them under various conditions, toexamine their behavior as a function of input data, and most important, tointerpret their output from a physical point of view.

5 The students will be askedto extend or modify those codes, by adding or modifying some further insight on the theory of Quantum Mechanics , many excellenttextbooks are available ( Griffiths, Schiff, or the ever-green Dirac and Lan-dau). For further insight on the properly computational aspects of this course,we refer to the specialized texts quoted in the Bibliography section, and inparticular to the book of About SoftwareThis course assumes some basic knowledge of how to write and execute simpleprograms, and how to plot their results. All that is needed is a Fortran or Ccompiler and some visualization software. The target machine is a PC runningLinux, but you can also use a Macintosh or a Windows PC, as long as thementioned software is installed and working, and if you know how to use itin practice. For Windows 10, the path of least resistance is to enable theWindows Subsystem for Linux (WSL-2) and to install a Linux distribution andan X window client.

6 This gives access to a very functional Linux CompilersIn order to run a code written in any programming language, we must firsttranslate it into machine language, a language that the computer canunderstand. The translation is done by aninterpreteror by acompiler: theformer translates and immediately executes each instruction, the latter takesthe file, produces the so-calledobject codethat together with other object codes1and with libraries is finally assembled into anexecutablefile. Python, Java, or atan higher level, Matlab, Mathematica, are examples of interpreted , C, C++ are compiled codes are written in Fortran 90 (or 95, or later). This is a sophisti-cated and complex language offering dynamical memory management, arraysoperations ( matrix-vector products), modular and object-based 90 maintains a wide compatibility with existing Fortran 77 codes, whileremaining as efficient as Fortran 77 was. It is worth mentioning that the firstapplications of computers to physics date back to well before the birth of mod-ern computer languages like C++, python, or even C: there is a large numberof codes and libraries written in Fortran 77 (or even Fortran 66!)

7 And stillwidely used in physics. Even among physicists, however, Fortran is no longeras common and widespread as it used to be, but online resources are still easy tofind1. The codes themselves are very simple and make little usage of advancedlanguage features. In any case, there is no problem if a student prefers to usea more widespread language like C/C++. A version of all codes in C is alsoavailable, with no warranty about the quality of the C code in terms of eleganceand good coding all cases, you need a C or Fortran compiler. The C compilergccisfree and can be installed on all operating systems (in Linux PCs it is alwayspresent). Less-then-archaic versions ofgccinclude a Fortran compiler, Visualization ToolsVisualization of data produced by the codes (wave functions, charge densities,various other quantities) has a central role in the analysis and understandingof the results. Codegnuplotcan be used to make two-dimensional or three-dimensional plots of data or of analytical open-sourcesoftware, available for all operating systems and often found pre-installed onLinux PCs.

8 An introduction tognuplot, with many links to more resources,can be found software that can be used isGrace2, formerly known asxmgr. Thisis also open-source and highly portable, has a graphical user interface and thusit is easier to use thangnuplot, whose syntax is not always easy to Mathematical LibrariesThe usage of efficient mathematical libraries is crucial in serious of the codes use routines from the BLAS3(Basic Linear Algebra Subpro-grams) library and from LAPACK4(Linear Algebra PACKage). The latter isan important and well-known library for all kinds of linear algebra operations:1see for of linear systems, eigenvalue problems, LAPACK calls BLAS rou-tines for all CPU-intensive calculations. Highly optimized versions of the latterare available for many different operating systems and original BLAS and LAPACK routines are written in Fortran 77. Theyare often found precompiled on many machines and can be linked directly bythe compiler by adding-llapack -lblas.

9 If called by a C code, it may beneeded to add an underscore () in the calling program, as in:dsyev, is due to different, and machine-dependent, C-Fortran conventions for thenaming of symbols ( compiled routines). Note that the C compiler mayalso need-lmto link general mathematical libraries ( operations like thesquare root). Pitfalls in C-Fortran interlanguage callsIn addition to the above-mentioned potential mismatches between C and For-tran naming conventions, there are a few more pitfalls one has to be aware ofwhen Fortran routines are called by C (or vice versa). Fortran passespointersto subroutines and functions; C order to call a Fortran routine from C, or vice versa, all C variablesappearing in the call must be either pointers or arrays. In C, indices of vectors and arrays start from 0; in Fortran, they startfrom 1, unless differently specified in array declaration or allocation. Matrices in C are stored in memory row-wise, that is:a[i][j+1]followsa[i][j]in memory.

10 In Fortran, they are stored column-wise, that is, theother way round:a(i+1,j)followsa(i,j)in additional problem is that C does not provide run-time allocatable matriceslike Fortran does, but only fixed-dimension matrices and arrays of former are impractical, the latter are not usable as arguments to pass toFortran. It would be possible, using either non-standard C syntax, or usingC++ and thenewcommand, to define dynamically allocated matrices similarto those used in Fortran. We have preferred for our simple C codes to simulate Fortran-style matrices ( stored in memory column-wise) by mapping themonto one-dimensional C remark that Fortran 90 has a more advanced way of passing arrays tosubroutines using array descriptors . The codes used in this course however donot make use of this possibility but use the old-style Fortran 77 way of passingarrays via BibliographyJ. M. Thijssen,Computational Physics, 2nd edition, Cambridge UniversityPress, Cambridge, 2007: J.


Related search queries