SMILE  v2.5
Schwarzschild Modelling Interactive expLoratory Environment
Classes | Namespaces
schwarzschild.h File Reference

Classes that compute and store various data for Schwarzschild modelling, and the driver class for performing modelling. More...

#include "common.h"
Include dependency graph for schwarzschild.h:
This graph shows which files directly or indirectly include this file:

Classes

class  smile::CBasicSchwData
 Base class for Schwarzschild Data objects. More...
 
class  smile::CBasicSchwModel
 Base class for Schwarzschild Modelling driver objects. More...
 
class  smile::CMatrixBasicSchwModel
 matrix interface class that passes the linear matrix elements from Schwarzschild model object to the solver More...
 
class  smile::CBasicShellSchwData
 Base class for storing kinematic information on a radial grid. More...
 
class  smile::CSchwDataKinemShell
 Schwarzschild data object to handle (rudimentary) kinematic data, in the form of radial and tangential velocity dispersions in a number of radial shells. More...
 
class  smile::CSchwDataAngMomDist
 Schwarzschild data object to manage kinematic data in the form of binned angular momentum distribution as a function of energy. More...
 
class  smile::CSchwDataBasicDens
 Base class for density data objects. More...
 
class  smile::CSchwDataDensGrid
 Base class for Schwarzschild data objects with grid-based density model. More...
 
class  smile::CSchwDataDensGridClassic
 Schwarzschild data object for the classic grid-based density model. More...
 
class  smile::CSchwDataDensGridCylindrical
 Schwarzschild data object for the grid-based density model in cylindrical geometry. More...
 
class  smile::CSchwDataDensSH
 Base class for variants of Schwarzschild density data objects based on spherical-harmonic expansion of density of both target model and orbits. More...
 
class  smile::CSchwDataDensSHMesh
 Variant of Schwarzschild density data object based on spherical-harmonic expansion of potential coefficients at radial mesh points. More...
 
class  smile::CSchwDataDensSHBSE
 Variant of Schwarzschild density data object based on basis-set expansion in terms of Zhao(1995) basis set for density of both required profile and of orbits. More...
 
class  smile::CSchwInformation
 Information object that keeps density data for all variants of Schwarzschild data objects. More...
 
class  smile::COrbitRuntimeSchwKinemShell
 Runtime function recording shell-based kinematic data (time spent in each shell and radial/tangential velocity dispersion in a shell). More...
 
class  smile::COrbitRuntimeSchwKinemShellCreator
 corresponding creator class for shell-kinematic Schw runtime function More...
 
class  smile::COrbitRuntimeSchwAngMomDist
 Runtime function recording binned angular momentum distribution. More...
 
class  smile::COrbitRuntimeSchwAngMomDistCreator
 corresponding creator class for angular momentum Schw runtime function More...
 
class  smile::COrbitRuntimeSchwDensGrid
 Runtime function corresponding to classic 3d-grid Schwarzschild density data object. More...
 
class  smile::COrbitRuntimeSchwDensGridCreator
 corresponding creator class for classic Schw runtime function More...
 
class  smile::COrbitRuntimeSchwDensSH
 Runtime function corresponding to Schwatzschild density data object based on spherical-harmonic expansion of potential coefficients at radial grid points or for some radial basis functions (serves both variants) More...
 
class  smile::COrbitRuntimeSchwDensSHCreator
 corresponding creator class for SH Schw runtime function More...
 
class  smile::CSchwModelQuadOpt
 The class for performing Schwarzschild modelling of density and kinematic data from the theoretical point of view (without "observational errors"). More...
 
class  smile::CChaosOrbitFilteringFnc
 Orbit filtering function that evaluates chaotic properties of an orbit, based on threshold in frequency diffusion rate and in Lyapunov exponent value, multiplied by some predefined factor. More...
 
class  smile::CCentrophilicOrbitFilteringFnc
 Orbit filtering function that selects centrophilic orbits. More...
 
class  smile::CAngMomOrbitFilteringFnc
 Orbit filtering function that evaluates the z-component of angular momentum of an orbit. More...
 

Namespaces

 smile
 common namespace for all core SMILE classes, functions and variables
 

Typedefs

------- Definition of base (abstract) classes --------
typedef std::vector< const
CBasicSchwData * > 
smile::vectorSchwData
 array of heterogeneous data objects to be used simultaneously in the modelling
 

Functions

------- Miscellaneous functions --------
void smile::createRadialGrid (const CDensity *density, size_t numShells, double totalMass, double innerShellMass, double outerShellMass, vectord *grid)
 convenience function that creates a "non-uniform grid" in mass and returns array of corresponding radii.
 
const char * smile::getSchwDataNameByType (CBasicSchwData::SCHWDATATYPE dataType)
 Correspondence between Schw.model names and types. More...
 
CBasicSchwData::SCHWDATATYPE smile::getSchwDataTypeByName (const std::string &DataName)
 return Schwarzschild data type associated with the text name (Classic by default)
 
CBasicOrbitRuntimeFncCreator * smile::createSchwCreator (const CBasicSchwData *schwData)
 convenience function to return an orbit runtime function creator associated with a given Schwarzschild data class
 

Detailed Description

Classes that compute and store various data for Schwarzschild modelling, and the driver class for performing modelling.

Author
EV
Date
2009-2014

Class hierachy for Schwarzschild modelling is split into two connected class lineages.

The Data objects, descendants of smile::CBasicSchwData, are used to represent various density and kinematic data. They must be initialized prior to orbit library construction. Each data class implements the computation of constraints for a given potential model and for each orbit, and has a corresponding orbit runtime function which records the necessary data for each orbit (and its associated runtime function creator class). All data classes share the same information class (smile::CSchwInformation), which stores the data as a plain 1d array and has an additional flag specifying the data class. In the present version, three variants of density models (Classic, BSE and Spline) and one fairly simple kinematic data model (which allows to specify velocity anisotropy coefficient as a function of radius) are implemented.

The Modelling class is constructed only temporary for solving the problem of finding orbit weights which reproduce the set of constraints specified by one or more individual data objects, by solving some kind of optimization problem (i.e. quadratic optimization, non-negative least squares, etc.). Presently there is only one implementation, CSchwModelQuadratic. It combines several data classes (e.g. one for density model and one for kinematic data) into one set of linear equations with some objective(penalty) function to be minimized, and calls an instance of LP/QP solver to obtain the solution. Another function implemented in the is the statistical information about the quality of the model (i.e. the number of infeasible constraints, the spread in orbit weights, etc.) This statistics may be obtained without invoking the optimization itself.