\Gromacs {#mainpage}
=======
\Gromacs is a versatile package to perform molecular dynamics, i.e. simulate
the Newtonian equations of motion for systems with hundreds, to millions
of particles. See [www.gromacs.org](http://www.gromacs.org) for more
information.
This documentation generated by Doxygen is (mostly) extracted from the source
code, and provides documentation for understanding the source code.
The documentation can be generated with different levels of details.
This documentation has been generated to include
\if internal
all documentation, including internal functions and classes used for internal
implementation purposes.
The main audience for this level of detail are people who want to understand
detailed implementation of some area, or try to find some specific function
within the library. If you are overwhelmed by the amount of details, the
[library API documentation](../html-lib/index.xhtml) skips functions not meant
to be used outside a single module.
\elseif libapi
documentation of functions in the library intended for reuse within the
library (a subset of these functions is also exposed as a public API).
Also overview documentation aimed at \Gromacs developers is included at this
level.
The main audience for this level of detail are users and developers who want to
understand the \Gromacs code in general.
If you only want to call \Gromacs, but not modify it, the
[public API documentation](../html-user/index.xhtml) provides a cleaner entry
point.
If you are interested in internal implementation details not described here,
you can try searching the [full documentation](../html-full/index.xhtml).
\else
documentation of functions exposed through installed headers and intended as
part of a public API. Note that definition of the public API is very
preliminary, and subject to change.
The main audience for this level of detail are users of \Gromacs who are
interested in writing their own analysis tools that use \Gromacs as a library,
as well as other developers who want to link against \Gromacs.
To understand the inner workings of \Gromacs, or if you want to contribute to
\Gromacs, see the more detailed
[library API documentation](../html-lib/index.xhtml) or
[full documentation](../html-full/index.xhtml).
\endif
Currently, only parts of the code are documented here. The following pages
give an overview of some of the topics that are documented:
- \subpage page_codelayout
This is a good place to start to understand how to
navigate the code and the documentation.
- \subpage page_analysisframework
Provides an overview of the framework that the \Gromacs library provides for
writing (trajectory) analysis tools.
- \subpage page_usinglibrary
Provides general guidance for writing software that uses the \Gromacs
library.
\if libapi
- \subpage page_doxygen
Provides an overview and some instructions for using Doxygen to document the
source code.
- \subpage page_unittesting
Provides an overview of unit testing in \Gromacs.
- \subpage page_wrapperbinary
Provides an overview of how the `gmx` wrapper binary is implemented.
- \subpage page_simd
Documentation about the new SIMD module that makes it possible to write
highly accelerated CPU code that is still portable.
\endif
This list will hopefully expand over time.