SMILE
v2.5
Schwarzschild Modelling Interactive expLoratory Environment
|
Classes for computing potential, forces and density for various mass models. More...
Classes | |
class | smile::CDensity |
Base class defining density model (without corresponding potential). More... | |
class | smile::CDensityPlummer |
Plummer density profile, triaxial. More... | |
class | smile::CDensityIsochrone |
Isochrone density profile, triaxial. More... | |
class | smile::CDensityPerfectEllipsoid |
Triaxial Perfect Ellipsoid density profile. More... | |
class | smile::CDensityNFW |
modified Navarro-Frenk-White density profile, triaxial. More... | |
class | smile::CDensitySersic |
Sersic profile, triaxial. More... | |
class | smile::CDensityExpDisk |
Exponential disk with several variants of vertical profile and spiral structure. More... | |
class | smile::CDensityEllipsoidal |
Ellipsoidal model. More... | |
class | smile::CDensityMGE |
Multi-Gaussian expansion of a triaxial density profile. More... | |
struct | smile::CDensityMGE::CGaussian |
defines one component of the multi-gaussian expansion More... | |
class | smile::CPotential |
base class for potential-density model including potential derivatives (=forces) More... | |
class | smile::CPotentialComposite |
A composite potential which consists of several other potential types, plus a possible black hole and a rotating reference frame. More... | |
class | smile::CPotentialLog |
Logarithmic potential, with possible core. More... | |
class | smile::CPotentialHarmonic |
Potential of a constant-density (harmonic) core with different frequencies of oscillations in three directions. More... | |
class | smile::CPotentialSpherical |
Spherically-symmetric arbitrary density profile potential provided by CMassModel. More... | |
class | smile::CPotentialMiyamotoNagai |
Miyamoto-Nagai axisymmetric potential; equivalent to Plummer if A=0. More... | |
class | smile::CPotentialFerrers |
Ferrers density profile (with finite size R and density (1-(r/R)^2)^2). More... | |
class | smile::CPotentialDehnen |
Dehnen(1993) double power-law model. More... | |
class | smile::CPotentialSH |
parent class for all potential expansions based on spherical harmonics for angular variables More... | |
class | smile::CPotentialBSE |
basis-set expansion on the Zhao(1996) basis set (alpha models) More... | |
class | smile::CPotentialBSECompact |
basis-set expansion using spherical Bessel functions (e.g.Allen et al.1990) More... | |
class | smile::CPotentialSpline |
spherical-harmonic expansion of potential with coefficients being spline functions of radius More... | |
class | smile::CPotentialDirect |
Direct computation of potential for any density profile, using double integration over space. More... | |
class | smile::CPotentialCylSpline |
angular expansion of potential in azimuthal angle with coefficients being 2d spline functions of R,z More... | |
class | smile::CPotentialScaleFree |
simple power-law potential/density pair: rho ~ r^-gamma More... | |
class | smile::CPotentialScaleFreeSH |
angular expansion of scale-free potential in spherical harmonics More... | |
class | smile::CPotentialNB |
frozen N-body potential calculated by tree-code algorithm (based on hackcode1.c) More... | |
struct | smile::CPotentialNB::node |
NODE: data common to BODY and CELL structures. More... | |
struct | smile::CPotentialNB::cell |
CELL: structure used to represent internal nodes of tree. More... | |
struct | smile::CConfigPotential |
structure that contains parameters for all possible potentials More... | |
Namespaces | |
smile | |
common namespace for all core SMILE classes, functions and variables | |
Functions | |
Correspondence between potential/density names and corresponding classes | |
const char * | smile::getPotentialNameByType (CDensity::POTENTIALTYPE type) |
return the name of the potential of a given type, or empty string if unavailable | |
const char * | smile::getDensityNameByType (CDensity::POTENTIALTYPE type) |
return the name of the density of a given type, or empty string if unavailable | |
const char * | smile::getSymmetryNameByType (CDensity::SYMMETRYTYPE type) |
return the name of the symmetry of a given type, or empty string if unavailable | |
CDensity::POTENTIALTYPE | smile::getPotentialTypeByName (const std::string &PotentialName) |
return the type of the potential model by its name, or PT_UNKNOWN if unavailable | |
CDensity::POTENTIALTYPE | smile::getDensityTypeByName (const std::string &DensityName) |
return the type of the density model by its name, or PT_UNKNOWN if unavailable | |
CDensity::SYMMETRYTYPE | smile::getSymmetryTypeByName (const std::string &SymmetryName) |
return the type of symmetry by its name, or ST_DEFAULT if unavailable | |
const char * | smile::coefFileExtension (CDensity::POTENTIALTYPE pottype) |
return file extension for writing the coefficients of potential of the given type | |
CDensity::POTENTIALTYPE | smile::coefFileType (const std::string &fileName) |
find potential type by file extension | |
Various convenience functions for potential | |
template<typename NumT > | |
double | smile::totalEnergy (const CPotential *potential, const CPosVelPoint< NumT > &point, double Omega=0, double t=0) |
Convenience function to return the total energy (or Jacobi integral if Omega!=0) for a given position+velocity point. More... | |
double | smile::longAxisRadius (const CPotential *potential, double E, double Omega=0) |
Convenience function to find the maximal elongation of long-axis orbit of given energy. More... | |
double | smile::findIntersection (const CPotential *potential, double E, double X, double Y, double Z, double Omega=0) |
Find the location of the equipotential surface in a given direction: solve for k such that Phi(k*X, k*Y, k*Z) = E . More... | |
void | smile::findLagrangianPoints (const CPotential *potential, double Omega, double *L1X, double *L4Y) |
Find the location of maximum of the effective potential in rotating frame; output the distance to such point along x axis in L1X and along y axis in L4Y (Lagrangian points) | |
Classes for computing potential, forces and density for various mass models.
This file defines several classes of two kind:
There are several flexible general-purpose potential representations, which can take an arbitrary density profile as an input; moreover there are at least two flexible density parametrizations suitable to represent almost anything one may need. If, nevertheless, you want to add a new density model, the necessary steps are summarized below: