SMILE  v2.5
Schwarzschild Modelling Interactive expLoratory Environment
Public Types | Public Member Functions | List of all members
smile::CBasicSchwData Class Referenceabstract

Base class for Schwarzschild Data objects. More...

#include <schwarzschild.h>

Inheritance diagram for smile::CBasicSchwData:
Inheritance graph
[legend]

Public Types

enum  SCHWDATATYPE {
  SD_UNKNOWN =0, SD_DENS =0x100, SD_KINEM =0x200, SD_DENS_SPATIAL_GRID =0x40,
  SD_DENS_SPHERICAL_HARMONIC =0x80, SD_DENS_GRIDCLASSIC =SD_DENS | SD_DENS_SPATIAL_GRID | 1, SD_DENS_GRIDCYLINDRICAL =SD_DENS | SD_DENS_SPATIAL_GRID | 2, SD_DENS_SHBSE =SD_DENS | SD_DENS_SPHERICAL_HARMONIC | 3,
  SD_DENS_SHMESH =SD_DENS | SD_DENS_SPHERICAL_HARMONIC | 4, SD_KINEM_SHELL =SD_KINEM| 1, SD_KINEM_ANGMOMDIST =SD_KINEM| 2
}
 Lists all possible variants of data objects. More...
 

Public Member Functions

virtual SCHWDATATYPE dataType () const =0
 descendant classes return their type
 
virtual std::string dataName () const =0
 string identificator of the class
 
virtual size_t numConstraints () const =0
 number of constraints that this kind of data object handles
 
virtual double getConstraint (size_t index) const =0
 return the value of the given constraint
 
virtual double getConstraintNormFactor (size_t) const =0
 return a scaling coefficient which is used to normalize the penalty for constraint deviation in the optimization problem. More...
 
virtual double getOrbitConstraint (size_t index, const CSchwInformation *info) const =0
 decode constraint value from an information object stored for a given orbit
 
virtual bool isSchwInformationCorrect (const CSchwInformation *info) const =0
 check compatibility of information object for an orbit with this data object
 

Detailed Description

Base class for Schwarzschild Data objects.

Each object stores the information about some property of the model, like the mass in each cell of the classic grid-based Schwarzschild model. The information is stored in array(s) of abstractly defined constraints, which are needed to be satisfied in some way (exactly or approximately, or within a given tolerance) in the course of modelling.

The instances of descendant classes are constructed for a given potential, which is not used thereafter, and represent the relevant data for the entire model.

They also provide the way of computing the values of constraints for each orbit. This is done by corresponding orbit runtime functions, derived from CBasicOrbitRuntimeFnc; each variant of Schwarzschild data object has its associated runtime function which uses specific methods of this class to compute the constraints for a given orbit.

Member Enumeration Documentation

Lists all possible variants of data objects.

Enumerator
SD_UNKNOWN 

undefined

SD_DENS 

all variants of density information

SD_KINEM 

all variants of kinematic information

SD_DENS_SPATIAL_GRID 

all density models based on partitioning the configuration space by a grid

SD_DENS_SPHERICAL_HARMONIC 

all density models based on angular spherical-harmonic expansion

SD_DENS_GRIDCLASSIC 

the classic grid-based Schwarzschild density model: CSchwDataDensGridClassic

SD_DENS_GRIDCYLINDRICAL 

cylindrical grid: CSchwDataDensGridCylindrical

SD_DENS_SHBSE 

model based on BSE potential expansion: CSchwDataDensSHBSE

SD_DENS_SHMESH 

model based on spherical-harmonic expansion on a radial mesh: CSchwDataDensSHMesh

SD_KINEM_SHELL 

kinematic information about radial and tangential velocity dispersion as a function of radius: CSchwDataKinemShell

SD_KINEM_ANGMOMDIST 

kinematic information about angular momentum distribution at given energy

Member Function Documentation

virtual double smile::CBasicSchwData::getConstraintNormFactor ( size_t  ) const
pure virtual

return a scaling coefficient which is used to normalize the penalty for constraint deviation in the optimization problem.

Introduced to make the optimization problem more uniformly scaled (//optional, by default returns 1)

Implemented in smile::CSchwDataDensSHBSE, smile::CSchwDataDensSHMesh, smile::CSchwDataDensGrid, and smile::CBasicShellSchwData.


The documentation for this class was generated from the following file: