What I cannot code-up, I do not understand

There you go! Paraphrasing Richard Feynman-- done! Google Summer of Code -- done! I have gained valuable experience from the internship. Also, I hope to become a part of QuTiP soon. The title of this post more or less sums up my experience from the program. This will be a poor man's version of Feynman's dying quotes(on his blackboard!) "What I cannot create, I do not understand" "Know how to solve every problem that has been solved." With some awesome guidance from my mentors, I have been able to simulate some very well known concepts of lattice physics. Recreating a problem gives me an immense satisfaction as well as the confidence of understanding a problem inside out. I have never been in the elite bracket of physicists who can solve any problem on a piece of paper or a board. I am a computational person. So, to me redoing a problem means coding it up on a computer. I daresay, the list of problems that I believe to understand well has grown con

The storm before the calm?

We are very close to the end! I need certain things to click. As I have come to learn, cracking the algorithmic part is a small part of the coding job. A code that produces accurate results have to withstand iterations of scrutiny, examination and cross-examination before it is given the green light. But, for me, the cracking part is the most crucial part. The project/functionality is made possible because an accurate code was produced, however 'unclean' and unscrutable. Everything hinges on that first breakthrough. I had to go over all the mathematics of Branch cuts in logarithmic functions to write a unfailing Chern number calculation routine. The most important functionality I want to add is the Chern number calculator function. This is not a simple calculation that can be done with any brute force way. It involves a intimate knowledge of branch cut of complex Logarithmic functions and also highlights the Gauge dependency of quantities in a Quantum problem. I am  havi

Confessions of a Diagonalcoholic!

Every Quantum-problem-solver person is a repeat-offender of a simple crime! Diagonalizing! I am writing about the philosophy of diagonalizing in a bid to elucidate the underlying motive of the QuTiP functions I am writing. I am writing about a humble problem of calculating the dispersion relationship. Although, algorithmically or computationally it is not intimidating, it exemplifies one of the most effective diagonalization technique at our disposal-- translational symmetry! In exact diagonalization of an interacting model translational symmetry technique can become the difference between an in and out-of-reach problem. If a 1d lattice can be resolved into a unit cell repeating N times, the translational symmetry can help reduce the length of the matrix to be diagonalized by a factor of N. For interacting models which scale as 2(or 4) to the power N, this little reduction in size can make a problem solvable with a given computational resource. Using other symmetries can help

A round peg in a round hole (Subject to Change!!)

At first, I did not think it necessary to add the "subject-to-change" clause at the end of the title, but now I know better! The process of first getting the correct functionality to actually convince the developers of QuTiP of the 'mergabilty'/readiness of the code is painstaking. Long before I managed to convince my mentors of the readiness of the code, I was able to get the codes to work and Writing codes for a popular simulation tool is much more demanding than writing codes for your research. My codes have already undergone a complete overhaul, almost everyday change, so as to make the code compatible with the spirit and soul of QuTiP. The science problem is only a fraction of the challenge. Finding the most convenient data structure and optimization philosophy is the . The code capability is crucially dependent on data structures and memory usage. I have had to spend a massive amount of time restructuring the code and developing documentation. Please ch

Come for the bandstructure, stay for the topology

So, our latest obsession is with topological insulators. They are not hard to find, but are hard to identify. Plotting the band-structure will not give them away, they can hide in plain sight. However, calculating the topological invariant can reveal their secret identity.  There is another tell-tale sign. If we put them next to a topoogically trivial material and diagonalize the Hamiltonian, we find eigen-energies at the middle of the gaps. The corresponding eigen-vectors are found to be concentrated close to the edge; the reason behind their names. As shown in my last blog post, a simple SSH model can be a topological insulator when the inter-hopping terms are larger than the intra-hopping energies. But, we focus on the Haldene Chern insulator, the prototypical model that was honored by the 2016 Nobel prize. Haldene model is the graphene model adorned with a complex hopping parameter which gives rise to effective magnetic fields in unit cells and non-zero chern numbers when the

Do we really need 11 dimensions? How about ,... let's say....... just one?

If you are a string theorist, and do not find stuff with less than 11 dimensions fun, you may discontinue reading at this point. (How you found your way to reading this blog-post would be the bigger curiosity, in that case) My mentors have decided for me to pursue a bottom-up approach and so we start with only one dimension(bummer? not really!). The plan is we add dimensions as we go along. However, I am unsure about reaching the lofty goals of 11 dimensions in any imaginable eventuality, a modest goal of three dimensions would be my best guess. Appropos, I should add, Clemens, Nathan and Shahnawaz are my mentors for GSoC 2019. I am sure you can figure out who they are just from their names, if you are curios about it. No one has ever complained one dimension to be boring! In fact, Luttinger liquids only exist at one dimension, beat that! (drum-rolls!)This post is about the much loved(or hated)-debated over-scrutinized SSH model! For now I shall direct you to the following a

Kinda stuff Professor Shonku never wrote in his diary(to the best of my memory)

Well, I am here to post about failures or at least lack of successes. Shonku's diary posts always reported of instant successes or incessant progresses. But for us, the not-so-gifted folks, success comes slow and late. I have given up on MATLAB coming through with the exact diagonalization programs I was trying out. After couple of weeks I began to suspect that my desktop is hung up. Now, I have bigger fish to fry. The plan has changed. I am to come up with a data structure for defining lattice models in Qutip. I have been busy figuring out the class definitions of Qutip and Quspin. Quspin is a wonderful open source package for calculations on lattice models. I learnt a lot from looking at their codes. It is possible to just load the modules from the two packages individually and make them compatible through their common representation in numpy. However, I would love to initiate Qutip's own efforts on lattice models. It would require a lot of guile to outclass the programs of