mc++ is a simple, but efficient program for thermodynamic Monte Carlo simulations of fluid and fluid mixtures. The program is written in C++ (hence the name), object oriented, and rather compact. It can be easily extended (e.g., new pair potentials can be added), and may be useful for teaching purposes.
mc++ can handle mixtures of an arbitrary number of components. The molecules may have an arbitrary number of atoms or groups, but must be rigid. The recent version can handle partial electrical charges by Ewald summation (still a somewhat experimental feature).
Refer to the documentation included in the installation package for a description of the program options.
Note: The recent configure script recognizes Linux and MacOS only. If you have a different operating system, you may have to modify the configure script. Please send us your configure script, and we will build your changes into the official distribution.
mc++ distinguishes between molecules and
models. The model represents the invariant properties
of a molecule (in other words: the species): the name, the
number of atoms/groups, the structure, … Within
Within mc++, there is a vector of Model1 instances, and each vector element represents a molecular species.
The molecules are represented as instances of the Molecule class. These contain the actual coordinates, and pointers to the associated Model1 and Model2.
mc++ can use NVT and NpT simulation ensembles.
A particular feature of mc++ is that a simulation run, after the equilibration phase, can split into several threads which run in parallel. This not only saves time on multi- processor machines, but lets the user check how fast the correlation between the threads gets lost.
Implemented pair potentials (“models”)