@@ -195,7 +195,7 @@ def occupation(
195195 np .sum (_sys_correlations .real * re_kernel \
196196 + 1j * _sys_correlations .imag * im_kernel , axis = 0 )
197197 ).real * coup
198- bath_occupation = np .append ([0 ], bath_occupation )
198+ bath_occupation = np .append (np . array ( [0 ]) , bath_occupation )
199199 if not change_only and self ._temp > 0 :
200200 bath_occupation += np .exp (- freq / self ._temp ) \
201201 / (1 - np .exp (- freq / self ._temp ))
@@ -396,54 +396,121 @@ def phase(region, swap_ts = False):
396396 ph += np .exp (a * tk * dt + b * tkp * dt ) / (a * b )
397397 return ph
398398
399-
400399 if dagg == (0 , 1 ):
401- re_kernel [regions ['a' ]] = phase ('a' ) + phase ('a' , 1 )
402-
403- re_kernel [regions ['b' ]] = phase ('b' )
404-
405- im_kernel [regions ['a' ]] = ((2 * n_1 + 1 ) * phase ('a' ) -
406- (2 * n_2 + 1 ) * phase ('a' , 1 ))
407-
408- im_kernel [regions ['b' ]] = (2 * n_1 + 1 ) * phase ('b' )
409-
410- im_kernel [regions ['c' ]] = - 2 * (n_1 + 1 ) * phase ('c' )
400+ re_kernel = np .update (
401+ array = re_kernel ,
402+ indices = regions ['a' ],
403+ values = phase ('a' ) + phase ('a' , 1 )
404+ )
405+ re_kernel = np .update (
406+ array = re_kernel ,
407+ indices = regions ['b' ],
408+ values = phase ('b' )
409+ )
410+
411+ im_kernel = np .update (
412+ array = im_kernel ,
413+ indices = regions ['a' ],
414+ values = ((2 * n_1 + 1 ) * phase ('a' ) -
415+ (2 * n_2 + 1 ) * phase ('a' , 1 ))
416+ )
417+ im_kernel = np .update (
418+ array = im_kernel ,
419+ indices = regions ['b' ],
420+ values = (2 * n_1 + 1 ) * phase ('b' )
421+ )
422+ im_kernel = np .update (
423+ array = im_kernel ,
424+ indices = regions ['c' ],
425+ values = - 2 * (n_1 + 1 ) * phase ('c' )
426+ )
411427
412428 elif dagg == (1 , 0 ):
413- re_kernel [regions ['a' ]] = phase ('a' ) + phase ('a' , 1 )
414-
415- re_kernel [regions ['b' ]] = phase ('b' )
416-
417- im_kernel [regions ['a' ]] = ((2 * n_1 + 1 ) * phase ('a' ) -
418- (2 * n_2 + 1 ) * phase ('a' , 1 ))
419-
420- im_kernel [regions ['b' ]] = (2 * n_1 + 1 ) * phase ('b' )
421-
422- im_kernel [regions ['c' ]] = 2 * n_1 * phase ('c' )
429+ re_kernel = np .update (
430+ array = re_kernel ,
431+ indices = regions ['a' ],
432+ values = phase ('a' ) + phase ('a' , 1 )
433+ )
434+ re_kernel = np .update (
435+ array = re_kernel ,
436+ indices = regions ['b' ],
437+ values = phase ('b' )
438+ )
439+
440+ im_kernel = np .update (
441+ array = im_kernel ,
442+ indices = regions ['a' ],
443+ values = ((2 * n_1 + 1 ) * phase ('a' ) -
444+ (2 * n_2 + 1 ) * phase ('a' , 1 ))
445+ )
446+ im_kernel = np .update (
447+ array = im_kernel ,
448+ indices = regions ['b' ],
449+ values = (2 * n_1 + 1 ) * phase ('b' )
450+ )
451+ im_kernel = np .update (
452+ array = im_kernel ,
453+ indices = regions ['c' ],
454+ values = 2 * n_1 * phase ('c' )
455+ )
423456
424457 elif dagg == (1 , 1 ):
425- re_kernel [regions ['a' ]] = - (phase ('a' ) + phase ('a' , 1 ))
426-
427- re_kernel [regions ['b' ]] = - phase ('b' )
428-
429- im_kernel [regions ['a' ]] = ((2 * n_1 + 1 ) * phase ('a' ) +
430- (2 * n_2 + 1 ) * phase ('a' , 1 ))
431-
432- im_kernel [regions ['b' ]] = (2 * n_1 + 1 ) * phase ('b' )
433-
434- im_kernel [regions ['c' ]] = 2 * (n_1 + 1 ) * phase ('c' )
458+ re_kernel = np .update (
459+ array = re_kernel ,
460+ indices = regions ['a' ],
461+ values = - (phase ('a' ) + phase ('a' , 1 ))
462+ )
463+ re_kernel = np .update (
464+ array = re_kernel ,
465+ indices = regions ['b' ],
466+ values = - phase ('b' )
467+ )
468+
469+ im_kernel = np .update (
470+ array = im_kernel ,
471+ indices = regions ['a' ],
472+ values = ((2 * n_1 + 1 ) * phase ('a' ) +
473+ (2 * n_2 + 1 ) * phase ('a' , 1 ))
474+ )
475+ im_kernel = np .update (
476+ array = im_kernel ,
477+ indices = regions ['b' ],
478+ values = (2 * n_1 + 1 ) * phase ('b' )
479+ )
480+ im_kernel = np .update (
481+ array = im_kernel ,
482+ indices = regions ['c' ],
483+ values = 2 * (n_1 + 1 ) * phase ('c' )
484+ )
435485
436486 elif dagg == (0 , 0 ):
437- re_kernel [regions ['a' ]] = - (phase ('a' ) + phase ('a' , 1 ))
438-
439- re_kernel [regions ['b' ]] = - phase ('b' )
440-
441- im_kernel [regions ['a' ]] = - ((2 * n_2 + 1 ) * phase ('a' , 1 ) +
442- (2 * n_1 + 1 ) * phase ('a' ))
443-
444- im_kernel [regions ['b' ]] = - (2 * n_1 + 1 ) * phase ('b' )
445-
446- im_kernel [regions ['c' ]] = - 2 * n_1 * phase ('c' )
487+ re_kernel = np .update (
488+ array = re_kernel ,
489+ indices = regions ['a' ],
490+ values = - (phase ('a' ) + phase ('a' , 1 ))
491+ )
492+ re_kernel = np .update (
493+ array = re_kernel ,
494+ indices = regions ['b' ],
495+ values = - phase ('b' )
496+ )
497+
498+ im_kernel = np .update (
499+ array = im_kernel ,
500+ indices = regions ['a' ],
501+ values = - ((2 * n_1 + 1 ) * phase ('a' ) +
502+ (2 * n_2 + 1 ) * phase ('a' , 1 ))
503+ )
504+ im_kernel = np .update (
505+ array = im_kernel ,
506+ indices = regions ['b' ],
507+ values = - (2 * n_1 + 1 ) * phase ('b' )
508+ )
509+ im_kernel = np .update (
510+ array = im_kernel ,
511+ indices = regions ['c' ],
512+ values = - 2 * n_1 * phase ('c' )
513+ )
447514
448515 re_kernel = np .triu (re_kernel ) #only keep triangular region
449516 im_kernel = np .triu (im_kernel )
0 commit comments