Hamiltonian solver