I just curious why the self.time_marching() method is called twice for both the high-frequency and low-frequency Fourier features, in the "kno.py" line 148 and line 149, did I miss something?
out_ft[:, :, :self.modes_x, :self.modes_y] = self.time_marching(x_ft[:, :, :self.modes_x, :self.modes_y], self.koopman_matrix)
out_ft[:, :, -self.modes_x:, :self.modes_y] = self.time_marching(x_ft[:, :, -self.modes_x:, :self.modes_y], self.koopman_matrix)