-
Notifications
You must be signed in to change notification settings - Fork 0
GSoC 2012 Application Alexandr Popov: Quantum Mechanics (Abstract Dirac Notation Analytical Sol. )
Name : Alexandr Popov
University: National Technical University of Ukraine “Kyiv Polytechnic Institute”; applied physics department in Physical-Technical Institute
Short bio: I am a 5th year student of applied physics department, and quantum mechanics is certainly a part of my education, as well as scientific work (bachelor and master projects carrying out in the Institute of Physics NASU). As physics, and quantum mechanics (QM) in particular, are the things I'm really interested in, I would like to implement some ideas into SymPy. As a part of my study and scientific work, I used extensively C/C++ and Python languages. SymPy is a convenient and useful tool so improving it will be a remarkable experience.
Email: [email protected]
GitHub username: alxspopov
blogspot account: alxspopov.blogspot.com
Coding Skills:
Platform: Scientific Linux 6.2 (carbon) // Python 3(2)
I'm using C/C++ and Python for about 2 years in my scientific projects and study. I've written simple interface improvements for Wien2k package (parsing formated files, calculating equilibrium volume of crystal, etc.) as a part o my bachelor project. Now I'm working on optical wave propagation problem (numerical solution of parabolic equation) and laser beam analysis/profiling (image processing).
The project concerns Symbolic quantum mechanics (sympy.physics.quantum), particularly Implementing Analytical Solutions, and Abstract Dirac Notation (in terms of perturbation theory, variational Ritz method and quantum tunneling effect). Implementing my project will give me the experience in open source coding and the improvement of my knowledge in quantum mechanics and python; improving of SymPy lib. I have chosen this project from Ideas page because I'm really confident in my solid knowledge of QM and this is the field I'm interested in. The specific ideas of Implementing Analytical Solutions and Abstract Dirac Notation were chosen because the implementation of the first one will be the basis of further improvement of sympy.physics.quantum module, as using and testing of known analytical solutions and physical systems in subsequent QM modules is relevant. Besides, optimization of already implemented wavefunctions (in sympy.physics.hydrogen and sympy.physics.quantum.piab), as well as finishing the implementation of basic position/momentum bases in SymPy is needed. The next step will be the integration of all known analytical solutions into sympy, as well as systems whose energies can be obtained with a simple numerical procedure, and whose solution is given as a series e.g. The other part of the project (and the following step), perturbation theory and variational Ritz method, can provide relevant improvement into the quantum sympy module, as they are useful and powerful instruments with wide range of applications.
For this proposal two particular parts of ideas from the Ideas page were taken. But they are interconnected and can be a part of one project. Perturbation and scattering theory (as well as tunneling effect) are not really Abstract Dirac Notation implementation. However, ADN will be used there for writing simplicity. They are just the features (methods) of quantum mechanics really important to realize. And they are connected with analytical solutions (for example, when it comes to using and testing them, knowledge about analytical solutions is needed). So, the base of the project is Applying of analytical solutions, with further implementation of perturbation theory etc.
My qualifications to cope with this project: I have already taken upper division quantum mechanics and nuclear physics courses. QM is also a part of my scientific work (nonlinear optics, solid state physics). In my programs I've often used NumPy, SciPy, SymPy libraries for calculation, and Matplotlib/Mayavi for visualization results. These skills can help me to deal and have a success in this project.
My time investment plan into the project: 30h/week before GSoC to provide feedback with mentoring organisation (if needed further details of my proposal) and reading documentation, getting up to speed to begin working on the projects etc.; full time 40h/week during GSoC; relevant portions of time to provide further improvement of ideas and correlating projects after GSoC.
The revised timeline with account of remarks and corrections.
Week 1-2 of coding part of GSoC: Optimization and refactoring of wavefunctions, already implemented in sympy.physics.hydrogen and sympy.physics.quantum.piab, as well as finishing the implementation of basic position/momentum bases.
Week 3-4: Implementation of all analytical QM solutions into SymPy (as submodule in the quantum). The solutions can be not only the ones mentioned in the Ideas page, but also the solutions and energy states provided with special potentials (for example, Morze potential) leading to Hyper-geometric functions e.g., or with the usage of quasiclassical approximation.
Week 5-6: Testing, optimization and finalizing of current issues, implemented during weeks 1-4. Finalizing to provide successful perturbation theory background. Above this, if the time left, the realization of solutions for unsymmetrical quantum wells, using of quasiclassical approximation and quantum tunneling effect (calculation of tunneling coefficient) should be done.
Week 7-8: Realization of perturbation theory (dealing with both generate and nongenerate unperturbed states of the system) and variational Ritz method. Besides, some important examples of their usage can be added (coupled oscillators e.g.).
Week 9-10: If thing go well, the basics of elastic scattering theory can be implemented here. Otherwise, finishing of perturbation theory etc. will be done.
Week 11-12: “Pencils down” date, scrubbing code, writing tests, improving documentation, etc.
The pulls to the project can be done every week (or periods mentioned above).Name : Alexandr Popov
Addition to sympy.physics.gaussopt module Pull request: link
Reported success on the SymPy mail-list : link
( Added the beam_plot and beam_plot2 utilities (one of TODO tasks) for plotting gaussian beam propagation (waist parameter). They are helpful in understanding of beam parameters and its behaviour in space.The first utility uses pyglet, the second uses matplotlib. )
The patch was revised.
The discussion on "gaussopt module patch" is opened in new pull request link
Implemented new class ThinPrism which describes single angle thin prism that can be used for deviation of geometrical and gaussian (not impl.) beam propagation.
Also new ray transfer matrix formalism was implemented, in which all ray transfer matrices are unimodular (see link listed below for detailed description)