Molecular - ProkopHapala/SimpleSimulationEngine GitHub Wiki
Computational chemistry tool for operations with atoms, molecules and crystals. These include Molecular-Mechanics Force-Fields (both reactive-forcefield and classical force filed with harmonic bonds defined by molecular graph) as well as semi-quantum solvers. There is also solver for fast interactions of rigid molecules (including GPU/OpenCL implementation) and fast exploration of configurations of rigid molecules on surface.
Directories:
/cpp/common/molecular/... Solvers, algorithms, tools/cpp/sketches_SDL/Molecular/... tests/exmaples with GUIcpp/Build/apps/MolecularEditorandcpp/Build/apps/MolecularEditor2for aps/cpp/libs/Molecular/... libraries for solvers which can be easily integrate with Python using ctypes/python/pyMolecular... python API to molecular libs
Classical Molecular Mechanics
/cpp/sketches_SDL/apps/MolecularEditor/- GUI for manipulating and relaxing molecules, especially on a substrate. Especially interesting is fast Grid-based implementation of non-covalent interaction with rigid molecules/crystals (/cpp/common/molecular/GridFF.h)/cpp/sketches_SDL/Molecular/test_MMFFmini.cpp- test of Minimalistic implementation of molecular mechanis forcefields (bonds, angles, dihedrals), use/cpp/sketches_SDL/Molecular/MMFFBuilder.hand/cpp/sketches_SDL/Molecular/Molecule.hfor building molecular graph and assigning forcefield. Also use external class to evaluate non-covalent forces/cpp/common/molecular/NBFF.h./cpp/sketches_SDL/Molecular/test_SoftMolecularDynamics.cpp- older less minimalistic implementation of MolecularMechanics force-field (MMFF) where non-covalent forces are not separated/cpp/sketches_SDL/Molecular/test_ConfDynamics.cpp- Configuration search for RigidBody molecules./cpp/common/molecular/QEq.h- Electron Equilibration algorithm to automatically assign partial charge to Molecular-Mechanis forcefield.
Reactive Force-fields
/cpp/sketches_SDL/Molecular/test_RARFF.cpp- Rigid-atom reactive force-field (RARFF) - reactive force-field for atoms defined as rigid objects with given number of bonds (sp3 - tetraedr, sp2 - triangle, sp-, + capping hydrogens). Super simple, but possibly not working correctly forall cases (bonds are possibly not exclusive?)./cpp/sketches_SDL/Molecular/test_RARFF2.cpp- Rigid-atom reactive force-field 2 (RARFF2) - improved version with RARFF, which is using more sophisticated angular terms forming correct exclusive bonds (at the cost of slightly increaded complexity)/cpp/sketches_SDL/Molecular/test_FARFF.cpp- Flexible-atom reactive force-field (FARFF) - derived from RARFF2 but angles between bonds and electron paris and pi electrons on each atom are not fixed, instead there are angular terms between them.
Electron Mechanics Force-Field
/cpp/sketches_SDL/Molecular/test_eFF.cpp- Implementation of original Electron Force-Filed (eFF) acording to (http://dx.doi.org/10.1016/j.mechmat.2015.02.008) with single gassian function per electron./cpp/sketches_SDL/Molecular/test_CLCFGO.cpp- Compact linear-combination of Floating Gaussian Orbritals is an extension of electron frocefield with multiple gaussian orbitals (each with different center, width and amplitude) in order to better describe more clomplex bonding molecular orbitals, such as pi-orbitals. Similarily to eFF, the Pauli exclusion principle between single-electron functions is treated by semi-empirical term (polynominal of overlap), in order to avoid building costly Slater-Determinant./cpp/sketches_SDL/Molecular/test_CLCFSF.cpp- Compact Linear Combination of Floating Spherical Functions is using expansion of single electron function over several spherical functions. In this case, however, the functions are not Gaussians but an arbitrary compact-support radial function. These function are than multiplied by angular functions {s,px,py,pz}. This can be potentially more efficient than CLCFGO.