src/Pulses/PulSinc.cc
/* These functions are meant to generate an array of Hamiltonians for a Sinc
   pulse waveform.  Each step of the Sinc waveform will have a Hamiltonian,
   For all of these function the Sinc waveform must be specified, that means
   that we need two of { pang, gamB1, tp } as well as the end node and number
   of pulse steps.  In addition, the function will require a static Hamiltonian
   (e.g. the isotropic Hamiltonian) and the operator for the spin component
   of the pulse rf-field (e.g. Fx)                                           */
These functions are meant to generate an array of Hamiltonians for a Sinc
pulse waveform.  Each step of the Sinc waveform will have a Hamiltonian,
For all of these function the Sinc waveform must be specified, that means
that we need two of { pang, gamB1, tp } as well as the end node and number
of pulse steps.  In addition, the function will require a static Hamiltonian
and the operator for the spin component
of the pulse rf-field
These functions are meant to generate an array of Hamiltonians for a Sinc pulse waveform . Each step of the Sinc waveform will have a Hamiltonian For all of these function the Sinc waveform must be specified that means that we need two of { pang gamB1 tp } as well as the end node and number of pulse steps . In addition the function will require a static Hamiltonian and the operator for the spin component of the pulse rf - field
void SincPulseHs(gen_op* Hs, gen_op& H0, gen_op& Fxy,
                                        int N, double ang, double tp, int node)
  {
  double gamB1 = SincGamB1(ang, tp, N, node);	
  row_vector Sinc = SincVect(gamB1, N, node);	
  Fxy.Op_base(H0);				
  for(int i=0; i<N; i++)			
    {						
    if(N-1-i < i) Hs[i] = Hs[N-1-i];		
    else          Hs[i] = H0 - Sinc.get(i)*Fxy;	
    }   					
  }
void SincPulseHs ( gen_op * Hs , gen_op & H0 , gen_op & Fxy , int N , double ang , double tp , int node ) { double gamB1 = SincGamB1 ( ang , tp , N , node ) ; row_vector Sinc = SincVect ( gamB1 , N , node ) ; Fxy . Op_base ( H0 ) ; for ( int i = 0 ; i < N ; i ++ ) { if ( N - 1 - i < i ) Hs [ i ] = Hs [ N - 1 - i ] ; else Hs [ i ] = H0 - Sinc . get ( i ) * Fxy ; } }
These functions are meant to generate an array of Hamiltonians for a Sinc
pulse waveform.
These functions are meant to generate an array of Hamiltonians for a Sinc pulse waveform .
// Input        Hs      : Array of general operators //              H0      : Static Hamiltonian * //              Fxy     : RF-Field Hamiltonian * //              N       : Number of Sinc steps //              ang     : Pulse rotation angle (degrees) //              tp      : Sinc pulse length (sec) //              node 	: Sinc function end node // Output       void    : Hamiltonians for a Sinc pulse //                        are put into array Hs // Get field strength // RF intensities (waveform) // Set Fxy basis for easy add // Loop over Sinc steps // For the latter times we use // symmetry to reuse the Hs // These are the first half // of the waveform where we