src/Level2/RelaxBas.cc
/* These functions will perform an ad-hoc evolution of the density operator
   under a constant Hamiltonian and basic relaxation. The initial density 
   operator sig0 will evolve for the specified time under the effects of this
   simple relaxation scheme as well as under the effects of any input 
   Hamiltonian. It is tacitly assumed that evolution under the Hamiltonian is
   not coupled to evolution under relaxation. Hence, the evolution will first
   occur under the static Hamiltonian HO if one has been set, then under the
   phenomenological relaxation scheme of this class.                         */
These functions will perform an ad-hoc evolution of the density operator
under a constant Hamiltonian and basic relaxation. The initial density
operator sig0 will evolve for the specified time under the effects of this
simple relaxation scheme as well as under the effects of any input
Hamiltonian. It is tacitly assumed that evolution under the Hamiltonian is
not coupled to evolution under relaxation. Hence, the evolution will first
occur under the static Hamiltonian HO if one has been set, then under the
phenomenological relaxation scheme of this class.
These functions will perform an ad - hoc evolution of the density operator under a constant Hamiltonian and basic relaxation . The initial density operator sig0 will evolve for the specified time under the effects of this simple relaxation scheme as well as under the effects of any input Hamiltonian . It is tacitly assumed that evolution under the Hamiltonian is not coupled to evolution under relaxation . Hence the evolution will first occur under the static Hamiltonian HO if one has been set then under the phenomenological relaxation scheme of this class .
gen_op RBasic::Evolve(const spin_sys& sys, const gen_op& sigmap, double t)
  {
  gen_op sigmat = sigmap;			
  gen_op siginf = sigma_eq(sys);		
  if(H0.dim()) evolve_ip(sigmat, H0, t);	
  sigmat.set_DBR();				
  if(!SetIzs(sys))      RBasFatal(64); 		
  if(!SetCinfs(siginf)) RBasFatal(64);		
  return Evolve(sigmap, t);			
  }
gen_op RBasic :: Evolve ( const spin_sys & sys , const gen_op & sigmap , double t ) { gen_op sigmat = sigmap ; gen_op siginf = sigma_eq ( sys ) ; if ( H0 . dim ( ) ) evolve_ip ( sigmat , H0 , t ) ; sigmat . set_DBR ( ) ; if ( ! SetIzs ( sys ) ) RBasFatal ( 64 ) ; if ( ! SetCinfs ( siginf ) ) RBasFatal ( 64 ) ; return Evolve ( sigmap , t ) ; }
These functions will perform an ad-hoc evolution of the density operator
under a constant Hamiltonian and basic relaxation.
These functions will perform an ad - hoc evolution of the density operator under a constant Hamiltonian and basic relaxation .
//            Begin With Evolution Under The Active Hamiltonian // The sigma to be evolved // The equilibrium operator // Evolve under H0 if set // Put into default basis //                    First We Perform Ad Hoc T1 Evolution   // Set up all Izi operators // Set siginf Izi coefficients // Use overload /*
  if(!SetCsigs(sigmap)) RBasFatal(64);		// Set sigmap Izi coefficients
  int ns = spins();
  double KIzi, eR1t;
  for(int i=0; i<ns; i++)			// Loop over all spins
    {
    eR1t = exp(-R1rates[i]*t);			// The exponential factor
    KIzi = (Csig[i]-Cinf[i])*eR1t + Cinf[i];	// Relaxed Izi coefficient
    sigmat += (KIzi-Csig[i])*Izis[i];		// Set relaxed Izi component
    }

//                    Second We Perform Ad Hoc T2 Evolution  

  matrix R2val = R2Mx();			// Get array of R2 values
  int hs = sigmap.dim();			// Spin Hilbert space
  int a,b;					// Basis function indices
  complex z;					// Density operator element
  for(a=0; a<hs-1; a++)				// Loop over U.T. density
    for(b=a+1; b<hs; b++) 			// operator elements 
      {
      z = sigmat.get(a,b) * exp(-R2val(a,b)*t);	// Element to relax
      sigmat.put(z,a,b);			// Set relaxed <a|sigma(t)|b>
      sigmat.put(conj(z),b,a);			// Set relaxed <b|sigma(t)|a>
      }
  return sigmat;
*/