  We apply a dynamical systems approach to concatenation of quantum error
correcting codes, extending and generalizing the results of Rahn et al. [1] to
both diagonal and nondiagonal channels. Our point of view is global: instead of
focusing on particular types of noise channels, we study the geometry of the
coding map as a discrete-time dynamical system on the entire space of noise
channels. In the case of diagonal channels, we show that any code with distance
at least three corrects (in the infinite concatenation limit) an open set of
errors. For Calderbank-Shor-Steane (CSS) codes, we give a more precise
characterization of that set. We show how to incorporate noise in the gates,
thus completing the framework. We derive some general bounds for noise
channels, which allows us to analyze several codes in detail.
