GRALE
Protected Member Functions
grale::SymmetricLens Class Reference

Base class for circularly symmetric lenses. More...

#include <symmetriclens.h>

Inheritance diagram for grale::SymmetricLens:
Inheritance graph
[legend]
Collaboration diagram for grale::SymmetricLens:
Collaboration graph
[legend]

List of all members.

Protected Member Functions

 SymmetricLens (GravitationalLens::LensType t)
 Constructor meant to be used by subclasses.
virtual double getMassInside (double thetaLength) const =0
 Implementations need to provide this function.
virtual double getProfileSurfaceMassDensity (double thetaLength) const =0
 Implementations need to provide this function.
- Protected Member Functions inherited from grale::GravitationalLens
 GravitationalLens (LensType t)
 Meant to be used by a specific lens implementation.
virtual bool processParameters (const GravitationalLensParams *params)=0
 Specific lens implementations implement this function to process the parameters specified in the GravitationalLens::init function.

Additional Inherited Members

- Public Types inherited from grale::GravitationalLens
enum  LensType {
  Gaussian, MultiplePlummers, Plummer, Pointmass,
  SIS, NSIE, NSIS, SIE,
  Square, MultipleSquares, MultipleGaussians, MassSheet,
  Composite, MassDisk, Profile, PolynomialMassProfile,
  MultipleWendland, DeflectionGrid, NFW, EllipticNFW,
  Sersic, EllipticSersic
}
 Specific lens types. More...
- Public Member Functions inherited from grale::GravitationalLens
LensType getLensType () const
 Returns the type of the lens.
virtual bool init (double D_d, const GravitationalLensParams *pLensParams=0)
 Initializes the lens with parameters params, setting its angular diameter distance to D_d.
bool traceTheta (double D_s, double D_ds, Vector2D< double > theta, Vector2D< double > *pBeta) const
 Calculates the result of the lens equation.
virtual double getInverseMagnification (double D_s, double D_ds, Vector2D< double > theta) const
 Returns the inverse magnification factor for a specific direction.
double getLensDistance () const
 Returns the D_d parameter used in the GravitationalLens::init function.
void setLensDistance (double D_d)
 Changes the lens distance.
const GravitationalLensParamsgetLensParameters () const
 Returns a pointer to a copy of the lens parameters used in the GravitationalLens::init function.
virtual void setDerivativeAngularDistanceScale (double distanceScale)
 Sets a distance scale to be used when estimating the derivatives of the function beta(theta) numerically.
bool write (serut::SerializationInterface &si) const
 Writes the current lens to a serut::SerializationInterface instance.
bool save (const std::string &fileName) const
 Writes the current lens to a file.
GravitationalLenscreateCopy () const
 Creates a copy of the current lens instance.
- Static Public Member Functions inherited from grale::GravitationalLens
static double getInverseMagnification (double D_s, double D_ds, double axx, double ayy, double axy)
 Calculate inverse magnification from derivatives of deflection angle.
static void getShearInfo (double D_s, double D_ds, double axx, double ayy, double axy, double *pShearAngle, double *pShearSize)
 Calculate shear size and angle from derivatives of the deflection angle.
static void getShearInfo (double gamma1, double gamma2, double *pShearAngle, double *pShearSize)
 Calculate shear size and angle from shear components.
static bool read (serut::SerializationInterface &si, GravitationalLens **pLens, std::string &errorString)
 Reads a lens instance from a serut::SerializationInterface object and stores the lens in lens; an error message is stored in errstr if the function is not successful.
static bool load (const std::string &fileName, GravitationalLens **pLens, std::string &errorString)
 Loads a lens instance from a file and stores the lens in lens.

Detailed Description

\[ M(\theta) = 2 \pi D_d^2 \int\limits_0^\theta \theta'\Sigma(\theta')\mathrm{d}\theta' \]

\[ \vec{\hat{\alpha}}(\vec{\theta}) = \frac{4 G M(\theta)}{c^2 D_d \theta^2}\vec{\theta} \]

\[ \hat{\alpha}_{x,x} = \frac{4 G M(\theta)}{c^2 D_d} \frac{\theta_y^2-\theta_x^2}{\theta^4} + \frac{8 \pi G D_d \Sigma(\theta)}{c^2}\frac{\theta_x^2}{\theta^2} \]

\[ \hat{\alpha}_{y,y} = \frac{4 G M(\theta)}{c^2 D_d} \frac{\theta_x^2-\theta_y^2}{\theta^4} + \frac{8 \pi G D_d \Sigma(\theta)}{c^2}\frac{\theta_y^2}{\theta^2} \]

\[ \hat{\alpha}_{x,y} = -\frac{4 G M(\theta)}{c^2 D_d} \frac{2\theta_x\theta_y}{\theta^4} + \frac{8 \pi G D_d \Sigma(\theta)}{c^2}\frac{\theta_x\theta_y}{\theta^2} \]


Constructor & Destructor Documentation

grale::SymmetricLens::SymmetricLens ( GravitationalLens::LensType  t)
protected

Member Function Documentation

virtual double grale::SymmetricLens::getMassInside ( double  thetaLength) const
protectedpure virtual

Implementations need to provide this function. The function should return the total mass within a radius described by thetaLength.

virtual double grale::SymmetricLens::getProfileSurfaceMassDensity ( double  thetaLength) const
protectedpure virtual

Implementations need to provide this function. The function should return the mass density at the radius described by thetaLength.


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