Glotzilla Overview

Glotzilla provides programming tools for writing molecular simulation and data analysis codes that are efficient, accurate, reusable and extendable. Specifically, Glotzila provides:

  1. A class library for generating custom molecular simulation codes
  2. Executable codes for visualization, data analysis, etc.

Rationale

Typically, researchers in soft-matter and condensed matter write their own codes or use standard simulation packages. While standard codes are efficient and accurate, they are not typically flexible. While custom codes are flexible, they are typically not reusable. We take a unique approach to writing simulation and data analysis tools by providing many independent "class objects" that can be fit together like puzzle pieces to form custom simulation codes and analysis tools. This allows the codes to be efficient and accurate like a standard distribution (since the classes are tested and optimized) but also reusable and extendable like a custom code (since the classes can be pieced together in many different ways and new custom classes can be added to the framework). In addition to providing classes, Glotzilla comes with many useful programs that we have generated by using the classes. We note that Glotzilla was originally inspired by Etomica, a Java class library written by Dave Kofke, Andrew Schultz, et al. (http://www.etomica.org/).

Philosophy

  1. Intuitiveness - classes should be readily understandable at first glance. The hierarchy should value end-user simplicity over programmer elegance.
  2. Accuracy - check classes for errors and bugs before releasing into the main distribution
  3. Reusability - classes should fit together via common interfaces
  4. Extensibility - users should be able to easily add their own classes to expand functionality
  5. Interoperability - Glotzilla should communicate with other simulation codes via a common API
  6. Portability - depend only on ANSI C++ facilities as much as possible
  7. Efficiency - should be fast / scalable enough to be used as a serious research tool

Features

  • Molecular Simulations (specialized towards soft/condensed-matter applications)
    • Molecular Dynamics (MD)
    • Brownian Dynamics (BD)
    • Dissipative Particle Dynamics (DPD)
    • Monte-Carlo (MC)
  • Data Analysis
    • Structure
      • Radial Distribution Function g(r)
      • Structure Factor S(q)
      • Cluster identification library
        • Spherical Harmonic descriptors
        • Fourier transform descriptors
        • etc.
    • Dynamics
      • Mean-squared Displacement
      • Spatially heterogenous dynamics
      • Strings
      • Mobile Clusters
      • Four-point succeptibility
  • Visualization
    • Built-in OpenGL
      • Real-time interaction with systems
      • Real-time visualization of molecular simulations
      • Post-processing
      • Export publication-quality images
    • VMD interface
      • Real-time visualization of molecular simulations
      • Connect to running simulations over a network connection
      • Post-processing
      • Export publication-quality images

Other Implementations

  1. Etomica - A very similar library with slightly different goals written in Java.
  2. LAMMPS - A fast parallel molecular simulation code written in C++.