top of page
Our Open-Source Code
MesoHOPS is a formally exact trajectory based approach for solving the time evolution of open quantum systems coupled to non-Markovian thermal environments. MesoHOPS extends the Hierarchy Of Pure States (HOPS) formalism to leverage the dynamic localization present in the wave functions and construct an adaptive basis. Using the adaptive basis MesoHOPS is computationally tractable with large system sizes.
We use GitHub for shared version control of our group codes. You
should setup up an account soon and make sure you have been added as a collaborator. Here is a good primer and a guide for when we make mistakes.
We often use Fork to manage our local git repositories - especially if you haven't used git before this can ease the transition into shared version control.
We write lots of python code and we use PyCharm to do it. Remember that professional license is free for academics.
We profile our python code using SnakeViz - you can Conda install it. Just remember -
premature optimization is the root of all evil (in code),
but once you see the bottleneck - fix it.
We all agree to write our code using a shared style guide. This helps make sure that we can all read our shared libraries. It is also worth looking over the zen of python and PEP8.
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
-Tim Peters, 1999
Guides to writing papers
If you have not written a paper before (or even if you have!) here are some resources for how we write papers.
1. Storyboard like the paper depends on it
2. Think about how sentences and paragraphs are structured
3. Think about the words you use (and the one's you shouldn't)
4. Learn how to write with equations elegantly
We use Zotero to manage citations and share bibliography references. Your thesis will thank you.
We use overleaf to write shared latex documents. To help you get used to latex editing the way here is a useful cheat sheet.
If you have not done any coding before then it may be a bit intimidating to get started. We recommend the following tutorials, videos and resources to familiarize yourself with python.
We often look at other peoples code to learn more about coding. These examples are mostly taken from other science groups who have similar challenges with making robust, maintainable, and numerically efficient python code.
bottom of page