GLAMERDOC++
Gravitational Lensing Code Library
|
Creates a exponential disk out of particles. More...
#include <disk.h>
Public Member Functions | |
LensHaloDisk (double mass, double disk_scale, double Rperp, double mass_res, float my_PA, float my_inclination, Utilities::RandomNumbers_NR &ran, float redshift, const COSMOLOGY &cosmo, int Nsmooth=64) | |
LensHaloDisk (LensHaloDisk &&h) | |
LensHaloDisk & | operator= (LensHaloDisk &&h) |
void | reorient (float my_inclination, float my_PA) |
Reorient the disk. | |
float | getInclination () |
inclination in radians, 0 is face on | |
float | getPA () |
postion angle in radians, | |
Public Member Functions inherited from LensHaloParticles< ParticleType< float > > | |
LensHaloParticles (const std::string &simulation_filename, SimFileFormat format, PosType redshift, int Nsmooth, const COSMOLOGY &cosmo, Point_2d theta_rotate, bool recenter, bool my_multimass, double inv_area, PosType MinPSize=0, PosType rescale_mass=1.0, bool verbose=false) | |
LensHaloParticles (std::vector< ParticleType< float > > &pvector, float redshift, const COSMOLOGY &cosmo, Point_2d theta_rotate, bool recenter, double my_inv_area, float MinPSize=0, double max_range=-1, bool verbose=false) | |
LensHaloParticles (ParticleType< float > *begin, size_t n, float redshift, const COSMOLOGY &cosmo, Point_2d theta_rotate, bool recenter, double my_inv_area, float MinPSize=0, double max_range=-1, bool verbose=false) | |
this constructor does not take possession of the particles | |
LensHaloParticles (LensHaloParticles &&h) | |
LensHaloParticles< ParticleType< float > > & | operator= (LensHaloParticles< ParticleType< float > > &&h) |
void | force_halo (double *alpha, KappaType *kappa, KappaType *gamma, KappaType *phi, double const *xcm, bool subtract_point=false, PosType screening=1.0) |
size_t | getN () const |
void | rotate (Point_2d theta) |
rotate the simulation around the origin of the simulation coordinates, (radians) | |
Point_3d | CenterOfMass () |
get current center of mass in input coordinates | |
Point_3d | DensestPoint () |
get the densistt point in input coordinates | |
void | readPositionFileASCII (const std::string &filename) |
Reads number of particle and particle positons into Npoint and xp from a ASCII file. | |
Public Member Functions inherited from LensHalo | |
LensHalo () | |
Shell constructor. | |
LensHalo (PosType z, const COSMOLOGY &cosmo) | |
LensHalo (const LensHalo &h) | |
LensHalo (LensHalo &&h) | |
LensHalo & | operator= (const LensHalo &h) |
LensHalo & | operator= (LensHalo &&h) |
float | get_Rmax () const |
this can be used to tag types of LensHalos | |
float | getRsize () const |
get the Rsize which is the size of the halo in Mpc | |
float | get_mass () const |
get the mass solar units | |
float | get_rscale () const |
get the scale radius in Mpc | |
PosType | getZlens () const |
get the redshift | |
void | getX (PosType *MyPosHalo) const |
get the position of the Halo in physical Mpc on the lens plane | |
PosType | operator[] (int i) const |
returns position of the Halo in physical Mpc on the lens plane | |
void | setTheta (PosType PosX, PosType PosY) |
set the position of the Halo in radians | |
void | setTheta (PosType *PosXY) |
set the position of the Halo in radians | |
void | setTheta (const Point_2d &p) |
set the position of the Halo in radians | |
void | getTheta (PosType *MyPosHalo) const |
get the position of the Halo in radians | |
void | setDist (COSMOLOGY &co) |
Set the angular size distance to the halo. This should be the distance to the lens plane. | |
PosType | getDist () const |
void | displayPos () |
virtual void | initFromFile (float my_mass, long *seed, float vmax, float r_halfmass) |
initialize from a simulation file | |
virtual void | initFromMassFunc (float my_mass, float my_Rsize, float my_rscale, PosType my_slope, long *seed) |
initialize from a mass function | |
virtual void | set_RsizeRmax (float my_Rsize) |
set Rsize (in Mpc) and reset Rmax | |
void | set_mass (float my_mass) |
set mass (in solar masses) | |
virtual void | set_rscale (float my_rscale) |
set scale radius (in Mpc) | |
void | setZlens (PosType my_zlens, const COSMOLOGY &cosmo) |
set redshift | |
void | setRsize (PosType R) |
void | setZlensDist (PosType my_zlens, const COSMOLOGY &cos) |
void | setMass (PosType m) |
virtual void | set_slope (PosType my_slope) |
set slope | |
virtual PosType | get_slope () |
get slope | |
bool | get_flag_elliptical () |
flag=True if halo elliptical | |
void | set_flag_elliptical (bool ell) |
bool | get_switch_flag () |
void | set_switch_flag (bool swt) |
flag permits case distinction in force_halo_asym for elliptical NFWs only (get_switch_flag==true), in latter case the mass_norm_factor^2 is used instead of mass_norm_factor. | |
virtual void | setCosmology (const COSMOLOGY &cosmo) |
used for elliptical NFWs only, in that case get_switch_flag==true | |
bool | compareZ (PosType z) |
force tree calculation for stars | |
EllipMethod | getEllipMethod () const |
stars | |
std::vector< double > | get_mod () |
get vector of Fourier modes, which are calculated in the constructors of the LensHaloes when main_ellip_method is set to 'Fourier' | |
virtual std::size_t | Nparams () const |
get the number of halo parameters | |
virtual PosType | getParam (std::size_t p) const |
get the value of a scaled halo parameter by index | |
virtual PosType | setParam (std::size_t p, PosType value) |
set the value of a scaled halo parameter by index | |
virtual void | printCSV (std::ostream &, bool header=false) const |
print the halo parameters in CSV format | |
PosType | MassBy2DIntegation (PosType R) |
Prints star parameters; if show_stars is true, prints data for single stars. | |
PosType | MassBy1DIntegation (PosType R) |
calculates the mass within radius R by integating alpha on a ring and using Gauss' law, used only for testing | |
PosType | test_average_gt (PosType R) |
calculates the average gamma_t for LensHalo::test() | |
PosType | test_average_kappa (PosType R) |
void | set_norm_factor () |
void | set_rsize (float my_rsize) |
set radius rsize beyond which interpolation values between alpha_ellip and alpha_iso are computed | |
float | get_rsize () |
bool | test () |
perform some basic consistancy checks for halo | |
size_t | getID () const |
void | setID (size_t id) |
PosType | renormalization (PosType r_max) |
PixelMap< double > | map_variables (LensingVariable lensvar, size_t Nx, size_t Ny, double res) |
Map a PixelMap of the surface, density, potential and potential gradient centred on (0,0) in LensHalo coordinates. | |
Additional Inherited Members | |
Static Public Member Functions inherited from LensHaloParticles< ParticleType< float > > | |
static void | makeSIE (std::string new_filename, PosType redshift, double particle_mass, double total_mass, double sigma, double q, Utilities::RandomNumbers_NR &ran) |
This is a test static function that makes a truncated SIE out of particles and puts it into a file in the right format for constructing a LensHaloParticles. | |
static LensHaloParticles< ParticleTypeSimple > | SIE (PosType redshift, double particle_mass, double total_mass, double sigma, double q, int Nneighbors, COSMOLOGY &cosmo, Utilities::RandomNumbers_NR &ran) |
This is a test static function that makes a truncated SIE out of particles and puts it into a file in the right format for constructing a LensHaloParticles. | |
static void | calculate_smoothing (int Nsmooth, ParticleType< float > *pp, size_t Npoints, bool verbose=false) |
static void | writeSizes (const std::string &filename, int Nsmooth, const ParticleType< float > *pp, size_t Npoints) |
static bool | readSizesFile (const std::string &filename, ParticleType< float > *pp, size_t Npoints, int Nsmooth, PosType min_size) |
Static Public Member Functions inherited from LensHalo | |
static const int | get_Nmod () |
get length of mod array, which is Nmod. Not to be confused with getNmodes in the class LensHaloFit | |
Public Attributes inherited from LensHalo | |
int | tag =0 |
Protected Member Functions inherited from LensHaloParticles< ParticleType< float > > | |
LensHaloParticles (float redshift, const COSMOLOGY &cosmo) | |
LensHaloParticles (ParticleType< float > *pdata, size_t Nparticles, float redshift, const COSMOLOGY &cosmo, Point_2d theta_rotate, bool recenter, double my_inv_area, bool verbose=false) | |
void | rotate_particles (PosType theta_x, PosType theta_y) |
void | assignParams (InputParams ¶ms) |
void | set_up (float redshift, const COSMOLOGY &cosmo, Point_2d theta_rotate, double max_range, bool recenter, bool verbose) |
Protected Member Functions inherited from LensHalo | |
PosType | alpha_int (PosType x) const |
Calculates potential (phi_int) from alpha_h. If flag is_alphah_a_table is True it takes and integrates directly the gfunction instead of alpha_h. The gfunction is used for the InterpolationTable used in alpha_h. Setting the flag to False speeds up the calculation of phi_h. | |
PosType | norm_int (PosType r_max) |
void | force_halo_sym (PosType *alpha, KappaType *kappa, KappaType *gamma, KappaType *phi, PosType const *xcm, bool subtract_point=false, PosType screening=1.0) |
returns the lensing quantities of a ray in center of mass coordinates for a symmetric halo | |
void | force_halo_asym (PosType *alpha, KappaType *kappa, KappaType *gamma, KappaType *phi, PosType const *xcm, bool subtract_point=false, PosType screening=1.0) |
bool | force_point (PosType *alpha, KappaType *kappa, KappaType *gamma, KappaType *phi, PosType const *xcm, PosType rcm2, bool subtract_point, PosType screening) |
void | assignParams (InputParams ¶ms, bool needRsize) |
read in parameters from a parameterfile in InputParams params | |
void | error_message1 (std::string name, std::string filename) |
read in star parameters. This is valid for all halos and not overloaded. | |
virtual PosType | alpha_h (PosType x) const |
virtual KappaType | kappa_h (PosType x) const |
virtual KappaType | gamma_h (PosType x) const |
virtual KappaType | phi_h (PosType x) const |
virtual KappaType | phi_int (PosType x) const |
virtual PosType | ffunction (PosType x) const |
virtual PosType | gfunction (PosType x) const |
virtual PosType | dgfunctiondx (PosType x) |
virtual PosType | bfunction (PosType x) |
virtual PosType | dhfunction (PosType x) const |
virtual PosType | ddhfunction (PosType x, bool numerical) |
virtual PosType | dddhfunction (PosType x, bool numerical) |
virtual PosType | bnumfunction (PosType x) |
virtual PosType | dbfunction (PosType x) |
virtual PosType | ddbfunction (PosType x) |
virtual PosType | dmoddb (int whichmod, PosType q, PosType b) |
virtual PosType | ddmoddb (int whichmod, PosType q, PosType b) |
virtual PosType | dmoddq (int whichmod, PosType q, PosType b) |
virtual PosType | ddmoddq (int whichmod, PosType q, PosType b) |
void | faxial (PosType x, PosType theta, PosType f[]) |
If set to true the correct normalization is applied for asymmetric NFW profiles, the mass_norm_factor is different for the other halos. | |
void | faxial0 (PosType theta, PosType f0[]) |
void | faxial1 (PosType theta, PosType f1[]) |
void | faxial2 (PosType theta, PosType f2[]) |
void | gradial (PosType r, PosType g[]) |
Derivatives of the potential damping factor with respect to r ... TODO: come up with a better damping faction. | |
void | gradial2 (PosType r, PosType mu, PosType sigma, PosType g[]) |
void | felliptical (PosType x, PosType q, PosType theta, PosType f[], PosType g[]) |
Calculate the derivatives of the G function = r*sqrt(cos(theta)^2 + q(r)^2 sin(theta)) | |
virtual void | gamma_asym (PosType x, PosType theta, PosType gamma[]) |
virtual PosType | kappa_asym (PosType x, PosType theta) |
virtual void | alphakappagamma_asym (PosType x, PosType theta, PosType alpha[], PosType *kappa, PosType gamma[], PosType *phi) |
Pseudo-elliptical profiles by Phi(G)-Ansatz. | |
virtual void | alphakappagamma1asym (PosType x, PosType theta, PosType alpha[2], PosType *kappa, PosType gamma[], PosType *phi) |
Elliptical profiles by Fourier-Ansatz. | |
virtual void | alphakappagamma2asym (PosType x, PosType theta, PosType alpha[2], PosType *kappa, PosType gamma[], PosType *phi) |
virtual void | alphakappagamma3asym (PosType x, PosType theta, PosType alpha[2], PosType *kappa, PosType gamma[], PosType *phi) |
virtual PosType | alpha_ell (PosType x, PosType theta) |
double | fourier_coeff (double n, double q, double beta) |
Calculates fourier-coefficients for power law halo. | |
double | IDAXDM (double lambda, double a2, double b2, double x[], double rmax, double mo) |
double | IDAYDM (double lambda, double a2, double b2, double x[], double rmax, double mo) |
double | SCHRAMMKN (double n, double x[], double rmax) |
double | SCHRAMMJN (double n, double x[], double rmax) |
double | SCHRAMMI (double x[], double rmax) |
void | calcModes (double q, double beta, double rottheta, PosType newmod[]) |
Calculates the modes for fourier expansion of power law halo. All the modes are relative to the zero mode to conserve mass throughout the calculation of kappa etc. | |
void | calcModesB (PosType x, double q, double beta, double rottheta, PosType newmod[]) |
void | calcModesC (PosType beta_r, double q, double rottheta, PosType newmod[]) |
virtual PosType | InterpolateModes (int whichmod, PosType q, PosType b) |
void | analModes (int modnumber, PosType my_beta, PosType q, PosType amod[3]) |
Static Protected Member Functions inherited from LensHaloParticles< ParticleType< float > > | |
static void | smooth_ (TreeSimple< ParticleType< float > > *tree3d, ParticleType< float > *xp, size_t N, int Nsmooth) |
Protected Attributes inherited from LensHaloParticles< ParticleType< float > > | |
Point_3d | mcenter |
Point_3d | densest_point |
ParticleType< float > * | pp |
std::vector< ParticleType< float > > | trash_collector |
PosType | min_size |
bool | multimass |
Utilities::Geometry::SphericalPoint | center |
size_t | Npoints |
PosType | inv_area |
std::string | simfile |
std::string | sizefile |
TreeQuadParticles< ParticleType< float > > * | qtree |
Protected Attributes inherited from LensHalo | |
float | Rsize = 0 |
float | mass |
PosType | Dist |
PosType | mnorm |
float | Rmax |
PosType | beta |
float | Rmax_to_Rsize_ratio = 1.2 |
The factor by which Rmax is larger than Rsize. | |
float | rscale |
scale length or core size. Different meaning in different cases. Not used in NSIE case. | |
EllipMethod | main_ellip_method |
PosType | xmax |
PosType | mass_norm_factor =1 |
This is Rsize/rscale !! | |
float | pa |
float | fratio =1.0 |
bool | elliptical_flag = false |
bool | switch_flag = false |
PosType | mod [Nmod] |
PosType | mod1 [Nmod] |
PosType | mod2 [Nmod] |
PosType | r_eps |
Static Protected Attributes inherited from LensHalo | |
static const int | Nmod = 32 |
Creates a exponential disk out of particles.
The disk is created out of particles and the smoothing done by nearest-N neighbour B-spline smoothing as if they came from a simulation, but they are placed more regularly so that the surface density is relatively smooth.
LensHaloDisk< T >::LensHaloDisk | ( | double | mass, |
double | disk_scale, | ||
double | Rperp, | ||
double | mass_res, | ||
float | my_PA, | ||
float | my_inclination, | ||
Utilities::RandomNumbers_NR & | ran, | ||
float | redshift, | ||
const COSMOLOGY & | cosmo, | ||
int | Nsmooth = 64 ) |
set up base Lenshalo
(1-x);
mass | mass of disk |
disk_scale | scale hight of disk (Mpc) |
Rperp | vertical scale hight of disk (Mpc) |
mass_res | mass resolution, mass of particles |
my_PA | position angle in radians |
my_inclination | inclination of disk in radians, 0 is face on |
ran | random number generator |
Nsmooth | number of neighbors used in smoothing |