Molecular Dynamics

welcome to CAVIAR official page

CAVIAR is an open-source simulation software purposed to perform molecular dynamics (MD) of soft matter physics. CAVIAR is an acronym for Charged pArticles in enVironments surrounded by conductIve boundARies, and is aimed for simulation of ionic-liquids or charged colloids inside conductive boundaries. In addition to that, it has other abilities such as,

CAVIAR have a few examples that make it easy to learn. In order to run a simple simulation you only have to read examples. We have provided some useful examples such as simple LJ atomic simulations, polymers, water, granular material in hopper, and charged particles (ionic-liquids) between polarized conductive electrodes. These examples are discussed in the CAVIAR user manual. The user manual is concise but enough for start. It has the installation instructions with some tutorials for geometry and mesh design. The CAVIAR tools for prepossessing and post-processing are described in the manual. There’s Doxygen manual which can be generated by the user. Moreover, we have a short developer manual for addition of new routines and objects to the package.


CAVIAR has many features that make it more efficient and more user-friendly. CAVIAR could be performed on parallel processors. This will make the CAVIAR faster on certain algorithms. CAVIAR is parallelized using MPI (Massage Passing Interface). CAVIAR has scripting language named CASL that makes the CAVIAR quite easy to use. One of the most important features of CAVIAR is that it is open-source and also developer-friendly. The only qualifications needed to develop CAVIAR is to have an intermediate level C++ programming skill.

CAVIAR scripting language (CASL)

We have developed a simple syntax scripting language for CAVIAR. To run a simulation, you have to write the script in a separated file. This file has ‘.casl’ suffix. Some of its features are as follow:

CAVIAR is tried to be developer-friendly as much as it is user-friendly. If any software is going to last-long, its structure should be as consistent as possible. We tried to use SOLID programming alongside object-oriented paradigm. For the future major releases, we may change the whole package structure if we realized it needed. We did that a lot during initial stages of the CAVIAR. Any change should not affect the users. It won’t change the scripts. In every version, everything should be better, more general and less prone to the bugs. The code should become more beautiful and cleaner. We accept all the suggestions and helps from anyone who likes to contribute.