mirror of
https://bitbucket.org/cosmicvoids/vide_public.git
synced 2025-07-04 23:31:12 +00:00
beginning to fold in HOD code with jeremy tinker's approval
This commit is contained in:
parent
d8108d3a8e
commit
44cd0eb71f
95 changed files with 21950 additions and 0 deletions
73
c_tools/hod/growthfactor.c
Normal file
73
c_tools/hod/growthfactor.c
Normal file
|
@ -0,0 +1,73 @@
|
|||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include "header.h"
|
||||
|
||||
/* This calculates the linear growthfactor at redshift z.
|
||||
* Currently, the default is a flat LCDM universe, but can easily
|
||||
* be changed.
|
||||
*/
|
||||
double x03_g1,
|
||||
xi3_g1;
|
||||
double func_D0(double);
|
||||
double func_Di(double);
|
||||
|
||||
double growthfactor(double z)
|
||||
{
|
||||
int i;
|
||||
double zp1,x03,xi3,bi,b0,yy,sqx,sqx1,dbdx,x0,xi,lambda_i,htemp,omega_L,omega_i,hubble_i,
|
||||
astart,fac,redshift;
|
||||
|
||||
redshift=z;
|
||||
astart=1.0/(z+1);
|
||||
zp1=redshift+1;
|
||||
omega_L=1-OMEGA_M;
|
||||
|
||||
hubble_i = sqrt(OMEGA_M/(astart*astart*astart) +
|
||||
(1.0-OMEGA_M-omega_L)/(astart*astart) +omega_L);
|
||||
|
||||
if(omega_L>0)
|
||||
{
|
||||
lambda_i=omega_L/(omega_L+(1.0-OMEGA_M-omega_L)*zp1*zp1+OMEGA_M*pow(zp1,3.0));
|
||||
omega_i=OMEGA_M*pow(zp1,3.0)*lambda_i/omega_L;
|
||||
}
|
||||
else
|
||||
{
|
||||
lambda_i=0;
|
||||
omega_i=OMEGA_M*zp1/(1.0+OMEGA_M*redshift);
|
||||
}
|
||||
|
||||
fac=astart;
|
||||
|
||||
if((OMEGA_M < 0.99) && (omega_L > 0.001))
|
||||
{
|
||||
x03_g1=x03=1.0/OMEGA_M-1.0;
|
||||
xi3_g1=xi3=1.0/omega_i-1.0;
|
||||
b0 = qromo(func_D0,0.0,1.0,midpnt);
|
||||
bi = qromo(func_Di,0.0,1.0,midpnt);
|
||||
b0=b0*sqrt(x03+1.0);
|
||||
bi=bi*sqrt(xi3+1.0)*astart;
|
||||
fac=bi/b0;
|
||||
}
|
||||
|
||||
|
||||
if((OMEGA_M < 0.99) && (omega_L == 0))
|
||||
{
|
||||
x0=1.0/OMEGA_M-1.0;
|
||||
xi=x0*astart;
|
||||
b0 = 1.+3./x0+3.*sqrt(1+x0)*log(sqrt(1.+x0)-sqrt(x0))/pow(x0,1.5);
|
||||
bi = 1.+3./xi+3.*sqrt(1+xi)*log(sqrt(1.+xi)-sqrt(xi))/pow(xi,1.5);
|
||||
fac = bi/b0;
|
||||
}
|
||||
return(fac);
|
||||
}
|
||||
|
||||
double func_Di(double y)
|
||||
{
|
||||
return(pow(1.0+xi3_g1*pow(y,1.2),-1.5));
|
||||
}
|
||||
|
||||
double func_D0(double y)
|
||||
{
|
||||
return(pow(1.0+x03_g1*pow(y,1.2),-1.5));
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue