src/IntRank2/IntCSA.cc
/* Here we try to use the set { Iqn, Sxx, Syy, Szz, SEAngles, SOm }. The spin
   quantum number sets the dimension of the interaction spin Hilbert space. 
   The values of Sxx, Syy, and Szz are in PPM and used to determine the 
   isotropic chemical shift SIso (PPM), chemical shift anisotropy SCSA (PPM),
   and shift asymmetry ETA ([0,1]). The interaction orientation is taken from
   Euler angles SEAngles and the external static field strength specified by 
   the spin Larmor frequency SOm (Hz). We will allow for default settings of
   the orientation and Larmor frequency so that those arguments need not be
   input during construction.  Their default values are 0.                   */
Here we try to use the set { Iqn, Sxx, Syy, Szz, SEAngles, SOm }. The spin
quantum number sets the dimension of the interaction spin Hilbert space.
The values of Sxx, Syy, and Szz are in PPM and used to determine the
isotropic chemical shift SIso (PPM), chemical shift anisotropy SCSA (PPM),
and shift asymmetry ETA ([0,1]). The interaction orientation is taken from
Euler angles SEAngles and the external static field strength specified by
the spin Larmor frequency SOm (Hz). We will allow for default settings of
the orientation and Larmor frequency so that those arguments need not be
input during construction.  Their default values are 0.
Here we try to use the set { Iqn Sxx Syy Szz SEAngles SOm } . The spin quantum number sets the dimension of the interaction spin Hilbert space . The values of Sxx Syy and Szz are in PPM and used to determine the isotropic chemical shift SIso ( PPM ) chemical shift anisotropy SCSA ( PPM ) and shift asymmetry ETA ( [ 0 1 ] ) . The interaction orientation is taken from Euler angles SEAngles and the external static field strength specified by the spin Larmor frequency SOm ( Hz ) . We will allow for default settings of the orientation and Larmor frequency so that those arguments need not be input during construction . Their default values are 0 .
IntCSA::IntCSA(const string& IsoI, const coord& SxSySz,
                                                  const EAngles& EA, double Om)
  {
  if(!SpinCheck(IsoI)) ICfatal(2);		
  Isotope II(IsoI);				
  if(!SpinCheck(II, false)) ICfatal(2);		
  coord SiSzSe = AisoDelzEta(SxSySz);		
  SISO      = SiSzSe.x();			
  SCSA      = 1.5*SiSzSe.y();			
  SOMEGA    = Om;				
  double Iz = II.qn();				
  double E  = SiSzSe.z();			
  double X  = xi();				
  IntRank2::operator=(IntRank2(Iz,X,E,EA));	
  }
IntCSA :: IntCSA ( const string & IsoI , const coord & SxSySz , const EAngles & EA , double Om ) { if ( ! SpinCheck ( IsoI ) ) ICfatal ( 2 ) ; Isotope II ( IsoI ) ; if ( ! SpinCheck ( II , false ) ) ICfatal ( 2 ) ; coord SiSzSe = AisoDelzEta ( SxSySz ) ; SISO = SiSzSe . x ( ) ; SCSA = 1.5 * SiSzSe . y ( ) ; SOMEGA = Om ; double Iz = II . qn ( ) ; double E = SiSzSe . z ( ) ; double X = xi ( ) ; IntRank2 :: operator = ( IntRank2 ( Iz , X , E , EA ) ) ; }
Here we try to use the set { Iqn, Sxx, Syy, Szz, SEAngles, SOm }.
Here we try to use the set { Iqn Sxx Syy Szz SEAngles SOm } .
// Insure we know this isotope // Get isotope for this type // Insure we are not electron // Switch to spherical values // Set isotropic value (PPM) // Set anisotropic value (PPM) // Set Larmor frequency (Hz) // Get Iz value of spin			 // Get asymmetry value // Get interaction constant // Use generic interaction