GRALE
Main Page
Related Pages
Classes
Files
File List
src
lens
symmetriclens.h
Go to the documentation of this file.
1
/*
2
3
This file is a part of GRALE, a library to facilitate the simulation
4
and inversion of gravitational lenses.
5
6
Copyright (C) 2008-2012 Jori Liesenborgs
7
8
Contact: jori.liesenborgs@gmail.com
9
10
This program is free software; you can redistribute it and/or modify
11
it under the terms of the GNU General Public License as published by
12
the Free Software Foundation; either version 2 of the License, or
13
(at your option) any later version.
14
15
This program is distributed in the hope that it will be useful,
16
but WITHOUT ANY WARRANTY; without even the implied warranty of
17
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
GNU General Public License for more details.
19
20
You should have received a copy of the GNU General Public License
21
along with this program; if not, write to the Free Software
22
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23
24
*/
25
30
#ifndef GRALE_SYMMETRICLENS_H
31
32
#define GRALE_SYMMETRICLENS_H
33
34
#include "graleconfig.h"
35
#include "
gravitationallens.h
"
36
37
namespace
grale
38
{
39
50
class
GRALE_IMPORTEXPORT
SymmetricLens
:
public
GravitationalLens
51
{
52
protected
:
54
SymmetricLens
(
GravitationalLens::LensType
t);
55
public
:
56
~
SymmetricLens
();
57
bool
getAlphaVector(
Vector2D<double>
theta,
Vector2D<double>
*pAlpha)
const
;
58
bool
getAlphaVectorDerivatives(
Vector2D<double>
theta,
double
&axx,
double
&ayy,
double
&axy)
const
;
59
double
getSurfaceMassDensity(
Vector2D<double>
theta)
const
{
return
getProfileSurfaceMassDensity(theta.getLength()); }
60
protected
:
65
virtual
double
getMassInside(
double
thetaLength)
const
= 0;
66
71
virtual
double
getProfileSurfaceMassDensity(
double
thetaLength)
const
= 0;
72
};
73
74
}
// end namespace
75
76
#endif // GRALE_SYMMETRICLENS_H
77
Generated on Wed Dec 19 2012 09:09:23 for GRALE by
1.8.1.1