GROMACS
Template:Short description Template:Cs1 config Template:Infobox software
GROMACS is a molecular dynamics package mainly designed for simulations of proteins, lipids, and nucleic acids. It was originally developed in the Biophysical Chemistry department of University of Groningen, and is now maintained by contributors in universities and research centers worldwide.<ref>Template:Cite web</ref><ref name="Van_Der_Spoel_2005">Template:Cite journal</ref><ref name="Hess_2008">Template:Cite journal</ref> GROMACS is one of the fastest and most popular software packages available,<ref>Template:Cite journal</ref><ref>Template:Cite journal</ref> and can run on central processing units (CPUs) and graphics processing units (GPUs).<ref>Template:Cite web</ref> It is free, open-source software released under the GNU Lesser General Public License (LGPL)<ref name="About GROMACS"/> (GPL prior to Version 4.6).
History
The GROMACS project originally began in 1991 at Department of Biophysical Chemistry, University of Groningen, Netherlands (1991–2000). Its name originally derived from this time (GROningen MAchine for Chemical Simulations) although currently GROMACS is not an abbreviation for anything, as little active development has taken place in Groningen in recent decades. The original goal was to construct a dedicated parallel computer system for molecular simulations, based on a ring architecture (since superseded by modern hardware designs). The molecular dynamics specific routines were rewritten in the programming language C from the Fortran 77-based program GROMOS, which had been developed in the same group.Template:Citation needed
Since 2001, GROMACS is developed by the GROMACS development teams at the Royal Institute of Technology and Uppsala University, Sweden.
Features
GROMACS is operated via the command-line interface, and can use files for input and output. It provides calculation progress and estimated time of arrival (ETA) feedback, a trajectory viewer, and an extensive library for trajectory analysis.<ref name="About GROMACS"/> In addition, support for different force fields makes GROMACS very flexible. It can be executed in parallel, using Message Passing Interface (MPI) or threads. It contains a script to convert molecular coordinates from Protein Data Bank (PDB) files into the formats it uses internally. Once a configuration file for the simulation of several molecules (possibly including solvent) has been created, the simulation run (which can be time-consuming) produces a trajectory file, describing the movements of the atoms over time. That file can then be analyzed or visualized with several supplied tools.<ref>Template:Cite web</ref>
GROMACS has had GPU offload support since Version 4.5, originally limited to Nvidia GPUs. GPU support has been expanded and improved over the years,<ref>Template:Cite journal</ref> and, in Version 2023, GROMACS has CUDA, OpenCL, and SYCL backends for running on GPUs of AMD, Apple, Intel, and Nvidia, often with great acceleration compared to CPU. <ref>Template:Cite web</ref>
Easter eggs
Template:As of, GROMACS' source code contains approximately 400 alternative backronyms to GROMACS as jokes among the developers and biochemistry researchers. These include "Gromacs Runs On Most of All Computer Systems", "Gromacs Runs One Microsecond At Cannonball Speeds", "Good ROcking Metal Altar for Chronical Sinner", "Working on GRowing Old MAkes el Chrono Sweat", and "Great Red Owns Many ACres of Sand". They are randomly selected to possibly appear in GROMACS's output stream. In one instance, such an bacronym, "Giving Russians Opium May Alter Current Situation", caused offense.<ref>Template:Cite web</ref>
Applications
Under a non-GPL license, GROMACS is widely used in the Folding@home distributed computing project for simulations of protein folding, where it is the base code for the project's largest and most regularly used series of calculation cores.<ref>Template:Cite web</ref><ref>Template:Cite book</ref> EvoGrid, a distributed computing project to evolve artificial life, also employs GROMACS.<ref>Template:Cite web</ref><ref>Template:Cite news</ref>
See also
Template:Portal Template:Columns-list