Difference between revisions of "Gparse.m"
(→See also) |
(→Examples) |
||
| Line 119: | Line 119: | ||
% Plotting | % Plotting | ||
plot_1d(spin_system,real(spectrum),parameters); | plot_1d(spin_system,real(spectrum),parameters); | ||
| + | |||
| + | '''Some examples of Gaussian inputs:''' [[:File:gaussian_a.txt|gaussian_a.txt]], [[:File:gaussian_b.txt|gaussian_b.txt]], [[:File:gaussian_c.txt|gaussian_c.txt]] - note that the extra printing flag (#p) should always be present. | ||
==Notes== | ==Notes== | ||
Revision as of 13:46, 21 August 2018
A parser for Gaussian03 and Gaussian09 calculation logs.
Syntax
props=gparse(filename,options)
Description
The function extracts all potentially useful information from the Gaussian log. The following sections must be added to the route section of the Gaussian03/9 input file to produce a useful log:
#p nmr=(giao,spinspin,susceptibility) output=pickett
Examples of complete Gaussian input files that perform geometry optimisation followed by magnetic properties calculations may be downloaded here, here, and here. Some real-life Gaussian logs that may be used for practice with data import are given in examples/standard_systems directory.
Arguments
filename - the name of the file to be parsed, a character string
options - a cell array of character strongs, the following:
'g_nosymm' - turns off g-tensor symmetrisation
'cst_nosymm' - turns off shielding tensor symmetrisation
'hfc_nosymm' - turns off hyperfine tensor symmetrisation
Returns
The following output fields are returned, if the corresponding information is present in the log file:
props.inp_geom - input geometry, natoms x 3 array, Angstrom
props.std_geom - standard geometry, natoms x 3 array, Angstrom
props.natoms - number of atoms, an integer
props.method - model chemistry Gaussian had used, e.g. 'B3LYP'
props.energy - SCF energy, Hartree
props.hfc.iso - isotropic hyperfine couplings, natoms x 1 array, Gauss
props.hfc.full.eigvals - HFC eigenvalues, natoms x 1 cell array of 3-vectors, Gauss
props.hfc.full.eigvecs - HFC eigenvectors, natoms x 1 cell array of 3x3 matrices
props.hfc.full.matrix - HFC tensors, natoms x 1 cell array of 3x3 matrices, Gauss
props.g_tensor.eigvecs - g-tensor eigenvectors, 3x3 matrix
props.g_tensor.eigvals - g-tensor eigenvalues, 3-vector, Bohr magneton units
props.g_tensor.matrix - g-tensor, 3x3 matrix, Bohr magneton units
props.cst - absolute shielding tensors, natoms x 1 cell array of 3x3 matrices, ppm relative to bare nucleus in vacuum
props.j_couplings - isotropic J-couplings, nspins x nspins matrix, Hz
props.srt - spin-rotation tensor, nspins x 1 cell array of 3x3 matrices, Hz
props.nqi - nuclear quadrupole interaction tensors, nspins x 1 cell array of 3x3 matrices, Hz
props.chi - magnetic susceptibility tensor, 3x3 matrix, cubic Angstroms
props.gibbs - Gibbs free energy, Hartree
props.symbols - atomic symbols, nspins x 1 cell array of character strings
props.atomic_numbers - atomic numbers, nspins x 1 array of integers
props.filename - log file name, a character string
props.error - set to 1 if the log contains an error message
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);
Some examples of Gaussian inputs: gaussian_a.txt, gaussian_b.txt, gaussian_c.txt - note that the extra printing flag (#p) should always be present.
Notes
- Gaussian prints all anisotropic quantities relative to what it calls "standard geometry".
- Chemical shielding is not the same as chemical shift.
- Spin-rotation tensors are imported, but not used anywhere in Spinach at the moment.
- This function parses Gaussian logs. Use g2spinach.m to convert that information into Spinach input structures.
- The parser is a bit old-school. If you are proficient with regular expressoins, we would really appreciate a hand.
See also
Version 1.9, authors: Ilya Kuprov, Gareth Charnock, Jennifer Handsel