field[1].phi_y = 0.0 field[1].phi_z = 0.0 field[1].omega = 1.0 field[1].N_Floquet = 2 field[2].x = BRF2_x, 0 field[2].y = 0, 0 field[2].z = BRF2_z, 0 field[2].phi_x = 0.0 field[2].phi_y = 0.0 field[2].phi_z = 0.0 field[2].omega = OMEGARF2 field[2].N_Floquet = 2 # SET THE HAMILTONIAN COMPONENTS openmmf.sethamiltoniancomponents(id, modes_num, field, info) # // ================================================================================= # // ==== DEFINITION OF THE DRESSING FIELDS AND DRESSED BASIS # // ================================================================================= dressingfields_indices = np.array([0, 1], dtype=np.int32) dressingfields = dressingfields_indices.size dressingfloquetdimension = d_bare # This variable will be the dimension of the floquet space of the dressed basis for m in range(dressingfields): dressingfloquetdimension = dressingfloquetdimension * ( 2 * field[dressingfields_indices[m]].N_Floquet + 1) U_FD = np.zeros([dressingfloquetdimension * dressingfloquetdimension],
field[1].N_Floquet = 8 N_ = 128 M_ = 128 P_AVG = np.zeros([N_, d_bare * d_bare], dtype=np.double) P_TimeEvol = np.zeros([N_, N_, d_bare * d_bare], dtype=np.double) omega = np.linspace(0.2, 2.2, N_) for m in range(N_): # SET NEW FIELD CONFIGURATOIN, E.G. field[1].omega = 0.2 + m * 2.0 / N_ # SET THE HAMILTONIAN COMPONENTS openmmf.sethamiltoniancomponents(id, modes_num, field, info) # BUILD THE MULTIMODE FLOQUET MATRIX h_floquet_size = openmmf.multimodefloquetmatrix(id, modes_num, field, info) VALUES = np.empty([h_floquet_size * h_floquet_size], dtype=np.complex) #info = 0 #H_local = openmmf.get_h_floquet(h_floquet_size,info) #H_local = np.reshape(H_local,[h_floquet_size,h_floquet_size],order='F') #print(H_local) # ALLOCATE ARRAYS FOR FLOQUET ENERGIES (E_FLOQUET), MICROMOTION (U_F), # TIME-AVERAGE TRANSITION PROBABILITY (P_AVG), AND AUXILIAR MATRIX (U_AUX) e_floquet = np.zeros(h_floquet_size, dtype=np.double) U_F = np.zeros(h_floquet_size * h_floquet_size, dtype=np.complex) p_avg = np.zeros(id.d_bare * id.d_bare, dtype=np.double) U_AUX = np.zeros(id.d_bare * id.d_bare, dtype=np.complex)