How to diagonalise a hamiltonian which posesses symmetry? I have a large hamiltonian but I know that it posseses some symmetries. How do you reduce the hamiltonian in order to find the eigenenergies?
 A: If $g$ is a symmetry operation, then by definition your Hamiltonian will satisfy 
\begin{align}
gHg^{-1}=H \qquad \Leftrightarrow \qquad gH=Hg\, ,
\end{align}  or if $g=\exp{(-i \theta K)}$ then $[H,K]=0$.  The key point is that  either eigenstates of $g$ or $K$ will also be eigenstates of the Hamiltonian, which will help you block diagonalize $H$ if some eigenvalues $\lambda_g$ of $g$ are repeated, or will completely diagonalize $H$ is none of the eigenvalues of $g$ are repeated. 
Normally of course your Hamiltonian might act in an infinite-dimensional Hilbert space, so if the representations of $g$ are finite-dimensional, then you can work inside each finite dimensional block or at least identify which subspaces are the most important and then truncate.
The classic example is a system of particles on a ring interacting with 
nearest neighbours
$$
H=\sum_{n=1}^N E_0\vert n\rangle \langle n\vert
+\sum_{n=1}^N \left( W\vert n\rangle \langle n+1\vert 
+W\vert n+1\rangle\langle n\vert\right)
$$
where the states $\{\vert n\rangle, n=1,\ldots N\}$ at each site are
assumed orthogonal, and where the periodic
condition $\vert N+j\rangle =\vert j\rangle$ holds.
Clearly this Hamiltonian commutes with the operators 
$\hat C_+=\sum_{n=1}^N \vert n\rangle \langle n+1\vert$, which "rotates"
state $\vert n+1\rangle$ to $\vert n\rangle$, i.e. "rotates" the ring by one 
position to the left.    Since $(\hat C_+)^N=\hat 1$, the $k$'the eigenvalue of 
$\hat C_+$ must satisfy $\lambda_k^N=1$ so that these are easy to find.  In turn, the eigenvectors $\vert k\rangle$ 
of $\hat C_+$ are easy to find: the $p$'th component has amplitude
$e^{2\pi i k p/N}$ and, as one can verify that $\lambda_k$ occurs at most once in the spectrum of $\hat C_+$, the eigenvectors $\vert k\rangle$
must also be eigenstates of $H$, so that we an get the eigenvectors of $H$ without finding the eigenvectors of a triangular matrix.  Once we have the eigenvectors, it's child's play to get the eigenvalues of $H$.
In more sophisticated examples one may get only a block diagonal form.  For instance, for a central potential one then has $[H,\vec L\cdot \vec L]=0$ so that, by finding the states of "good" angular momentum $\ell$, one automatically block diagonalizes the Hamiltonian. 
If some eigenvalues of $g$ occur more than once then the job is more complicated.  There is no guarantee that $H$ will be diagonal but what is known is that $H$ cannot connect states with different eigenvalues of $g$, so one can proceed by first finding the eigenstates of $g$ and then diagonalizing $H$ within the subspace of eigenstates with the same eigenvalue.
In practice, it is not always easier to find the eigenvectors of $g$, at least analytically.  Even when this can be done, changing the basis to one where $H$ is block diagonal is not necessarily easy to do explicitly by hand.   Possibly the simplest example of this situation is the coupling of two sets of states having angular momenta $\ell_1$ and $\ell_2$: to obtain states of good total angular momentum $L$ requires Clebsch-Gordan technology, which is well known but still requires some effort. 
Also it may well be that some part in $H=H_0+H_1$ might "break the symmetry", i.e. $[H_0,g]=0$ but $[H_1,g]\ne 0$, in which case eigenstates of $g$ will be eigenstates of $H_0$ (barring repeated eigenvalues) and one can hope to treat $H_1$ as a perturbation.
