BlochLib: a fast NMR C++ tool kit.

Computational power, speed, and algorithmic complexity are increasing at a continuing rate. As a result, scientific simulations continue to investigate more and more complex systems. Nuclear magnetic resonance (NMR) is no exception. NMR theory and language is extremely well developed, that simulations have become a standard by which experiments are measured. Nowadays, complex computations can be performed on normal workstations and workstation clusters. Basic numerical operations have also become extremely optimized and new computer language paradigms have become implemented. Currently there exists no complete NMR tool kit which uses these newer techniques. This paper describes such a tool kit, BlochLib. BlochLib is designed to be the next generation of NMR simulation packages; however, the basic techniques implemented are applicable to almost any problem. BlochLib enables the user to simulate almost any NMR idea both experimental or theoretical in nature. Both classical and quantum mechanical techniques are included and demonstrated, as well as several powerful user interface tools. The total tool kit and documentation can be found at http://waugh.cchem.berkeley.edu/blochlib/.

[1]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[2]  K. Zilm,et al.  Observation of Bulk Susceptibility Effects in High-Resolution Nuclear Magnetic Resonance , 1996 .

[3]  A. Pines,et al.  Approach to High-Resolution ex Situ NMR Spectroscopy , 2001, Science.

[4]  William H. Press,et al.  The Art of Scientific Computing Second Edition , 1998 .

[5]  B. Meier,et al.  Computer Simulations in Magnetic Resonance. An Object-Oriented Programming Approach , 1994 .

[6]  Two-dimensional high-resolution NMR spectra in matched B(0) and B(1) field gradients. , 2002, Journal of magnetic resonance.

[7]  R. Turner,et al.  Echo-planar imaging: magnetic resonance imaging in a fraction of a second. , 1991, Science.

[8]  L. Emsley,et al.  Numerical simulation of solid-state NMR experiments , 2000 .

[9]  A. Pines,et al.  Creating isotropic dipolar spectra for a pair of dipole coupled spins in high-field , 2002 .

[10]  P. Sen,et al.  Nonresonant Multiple Spin Echoes , 2002, Science.

[11]  J. Stoer,et al.  Introduction to Numerical Analysis , 2002 .

[12]  Peter Deuflhard,et al.  Recent progress in extrapolation methods for ordinary differential equations , 1985 .

[13]  Jack J. Dongarra,et al.  Automatically Tuned Linear Algebra Software , 1998, Proceedings of the IEEE/ACM SC98 Conference.

[14]  W. Warren,et al.  Resurrection of crushed magnetization and chaotic dynamics in solution NMR spectroscopy. , 2000, Science.

[15]  G. Bodenhausen,et al.  Principles of nuclear magnetic resonance in one and two dimensions , 1987 .

[16]  P. Deuflhard Order and stepsize control in extrapolation methods , 1983 .

[17]  A. Pines,et al.  Two-dimensional NMR correlations of liquid crystals using switched angle spinning. , 2002, Journal of magnetic resonance.

[18]  Scott W. Haney,et al.  Is C++ fast enough for scientific computing? , 1994 .

[19]  M Bak,et al.  SIMPSON: a general simulation program for solid-state NMR spectroscopy. , 2000, Journal of magnetic resonance.

[20]  P. Deuflhard,et al.  A semi-implicit mid-point rule for stiff systems of ordinary differential equations , 1983 .

[21]  A. Pines,et al.  Selective excitation in dipole coupled systems , 2002 .

[22]  Robert McDermott,et al.  Liquid-State NMR and Scalar Couplings in Microtesla Magnetic Fields , 2002, Science.

[23]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[24]  G. Deville,et al.  NMR multiple echoes observed in solid He 3 , 1979 .

[25]  M. Hohwy,et al.  Broadband dipolar recoupling in the nuclear magnetic resonance of rotating solids: A compensated C7 pulse sequence , 1998 .

[26]  L. Frydman,et al.  Residual dipolar couplings between quadrupolar nuclei in high resolution solid state NMR: Description and observations in the high-field limit , 2000 .