G2spinach.m

From Spinach Documentation Wiki
Jump to: navigation, search

Forms Spinach data structures from Gaussian parsing output returned by gparse.m function.

Syntax

    [sys,inter]=g2spinach(props,nuclei,references,options)

Description

This function converts the information obtained by parsing a Gaussian log file into the form that Spinach gateway function create.m understands.

Arguments

    props      - the data structure obtained from gparse.m

    nuclei     - a cell array of the following form: {{'H','1H'},{'N','15N'}...}
                 giving the list of isotopes that should be imported. All other spins
                 will be ignored. If the isotope list involves an electron, e.g.

                                  {{'E','E'},{'H','1H'}...}
    
                 then ESR mode is assumed - chemical shielding and scalar couplings 
                 are ignored, but g-tensor and hyperfine couplings are included.

    references - a vector of reference chemical shielding values in ppm. It is usually
                 necessary to run Gaussian on, say, TMS with the same method, and the 
                 resulting chemical shift goes here. It is used to convert absolute 
                 chemical shielding into chemical shift that create.m requires.

    options.min_j    -  scalar coupling threshold in Hz. J-couplings
                        smaller than this value will be ignored in the
                        NMR mode.

    options.min_hfc  -  hyperfine coupling threshold in Hz. Hyperfine
                        tensors with a Frobenius norm smaller than 
                        this value will be ignored in the EPR mode.

    options.purge    -  if set to 'on' in EPR mode, removes the spins
                        with hyperfine coupling below options.min_hfc
                        from the spin system.

    options.no_xyz   -  if set to 1, causes the function to ignore the
                        coordinate information in the Gaussian log.

Returns

The following subfields of sys and inter data structures are set by this function:

    sys.isotopes          - Nspins x 1 cell array of strings

    inter.coordinates     - Nspins x 3 dense matrix, Angstrom. Not
                            returned if there is an electron in the
                            isotope list (in the EPR case it is not
                            a good idea to use the molecular 
                            coordinates for spins).

    inter.zeeman.matrix   - Nspins x 1 cell array of 3x3 matrices,
                            ppm for nuclei, g-tensor for electrons.
                            Zero interactions have zero matrices.

    inter.coupling.matrix - Nspins x Nspins cell array of 3x3 matrices,
                            all in Hz. Zero interactions have zero 
                            matrices.

    inter.coupling.scalar - Nspins x Nspins cell array of scalar
                            couplings, all in Hz. Zero couplings are
                            returned as zeros.

Examples

A typical example of a Spinach input that uses data import from a Gaussian log appears below.

    % Read the spin system properties (vacuum DFT calculation)
    options.min_j=1.0;
    [sys,inter]=g2spinach(gparse('../standard_systems/sucrose.log'),{ {'H','1H'} },31.8,options);
    
    % Magnet field
    sys.magnet=14.1;
    
    % Basis set
    bas.formalism='sphten-liouv';
    bas.approximation='IK-2';
    bas.connectivity='scalar_couplings';
    bas.space_level=2;
    
    % Relaxation theory parameters
    inter.relaxation={'redfield'};
    inter.rlx_keep='secular';
    inter.tau_c=1e-9;
    
    % Spinach housekeeping
    spin_system=create(sys,inter);
    spin_system=basis(spin_system,bas);
    
    % Sequence parameters
    parameters.spins={'1H'};
    parameters.rho0=state(spin_system,'L+','1H','cheap');
    parameters.coil=state(spin_system,'L+','1H','cheap');
    parameters.decouple={};
    parameters.offset=1800;
    parameters.sweep=5000;
    parameters.npoints=8192;
    parameters.zerofill=65536;
    parameters.axis_units='ppm';
    parameters.invert_axis=1;
    
    % Simulation
    fid=liquid(spin_system,@acquire,parameters,'nmr');
    
    % Apodization
    fid=apodization(fid,'crisp-1d');
    
    % Fourier transform
    spectrum=fftshift(fft(fid,parameters.zerofill));
    
    % Plotting
    plot_1d(spin_system,real(spectrum),parameters);

Notes

As a reference, here are absolute isotropic shielding values for TMS in vacuum:

    GIAO                  13C       1H 
    B3LYP/6-31G*        189.6621  32.1833 
    B3LYP/6-311+G(2d,p) 182.4485  31.8201 
    HF/6-31G*           199.9711  32.5957 
    HF/6-311+G(2d,p)    192.5828  32.0710
    CSGT                  13C       1H 
    B3LYP/6-31G*        188.5603  29.1952 
    B3LYP/6-311+G(2d,p) 182.1386  31.7788 
    HF/6-31G*           196.8670  29.5517 
    HF/6-311+G(2d,p)    192.5701  31.5989 

See also

gparse.m, oparse.m, create.m


Version 1.9, authors: Ilya Kuprov