Merge release-4-6 into release-5-0
[gromacs.git] / doxygen / mainpage.md
blob9393c835f3c479cb8439ab45dd070640d2e84e04
1 \Gromacs {#mainpage}
2 =======
4 \Gromacs is a versatile package to perform molecular dynamics, i.e. simulate
5 the Newtonian equations of motion for systems with hundreds, to millions
6 of particles.  See [www.gromacs.org](http://www.gromacs.org) for more
7 information.
9 This documentation generated by Doxygen is (mostly) extracted from the source
10 code, and provides documentation for understanding the source code.
11 The documentation can be generated with different levels of details.
12 This documentation has been generated to include
13 \if internal
14 all documentation, including internal functions and classes used for internal
15 implementation purposes.
17 The main audience for this level of detail are people who want to understand
18 detailed implementation of some area, or try to find some specific function
19 within the library.  If you are overwhelmed by the amount of details, the
20 [library API documentation](../html-lib/index.xhtml) skips functions not meant
21 to be used outside a single module.
22 \elseif libapi
23 documentation of functions in the library intended for reuse within the
24 library (a subset of these functions is also exposed as a public API).
25 Also overview documentation aimed at \Gromacs developers is included at this
26 level.
28 The main audience for this level of detail are users and developers who want to
29 understand the \Gromacs code in general.
30 If you only want to call \Gromacs, but not modify it, the
31 [public API documentation](../html-user/index.xhtml) provides a cleaner entry
32 point.
33 If you are interested in internal implementation details not described here,
34 you can try searching the [full documentation](../html-full/index.xhtml).
35 \else
36 documentation of functions exposed through installed headers and intended as
37 part of a public API.  Note that definition of the public API is very
38 preliminary, and subject to change.
40 The main audience for this level of detail are users of \Gromacs who are
41 interested in writing their own analysis tools that use \Gromacs as a library,
42 as well as other developers who want to link against \Gromacs.
43 To understand the inner workings of \Gromacs, or if you want to contribute to
44 \Gromacs, see the more detailed
45 [library API documentation](../html-lib/index.xhtml) or
46 [full documentation](../html-full/index.xhtml).
47 \endif
49 Currently, only parts of the code are documented here.  The following pages
50 give an overview of some of the topics that are documented:
52  - \subpage page_codelayout <br/>
53    This is a good place to start to understand how to
54    navigate the code and the documentation.
55  - \subpage page_analysisframework <br/>
56    Provides an overview of the framework that the \Gromacs library provides for
57    writing (trajectory) analysis tools.
58  - \subpage page_usinglibrary <br/>
59    Provides general guidance for writing software that uses the \Gromacs
60    library.
61 \if libapi
62  - \subpage page_doxygen <br/>
63    Provides an overview and some instructions for using Doxygen to document the
64    source code.
65  - \subpage page_unittesting <br/>
66    Provides an overview of unit testing in \Gromacs.
67  - \subpage page_wrapperbinary <br/>
68    Provides an overview of how the `gmx` wrapper binary is implemented.
69  - \subpage page_simd <br/>
70    Documentation about the new SIMD module that makes it possible to write
71    highly accelerated CPU code that is still portable.
72 \endif
74 This list will hopefully expand over time.