Example #1
0
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],
Example #2
0
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)