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

modified Navarro-Frenk-White density profile, triaxial. More...

#include <potential.h>

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

Public Member Functions

 CDensityNFW (double _mass, double _scalerad, double _q, double _p, double c)
 
virtual POTENTIALTYPE PotentialType () const
 enumerable potential type
 
virtual const char * PotentialName () const
 string representation of potential type
 
virtual SYMMETRYTYPE symmetry () const
 returns symmetry type of this potential
 
virtual double Rho (double X, double Y, double Z, double t=0) const
 returns density at given coordinates, this should obviously be overriden in derivative classes
 
virtual double getGamma () const
 returns inner density slope estimate (only used in BSE potential expansion for the automatic selection of shape parameter Alpha)
 
- Public Member Functions inherited from smile::CDensity
virtual double Mass (const double r) const
 returns mass inside given radius (approximately! not necessary to integrate density over sphere, just a rough estimate used e.g. in choosing radial nodes of Schwarzschild grid)
 
virtual double totalMass () const
 returns estimated M(r=infinity) or -1 if mass is infinite
 
double getRadiusByMass (const double m) const
 solves for Mass(r)=m
 
void getRadiiByMass (const vectord &masses, vectord *radii) const
 solves for Mass(r)=m for an array of sorted values of m (more efficient than doing it one-by-one)
 
bool checkMassMonotonic () const
 safety measure: check (roughly) that mass is increasing with radius
 
bool checkDensityNonzero () const
 another safety measure: check that density doesn't drop to zero along any of three axes (important to assess spherical-harmonic approximation quality)
 

Static Public Member Functions

static const char * myName ()
 

Private Attributes

const double mass
 total mass of the model
 
const double scalerad
 scale radius
 
const double q
 
const double p
 axis ratio (y/x and z/x) of equidensity surfaces
 
double rcutoff
 cutoff radius
 
double norm
 normalization factor for density
 

Additional Inherited Members

- Public Types inherited from smile::CDensity
enum  POTENTIALTYPE {
  PT_UNKNOWN, PT_DIRECT, PT_COMPOSITE, PT_COEFS,
  PT_NB, PT_BSE, PT_BSECOMPACT, PT_SPLINE,
  PT_CYLSPLINE, PT_LOG, PT_HARMONIC, PT_SCALEFREE,
  PT_SCALEFREESH, PT_SPHERICAL, PT_DEHNEN, PT_MIYAMOTONAGAI,
  PT_FERRERS, PT_PLUMMER, PT_ISOCHRONE, PT_PERFECTELLIPSOID,
  PT_NFW, PT_SERSIC, PT_EXPDISK, PT_ELLIPSOIDAL,
  PT_MGE
}
 list of all existing types of density or density/potential models, each of them implemented in its own class More...
 
enum  SYMMETRYTYPE {
  ST_NONE = 0, ST_REFLECTION = 1, ST_PLANESYM = 2, ST_ZROTSYM = 4,
  ST_SPHSYM = 8, ST_TRIAXIAL = ST_REFLECTION | ST_PLANESYM, ST_AXISYMMETRIC = ST_TRIAXIAL | ST_ZROTSYM, ST_SPHERICAL = ST_AXISYMMETRIC | ST_SPHSYM,
  ST_DEFAULT = ST_TRIAXIAL
}
 Type of symmetry. More...
 

Detailed Description

modified Navarro-Frenk-White density profile, triaxial.

The density is given by $ \rho \propto 1/(r*(1+r)^2*(1+r/r_{cut})) $, i.e. modified to have a steeper r^{-4} outer slope beyond the cutoff radius, to make the total mass finite. The cutoff radius is computed from the condition that the total mass is the same as for a sharply cut NFW profile with a given concentration parameter, but the gentle transition to the outer slope instead of a sharp cut makes it more suitable to use in the potential expansions.


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