sire is implemented as a primary module, with a collection
>>> import sire as sr
This imports the main module, which is the primary gateway into all of
the functionality of
This is designed so that you (mostly) only need to call functions from this main module. These functions will create objects and call functions from the various sub-modules. You will rarely need to call functions or create classes from the sub-modules directly yourself.
sire.load() will use the file parsers defined
sire.io to load molecules (each represented as a
sire.mol), and will return the result as a
System (defined in
Key sub-modules are:
sire.mol- defines all of the objects that are used to represent and manipulate molecules (and views of molecules).
sire.units- implements a complete set of units so that all physical quantities are represented by proper units / dimensions.
sire.cas- this is a complete computer algebra system (CAS), used to flexibly define interaction functions for calculating energies and forces between atoms and molecules.
sire.io- all of the input/output classes used to read and write molecular data to and from files.
sire.base- a set of base classes and functions that includes a property system with associated containers for flexibly holding and manipulating objects of different types, and mapping them between the C++ and Python layers of
sire.stream- provides functions that support streaming (pickling) of all
sireobjects to an from a cross-platform, versioned binary format. This allows all C++ objects to be pickled via standard Python pickle.
sire.vol- provides different spaces (volumes) that can be used to calculate distances between points with different boundary conditions.
sire.utils- a miscellaneous collection of utilities that are Python-only, and don’t fit neatly into any of the other sub-modules.