SMILE  v2.5
Schwarzschild Modelling Interactive expLoratory Environment
SMILE documentation


SMILE is a software for orbit analysis and Schwarzschild modelling of stellar systems. The primary applications are:

The software comes in two versions – the GUI interactive program (implemented in CSmileGUI class), which forms an interface over the main business logic layer implemented in CSmileCore class, and a console tool whose functionality is implemented in CSmileConsole class. In addition, there are several standalone utility programs:

The user's guide and the mathematical background behind several algorithms employed in the software can be found here, while the scientific description of Schwarzschild modelling is given in the code paper.

Obtaining and compiling the software

The software can be obtained at Compiled versions for several platforms are available; if you need to compile it from source then read this section.

The following third-party libraries are required:

The following libraries or external programs are optional:

Check smile.pri for the correct paths to libraries and set the compilation options HAVE_*** according to the available optional components, then run qmake, then make; repeat for qmake

Version history

v1.0 (March 2011): initial release (not advertised anywhere)

v1.1 (July 2011): implemented a broader class of basis-set expansion, fixed some bugs.

v2.0 (1 August 2013): first major public release, accompanies the paper [Vasiliev, 2013, MNRAS]

v2.1 (late 2013): non-public, accompanies the paper [Vasiliev,Antonini,Merritt, 2014, ApJ]

v2.2 (March 2014): non-public, accompanies the papers [Vasiliev, 2014, Clas.Quant.Grav. and Vasiliev, 2014, MNRAS]

v2.5 (1 February 2015): second major public release, accompanies the paper [Vasiliev&Athanassoula 2015] substantially expanded feature set:

Overview of the software structure

The class hierarchy of SMILE is designed to have reasonably abstract interfaces between different parts of the code.

Ufff.. that's the basic outline of the relationships between various classes in SMILE; for details refer to the documentation of particular modules and classes. It looks quite complex, but probably is inevitable to achieve the necessary level of generality and abstraction.

Coding conventions