190 likes | 398 Views
Masood Malekghassemi. Exploring C-Chem with numeric MM and Ab-Initio methods. The Project. Comptuational Chemistry Methods Step 1: Molecular Mechanics Step 2: Ab-initio quantum chemical methods Analysis and translation of Ab-initio quantum chemical methods to molecular mechanics rules
E N D
Masood Malekghassemi Exploring C-Chem with numeric MM and Ab-Initio methods
The Project • Comptuational Chemistry Methods • Step 1: Molecular Mechanics • Step 2: Ab-initio quantum chemical methods • Analysis and translation of Ab-initio quantum chemical methods to molecular mechanics rules • Step 3: AI
Concepts of Molecular Mechanics • Force field • Defines how things interact • Simple particle mechanics, ball and spring model (basically what we did in AI mixed in with Parallel computing + making it look pretty)
Framework for Molecular Mechanics • Identities • The different kinds of atoms and/or groups – may be particular atoms in specific functional groups • Rules • Governs the quantization of energy of particular shapes and orientations of the molecule's constituents • Atoms and Atom Collections • Atoms and/or groups governed by rules through their identities
The Rules • The rules are the main difference between this program and other molecular mechanics programs • Provides a generic interface to govern a system through energetic interactions • Can be generated from arbitrary information • Will be made more generic by having types in themselves be data structures rather than hard-coded enumerations
Molecular Mechanics • Self-Consistent Field Method (SCF) • Iterate over various orientations and shapes, checking for lower energies. • Maximize energy or minimize energy • Genetic Algorithms (more easily made parallel in the future) • Display via dynamically updating 'Rule' view • AtomsViewerRule utilizes a 'view' of an Atom Collection to allow the GUI module to display the simulated system at any point in the simulation
Basics of Ab Initio methods • The underlying methods • Schrodinger equation: H*Psi = E*Psi • Pseudo-eigenvalue/eigenfunction form • H is a 'matrix' operator, Psi the wave'function', E the energy 'eigenvalue'. • Solve either Ab Initio or semi-empirically • Have finished neither – project may have been too ambitious in terms of what was necessary to self-teach • *cough*graduate-level-math*cough*
Ab-initio Methods • Uses wavefunctions • Represented by various functions • Slater Type Orbitals: N*exp(-a*r) • Gaussian Type Orbitals: N*exp(-a*r^2) • General contraction: a linear combination • c1*f1(x) + c2*f2(x) ... cn*fn(x) • Solves eqns via variational method • Think differential equations, except more epic
Variational Method • The idea is to find minima: • The energy of a system with wavefunctions is given by <Psi|H|Psi> / <Psi|Psi> • Psi is parameterized • Find stationary points w.r.t. the parameters • Identify minima • Boom – you have your minimum energy
Perturbation • The N-body problem is impossible to solve analytically • Simplify the problem of atoms and electrons to many 2-body problems • Add in the N-body elements later • Makes life a little bit easier with divide and conquer, essentially.
Artificial Intelligence • The lofty goal of the project (of course it's unaccomplished). • Take the numeric values from all-periodic table calculations and transform them into force field input for molecular mechanics applications. • Not even at the point where I'm thinking about it.
Current Project • ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
More images Left: 4p orbital, only partially through (note only 3 nodes) Up: 5f orbital – caught the image while it's refreshing, so you might see an artifact
What It Does So Far: • It used to display the MM portion as it ran • Doesn't anymore – old version was lost in mad Eclipse IDE rampage (no back-ups <_<) • It displays the wavefunctions (based on the spherical harmonic function and a general contraction of gaussian functions). • Can perform overlap and KE integration of wavefunction representations over all space • Totally analytical (so much research...)
Mini-CAS • To do the integrations, basically made a partial CAS • Represent multi-dimensional polynomials (the crux of the work) • Integrate/Differentiate said polynomials • Cartesian Gaussian Functions (for GTOs) • Expand the polynomials, are general enough for the following kinds: • Legendre • Laguerre • Ricola ← my personal misnomer
Mini-CAS • Can perform Jacobi diagonalization of symmetric matrices • By extension, gets the eigenvectors (requisite for EHM + HF) • By extension, it can find the eigenvalues of square matrices (requisite for Ab Initio methods)
Math Library • As for actual programming techniques, there are a few I've employed • SFINAE (C++ specific) • ScalarTraits • ScalarTraits_Tools • HalfInteger specializations • Class definition overloading • Variadic function argument iterators • Makes life easier when dealing with tensors in general
Conclusions • Overestimated my ability to understand complex mathematics in the first quarter. • Restarted the molecular mechanics portion 5-6 times in the second and third quarters. • Currently have nothing to show from that work – it was all deleted after I'd screwed with my IDE too much... • Attempted to work on the Ab Initio portions fourth quarter – failed to make it in time for TJSTAR • Also got food poisoning the night before <_<