Molecular Dynamics Class LibraryObjectMD is the name that comes to my mind when I first typed the code. It is fully object oriented designed. Every main entity of a Molecular dynamics application is implemented as a plug-able/embeddable object. They are called the gadgets. Gadgets are classified into conditioner and detector gadgets. A conditioner is used to do some modification to the system and a detector if for doing any measurements. All of gadgets are managed by the simulations main class. They are attached to the system on the creation stage and initialized by the main class in the initialization stage. All gadgets have full access to the main classes atoms, as if the atoms belong to them. To make a new molecular dynamics project, a user must inherit the main class, which is implemented as an abstract class in the core ObjectMD code. The concrete (directly usable) classes are collected as a user space class library. They are not implemented inside the core library, instead, provided as a raw c++ class definitions, independent to the core. This concrete classes are store in the include/class directory. The user should interact mostly with them, rather than with the core.
|