SMILE  v2.5
Schwarzschild Modelling Interactive expLoratory Environment
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
smile::CSchwDataDensSHMesh Class Reference

Variant of Schwarzschild density data object based on spherical-harmonic expansion of potential coefficients at radial mesh points. More...

#include <schwarzschild.h>

Inheritance diagram for smile::CSchwDataDensSHMesh:
Inheritance graph
[legend]
Collaboration diagram for smile::CSchwDataDensSHMesh:
Collaboration graph
[legend]

Public Member Functions

 CSchwDataDensSHMesh (const CDensity *density, size_t _numShells, double innerShellMass, double outerShellMass, size_t _Nang)
 
virtual SCHWDATATYPE dataType () const
 descendant classes return their type
 
virtual std::string dataName () const
 string identificator of the class
 
virtual void computeDensityData (const CPointMassSet< double > &traj, vectord *data) const
 evaluate coefs for orbit trajectory data, called from COrbitRuntimeSchwSH, implemented differently in derived classes
 
virtual double getConstraintNormFactor (size_t index) const
 return a scaling coefficient which is used to normalize the penalty for constraint deviation in the optimization problem. More...
 
virtual void getCoefDecomposition (size_t index, double *n, int *l, int *m) const
 convenience function returning n,l,m for a given coef.index
 
- Public Member Functions inherited from smile::CSchwDataDensSH
 CSchwDataDensSH (const CDensity *density, size_t _Nang)
 
virtual size_t numConstraints () const
 number of constraints that this kind of data object handles
 
virtual double getConstraint (size_t index) const
 return the value of the given constraint
 
size_t getNumCoefsAngularExpansion () const
 return number of coefficients in angular spherical-harmonic expansion
 
- Public Member Functions inherited from smile::CSchwDataBasicDens
 CSchwDataBasicDens (const CDensity *density)
 
virtual double getOrbitConstraint (size_t index, const CSchwInformation *info) const
 decode constraint value from an information object stored for a given orbit
 
virtual bool isSchwInformationCorrect (const CSchwInformation *info) const
 check compatibility of information object for an orbit with this data object
 

Static Public Member Functions

static const char * myName ()
 

Private Attributes

const size_t numMesh
 number of mesh points for computing expansion coefficients stored for convenience (equal to meshRadii.size())
 
vectord meshRadii
 expansion coefficients are evaluated at given radii
 

Additional Inherited Members

- Public Types inherited from smile::CBasicSchwData
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...
 
- Protected Attributes inherited from smile::CSchwDataDensSH
const size_t Nang
 order of expansion in angular harmonics (lmax)
 
vectord coefConstraints
 required constraints of the model (specified by descendant classes)
 
- Protected Attributes inherited from smile::CSchwDataBasicDens
double totalMass
 

Detailed Description

Variant of Schwarzschild density data object based on spherical-harmonic expansion of potential coefficients at radial mesh points.

Only even non-negative harmonics in l,m are used because of triaxial symmetry. Nang is the expansion order (lmax), and the number of coefficients at each radius is (Nang/2+1)*(Nang/2+2)/2 Note: the potential in which the model is evolved, needs not to be itself a spline expansion, but if it is, then the model coefs are initialized from the potential rather than by computing integrals over density (which are expensive).

Member Function Documentation

double smile::CSchwDataDensSHMesh::getConstraintNormFactor ( size_t  ) const
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)

Implements smile::CBasicSchwData.


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