Geometric and topological methods for fault tolerant quantum computing