Introduction
With all this fuss about quantum things, I think it’s high time I updated the list of simulators post I did some years ago. I am completely remaking this post, instead of adding to the previous, because now things are more clear to me and to the community at large where each subdomain lies. Since this will be a list from my own experience, feel free to contact me with the software that you would like to see added in this list.
Also, it’s a list for technologies that can host Quantum Information carriers based on solid state device types, that is: semiconducting, superconducting, or even photonic. That is, with the possibility of inclusion of materials science and effects like topological. It is not about trapped ions and optical lattices, although apparently, you can do that too with Wannier functions, a method I will mention here.
Materials
In any type of solid state simulation, the materials play a fundamental role. However, we don’t always have to do some quantum mechanics simulation for different materials in order to do a simulation of the final device. This is because many of the effects get ‘wrapped up’ in simple variables, or do not affect the performance of the device.
This is not true, however, if you are doing research at the intersection of materials science and qubit technologies. A trendy example is superconducting transmon qubits with tantalum.
Of course, I will not repeat here a list of Density Functional Theory software, as it would not be comprehensive. Maybe the easiest to find is the wikipedia one, for those who are interested. What I will do instead, is list the software that connects to the transport simulators given next.
Basis states manipulation
If you are using a realistic model or not, a software that helps in handling the basis states is handy, unless it is provided from the device simulation software. In the tight binding formulation, there are some established small tools, either maintained or not (note that those who are still maintained are usually faster). Speed is of essence for the first-principles derived basis states, because they are always larger (basis contains more states) than those created ‘by hand’.
Python and open source
- TBmodels (tbmodels.greschd.ch): Probably the lightest and most updated tool, although the only extra functionalities it gives is for handling symmetries. It was made to interface with a high-throughput software for discovery of topological phases, but it also interfaces with the quantum transport software Kwant
- PythTB (www.physics.rutgers.edu/pythtb/): A maintained tool, originally from David Vanderbilt group. It includes the connection with Wannier90 and examples related to topological systems.
- Pybinding https://docs.pybinding.site/en/stable/: A nice small tool, which, however, does not offer routines for connecting to Wannier90. Also, it will probably not be maintained in the future, and the person who created it has moved to the industry.
Other
- Tight binding studio (www.tight-binding.com): Major pro is that it can evaluate overlap matrix elements between orbitals, however, from what I understand it only supports OpenMX and VASP first principles input.
Other basis states (continuing with open source, mostly Python)
- WannierTools (Wannier basis, can be derived from first principles) http://www.wanniertools.com/ Note also that wannier functions can be used to describe many-body systems.
- netket (https://www.netket.org/) : For solving many-body systems. Also includes capabilities of artificial neural networks and machine learning. Note that this is allows systems that are inaccessible to first principles calculations to be solved, and it accuracy depends on the interpolation/extrapolation capabilities of your NN.
- Open Fermion (https://quantumai.google/openfermion): This software lets you pass from a “quantum algorithmic” description of a system, to a realistic Hamiltonian that you want to simulate (i.e. the Hubbard model). I decided to include it, even though I haven’t used it yet, because theoretically it could be connected to a quantum transport software. Beware, however that I don’t know any implementations of this connection, and if you are planning on doing this, or know someone who did, drop me a message below.
- QuTip (https://qutip.org/docs/latest/index.html): In the same spirit, I am including QuTip, which is suitable for open quantum systems. Personally, I don’t think there would be an immediate connection between this type of software and quantum transport, but I can definitely see how it could totally replace a quantum transport software for certain types of simulations.
Self-consistent Schrödinger-Poisson
Most of the self-consistent software I know (self-consistency in this article is for the electrostatics and not for the many-body effects), is oriented towards a Technology Computer Aided Design, or at least this was how it started.
- OMEN3D (https://nanohub.org/groups/inemo/software-projects/omen/history): OMEN is a private project at the time or writing, which is highly efficient, self-consistent and furthermore is oriented towards a materials science audience. It provides both functionality of Green’s functions, as well as the wavefunction matching technique for quantum transport. I am not sure whether you can currently pay for license or if it will ever be released publicly, but I will update this post accordingly.
- NanoTCAD ViDES (http://vides.nanotcad.com/vides/): I haven’t used this software for ages, and I have no idea about how well it is maintained. However, last time I used it, it was free, with the choice of a paid support service. I think this is the only sure way to maintain an academic software, in some countries. My experience was that it requires a lot of programming skills to use it, and a good knowledge of the construction and manipulation of the Hamiltonians, as it gives much less capability than Kwant mentioned below for example, and with less documentation.
Paid and sure
Below I will list a few software that is easier to work with, but for which a license must be paid. I have worked with both, but not with their combined materials functionality.
- Synopsys TCAD: Is a standard TCAD simulation software, but which has a really wide range of functionalities. A few years back it got merged with another commercial software, QuantumATK for doing simulations from first principles, so this increased a lot the functionalities available. If anyone has has used it, I’d love to know if they are easily connected, and how that works out.
- nextnano TCAD: nextnano is a smaller company that has a software that is more oriented towards the quantum than the nano community. They have a self-consistent solver that can also calculate transport properties of quantum structures, including quantum point contacts. They also include the functionality of incorporating material properties in their software. It is lightweight, and easy to use, and also has its own Python based user interface.
Quantum transport
- Kwant (https://kwant-project.org/): A standard quantum transport software (Python, open source) that includes a lot of efficient routines for simulating different types of Hamiltonians. It is suitable for semiconducting (Fermion systems), it is however possible to fine-tune your system to a different type of statistics model, or a many-body description. I am a little biased with this software, since I have been working with them for two years, but my opinion was the same even before this: I think that it is one of the most efficient of its kind (since they work a lot on that), the code is really well-written and it has two very useful plug-ins that makes it stand-out (time-dependent effects and self-consistent Schrödinger-Poisson). The only sad thing is that the self-consistent solver has not been released yet. However, Kwant has plugins for solving the Kubo and Kubo-Bastin formula using linear scaling methods.
Linear scaling
One of the problems of self-consistency is that you have a loop that runs until it reaches convergence. Although this is good for situations where the response is non-linear, however, a lot of the phenomena of interest to the quantum world can be calculated just using linear methods (don’t contain higher order terms). Therefore, order-N algorithms can save much trouble! What I feel is very important for these tools, is that you can combine quantum phenomena together, just the way you can include multiple models in a TCAD software device solver.
Of course, the same goes for the other quantum transport software, but in this case the fact that they are so easy and fast to solve, makes them perfect substitutes to the bulky alternative. Also, most of the times, the energy range at which things happen in the quantum world is much shorter and the two types of phenomena (classical vs. quantum) only partially affect one another. On the contrary, we really need to see a software that allows us to ‘mix’ different models so we can see what results from their combined effect.
- LSQuant (https://www.lsquant.org/): One purely linear scaling software is this (or at least purely linear for the moment). Most of it is order-N. There are models added that are not linear per se, but these guys are preparing some work-arounds, from what I understand. If you have loads of memory it is perfect for systems that have as many atoms as you have in a small experiment. On the flip side, it is very difficult to develop such methods (quite elaborate models added). The tool itself is quite new and I don’t think there is a public version. However, some of its functionality is included in Kwant.
Nanostructures
There is some software like transIESTA and Gollum that are more oriented towards nanostructures. This means that they do not necessarily include, or can support larder systems and device configurations. I have little experience on this, but if you are using them, I expect that some effort will need to be put in order to go beyond a nanostructure or an interface.
Overall experience
I think there is ample possibilities our there for everything you want to consider, but what I think about the field is that there needs to be more training on the modelling side, as the examined phenomena are so intricate and new, that you cannot use most of the software unless you are really an expert.
What is more important is that I believe having tools that derive from fundamental and not applied science will significantly contribute to solving the non-reproducibility problem of condensed matter. The reason is simply because this is how things worked in the past. We got our simulations and our experiments and compared. If it matched, it was a success. Now, there are no simulations tools and the experimentalists are kind of doing mistakes novice people (including me) did when they are embarking onto a new field. It really annoys me to read about the practices they follow for the retracted papers in Nature or other magazines. But that is an issue for a different post.