src/MultiSys/MultiLOp.cc
// Input		msys    : A multi_spin spin system
// Output		Lo	: The isotropic Hamiltonian
//				  commutation superoperator.
// Note				: This superoperator is returned
//				  in the default basis
Input          msys    : A multi_spin spin system
Output         Lo      : The isotropic Hamiltonian
commutation superoperator.
Note                           : This superoperator is returned
in the default basis
Input msys : A multi_spin spin system Output Lo : The isotropic Hamiltonian commutation superoperator . Note : This superoperator is returned in the default basis
super_op Lo(const multi_sys &msys)
  {
  int nc = msys.NComps();		
  matrix *mxc;				
  mxc = new matrix[nc];
  sys_dynamic sys;			
  gen_op Op;				
  super_op LOp;				
  for(int i=0; i<nc; i++)
    {
    sys = msys.Comp(i);			
    Op = Ho(sys);			
    Op.set_DBR();			
    LOp = commutator(Op);		
    mxc[i] = LOp.get_mx();
    (mxc[i]).set_type(n_matrix_type);
    mxc[i] *= ((-complex1)*2*PI);
    }
  super_op LLOp(mxc, nc);			
  delete [] mxc;
  return LLOp;
  }
super_op Lo ( const multi_sys & msys ) { int nc = msys . NComps ( ) ; matrix * mxc ; mxc = new matrix [ nc ] ; sys_dynamic sys ; gen_op Op ; super_op LOp ; for ( int i = 0 ; i < nc ; i ++ ) { sys = msys . Comp ( i ) ; Op = Ho ( sys ) ; Op . set_DBR ( ) ; LOp = commutator ( Op ) ; mxc [ i ] = LOp . get_mx ( ) ; ( mxc [ i ] ) . set_type ( n_matrix_type ) ; mxc [ i ] *= ( ( - complex1 ) * 2 * PI ) ; } super_op LLOp ( mxc , nc ) ; delete [ ] mxc ; return LLOp ; }
Input          msys    : A multi_spin spin system
Output         Lo      : The isotropic Hamiltonian
commutation superoperator.
Input msys : A multi_spin spin system Output Lo : The isotropic Hamiltonian commutation superoperator .
// Number of components // Array for superop matrices // Scratch spin system // Scratch operator // Scratch superoperator // The ith spin system // Isotropic H for ith comp // Insure its in a default basis // Commutation superoperator of Op // implies default basis