Simulation Methods - Team Notes

Submitted by site admin on Thu, 2007-02-08 22:21.

List of Topics

 


Stakeholders

  • Industry and other USERS
  • Academics (primarily code/algorithm developers)
  • Commercial software developers ??



What is out there already
see Simulation Methods Other Resources

 


 

Gaps in Work Flow (Where simulation doesn't work)
opportunities

  • long time / large length scales relative to fundamental unit of the simulation
    • low-deformation rate rheology
    • phase transformations near phase coexistence
  • inhomogeneous systems and interfacial properties
    • truncation of nonbonded interactions
    • long range corrections
    • electrostatics in 2D
  • glassy systems
  • complex interaction potentials (e.g., many-body, polarizable)
  • rare events
  • phase equilibria involving crystalline phases (a biggie).



Why would developers use framework/standards and/or contribute to a code repository?

  • Somehow manage to populate it with something(s) that aren't generally available but would be generally useful. Someone who benefits from it will be more likely to be motivated to then contribute to it.



Adun
webpage
journal article

  • attempts to produce code that allows rapid development while remaining easy to maintain by shifting away from an algorithmic-centric development methodology to one that takes into account the program strucutre using object-oriented techniques
  • they desire to have a platform that will enable rapid and easy implementation of yet to be determined functionality while simultaneously avoiding burdening developers with a convoluted and hard to understand program
  • includes an XML-based template for describing force fields coupled with a flat file to XML conversion tool to allow rapid implementation of force fields
  • intended to eventually include all levels of simulation (atomistic, meso, and macro)...initially focusing on MD
  • implemented in Objective-C
  • "Adun is the result of our ambition to provide a highly scalable, easy to develop open-source platform for computer simulations that also allows rapid implementation of new functionality and protocols. This stands in contrast to many current simulation packages that cannot keep pace with the rate of change in the state of the art, a situation that has lead to a proliferation of lab-centric MD programs that implement a few related protocols that subsequently remain unknown or unused outside of a small user core."



FSAtom
webpage
summary document

  1. To spread the use of the "Free Software" concept in the community of Atomic-scale Simulation software developers,
  2. To improve the awareness of modern software engineering concepts,
  3. To constitute the natural place for interactions between different groups of developers in this field.
  • Planned Activities:
  1. maintain a Web site (hosted by CECAM) with mailing lists and with links to the relevant software projects (also to proprietary software, for information) ;
  2. through workgroups, organize the collaboration between developers : file exchange, code testing, definition of objects, exchange of development tools, exchange of expertise ... ;
  3. organize workshops and tutorials on related subjects, and on modern software engineering concepts ;
  4. maintain a contact with the Free Software foundation, and spread relevant information from it or about it;
  5. maintain a contact with relevant funding agencies or institutions, and ease (or foster) the writing of relevant proposals.
  • WorkGroups:
  1. TestingDFT coordinated by Gilles Zerah
  2. TestingMD coordinated by David van der Spoel
  3. PseudoPotentials coordinated by Karsten Jacobsen
  4. FileFormats coordinated by Mark Tuckerman
  5. InterfacesAndMiddleware coordinated by Konrad Hinsen
  6. MolecularMechanicsOpenStandards coordinated by Konrad Hinsen
  • Identified the need for accurate comparison of the results from different codes on a systematic basis via a well-defined protocol
  • Emphasized the importance of the community adopting modern software development concepts including:
  1. libraries for handling files in view of sharing and comparison of routines and codes;
  2. reusability of sources;
  3. self-documentation of codes;
  4. combination of extension and compute-intensive languages (e.g. Python+C);
  5. high-level graphics libraries;
  6. installation and maintenance tools (autoconf, automake, CVS);
  7. self-testing of code.
  • Identified a list of relevant topics:
  1. parallelism (MPI, OpenMP, ...)
  2. exchange of data (NetCDF, HDF, XML)
  3. graphics high-level libraries (VTK),
  4. techniques for optimisation of codes
  5. use of standard libraries (BLAS , LAPACK),
  6. extension languages (Python, Scheme, Tkl for user interface),
  7. installation tools (autoconf, automake)
  8. maintenance tools (CVS, bug tracking)
  9. good coding practice (especially for big projects),
  10. tools for documentation (Robodoc, Src2tex, TexInfo, Docbook)



MolecularMechanicsOpenStandards
wiki

  • a workgroup of FSAtom
  • StructuralData notes
  • ForcefieldData notes
  • General discussion about a common format for representing configurations, trajectories, force fields, etc.
  • In general, most force fields require as input the atom types (possibly forcefield-specific) and partial charges for each atom plus the bond structure. Starting with that information, all force field terms can be identified by algorithmic rules (though the rules can be quite complicated, poorly documented, and very different from one force field to another).
  • Creating an XML representation of force fields can have a number of benefits:
  1. it allows the formulation to be used interchangeably. It might be possible to search for programs which used a particular form. (Note TeX doesn't normally support symbolic algebra, but MathML can.)
  2. it allows documentation and the equations could , for example, be systematically typeset.
  3. it might allow for program simulation to validate correctness of implementation on test sets.
  • CML info:
  1. CmlCore
  2. CmlAtom
  • In Feb 2005, Konrad Hinsen released a version of the Molecular Modelling Toolkit with support for reading and writing files for chemical systems in an xml format.



eMinerals
webpage

  • The eMinerals project is intended to provide a "grid computing" environment to address problems of environmental interest using a wide variety of computational tools such as quantum mechanics, classical molecular dynamics and Monte Carlo. The emphasis is on the use of existing codes and on ways to manage the system inputs/outputs so that it is transparent to the user. This is a non-trivial task as both the grid and the users are at several distinct sites in the UK.
  • Computer security issues are not discussed. Note that computer security concerns have restricted grid computing at NIST to a limited set of machines on a network with carefully llimited access. Only with strong limitations can security issues be resolved.



The Molecular Modeling Toolkit (MMTK)
webpage
[E-mail for Konrad Hinsen, developer: hinsen@llb.saclay.cea.fr]

Modular/Efficient/Robust/Easy

The Molecular Modeling Toolkit lives up to its name since it is a toolkit (or library) of open source Python modules for creating Python-scripted molecular simulation applications. At first glance, the MMTK appears to be only for life science applications, but the object-oriented nature of the Python language makes this modeling environment easy to use outside of the life science area. Also, if new simulation methods or force fields need to be created and tested, then additional Python modules can be written to interact with the MMTK. The only (minor) reservation that I have is that Python executes relatively slowly compared with C and Fortran. Time-critical computations could be written in C since there is an interface with Python. Overall, the MMTK offers a good start in providing a set of modules within the Python environment for creating simulation applications.

Workflow

From what I can tell, the MMTK does have modules for problem set up, through convergence, to analysis but not really for a broad range of problems. However, the modularity of the Python language would allow the development of the necessary modules to cover many different types of problems. There is no GUI for workflow; one would have to be built on top of MMTK.

Database

Although there is no database for simulation and relevant experimental results, MMTK does have a user-configurable database which defines atoms, functional groups, molecules, and proteins. This type of database is also important, mainly for setting up the input for a simulation.


 
Relevant Feedback

  • On the topic of GUIs, (Marcus Martin (email received 30 Sept 05)): "While your desire to create a GUI for multiple other packages is admirable, my experience with folks who have on and off be working on a GUI for Towhee is that a truly useful GUI takes an incredible amount of effort. I have watched many GUI projects start, sputter, and then fail...I have found little actual interest in using a GUI from my user base. It only truly becomes useful once it has quite complicated features like the ability to draw a molecule and have a force field automatically assigned based on that drawing. Not something that is a simple code project."