- #1
AndreasC
Gold Member
- 547
- 310
- TL;DR Summary
- I want some pointers for better understanding certain problems involving counting and classifying lattices under certain symmetries. I'd like some resource recommendation and general advice for tackling these sorts of problems because I'm not even 100% sure what area of math is required.
I was reading about numerical methods in statistical physics, and some examples got me thinking about what seems to be combinatorics, an area of math I hardly understand at all beyond the very basics. In particular, I was thinking about how one would go about directly summing the partition function over all possible states of a 2d square Ising lattice in a 0 external magnetic field. Of course there is no direct practical need for that since it has been solved analytically, and even if it wasn't you'd tackle it with Monte Carlo methods which are nowhere near as computationally intensive. However thinking about how one might go about it as efficiently as possible lead me to some somewhat interesting questions.
What I thought one might do to simplify the task of that summation is exploit the symmetries. Let's take a 5x5 lattice with periodic boundary conditions as an example. Every site of the lattice can have either spin up or down. When there is no external magnetic field, the energy of the lattice is only determined by the spins of neighboring sites. If neighboring spins are parallel, the energy decreases. If not, it increases. Since this is all that matters, the system has up-down symmetry, so if you flip all spins you end up with the same energy. This can easily be exploited to cut down the states we have to sum over by half, since you only have to sum the states which have, say, more up than down spins and double the result, since there is this symmetry that also defines a bijection between the set of states with more up spins and the set of states with more down spins (in the case of odd sites, even sites are very slightly different). That's also very easy to implement in a computer program. So that's obviously something very useful that I'd like to emulate for different symmetries.
Since exploiting this symmetry was so successful, then I thought let's look at some other symmetries. A very broad symmetry I noticed is cyclically reshuffling the rows and columns of the lattice. So, if we label the rows (1, 2, 3, 4, 5), then it has the same energy as the state which looks like (5, 1, 2, 3, 4), which has the same energy as the state that looks like (4, 5, 1, 2, 3), etc. Same with columns. A symmetry like that can drastically decrease the number of possible states we have to sum over. For instance, this symmetry means that all states with a single down spin have the same energy - a total of 25 states all rolled into one! It's not hard to see that the same must also be true for, say, all states with just two down spins, one right beneath the other, and other similar configurations (and other symmetries like rotation symmetry can be used to cut them down even further).
However there is one problem: currently I can't figure out how to properly count all these states (while also making sure I'm not re-counting states which are simply the same, for instance every permutation of the rows and columns of a state with all up spins simply returns the same state), and it's even harder for me to think about what an efficient algorithm to enumerate these states would look like. Well, I can answer these questions for a few small lattices, but I'm not entirely sure how to find a general rule. Thinking about that problem also got me thinking about a bunch of different but related problems and it's pretty interesting, however I don't think I have the mathematical knowledge to tackle most of them.
So to get to the question, does anyone have any advice and pointers for problems like that? Is anyone aware of good resources to study topics like that in depth?
What I thought one might do to simplify the task of that summation is exploit the symmetries. Let's take a 5x5 lattice with periodic boundary conditions as an example. Every site of the lattice can have either spin up or down. When there is no external magnetic field, the energy of the lattice is only determined by the spins of neighboring sites. If neighboring spins are parallel, the energy decreases. If not, it increases. Since this is all that matters, the system has up-down symmetry, so if you flip all spins you end up with the same energy. This can easily be exploited to cut down the states we have to sum over by half, since you only have to sum the states which have, say, more up than down spins and double the result, since there is this symmetry that also defines a bijection between the set of states with more up spins and the set of states with more down spins (in the case of odd sites, even sites are very slightly different). That's also very easy to implement in a computer program. So that's obviously something very useful that I'd like to emulate for different symmetries.
Since exploiting this symmetry was so successful, then I thought let's look at some other symmetries. A very broad symmetry I noticed is cyclically reshuffling the rows and columns of the lattice. So, if we label the rows (1, 2, 3, 4, 5), then it has the same energy as the state which looks like (5, 1, 2, 3, 4), which has the same energy as the state that looks like (4, 5, 1, 2, 3), etc. Same with columns. A symmetry like that can drastically decrease the number of possible states we have to sum over. For instance, this symmetry means that all states with a single down spin have the same energy - a total of 25 states all rolled into one! It's not hard to see that the same must also be true for, say, all states with just two down spins, one right beneath the other, and other similar configurations (and other symmetries like rotation symmetry can be used to cut them down even further).
However there is one problem: currently I can't figure out how to properly count all these states (while also making sure I'm not re-counting states which are simply the same, for instance every permutation of the rows and columns of a state with all up spins simply returns the same state), and it's even harder for me to think about what an efficient algorithm to enumerate these states would look like. Well, I can answer these questions for a few small lattices, but I'm not entirely sure how to find a general rule. Thinking about that problem also got me thinking about a bunch of different but related problems and it's pretty interesting, however I don't think I have the mathematical knowledge to tackle most of them.
So to get to the question, does anyone have any advice and pointers for problems like that? Is anyone aware of good resources to study topics like that in depth?