Simulation of quantum cascade lasers