示例#1
0
文件: omega.c 项目: WeenAFK/BBN
double geff(double Temp, struct relicparam paramrelic)
/* computes geff at the temperature Temp */
{
	double heff0=heff(Temp,paramrelic);
	
	return pow(heff0/sgStar(Temp,paramrelic)*(1.+(heff(Temp*1.001,paramrelic)-heff(Temp*0.999,paramrelic))/0.006/heff0),2.);
}
示例#2
0
文件: omega.cpp 项目: hickerson/bbn
double CosmologyModel::geff(double Temp)
/* computes geff at the temperature Temp */
{
	double heff0=heff(Temp);
	
	return pow(heff0/sgStar(Temp)*(1.+(heff(Temp*1.001)-heff(Temp*0.999))/0.006/heff0),2.);
}
示例#3
0
文件: omega.c 项目: WeenAFK/BBN
double dark_entropy(double T, struct relicparam paramrelic)
/* computes the dark entropy density at temperature T */
{
	if((paramrelic.sd0==0.)&&(paramrelic.Sigmad0==0.)) return 0.;
	
	if((paramrelic.Sigmad0==0.)&&(T<paramrelic.Tsend)) return 0.;
	
	if(paramrelic.Sigmad0==0.)
	{
		double s_rad_1MeV=2.*pi*pi/45.*heff(1.e-3,paramrelic)*1.e-9;
	
		return paramrelic.sd0*s_rad_1MeV*pow(T/1.e-3,paramrelic.nsd);
	}
	else
	{
		double lnT,dlnT,Ttmp;
		int ie,nmax;
		double integ=0.;
		
		nmax=50;
		
		lnT=log(1.e-15);
		
		dlnT=(log(T)-lnT)/nmax;
		
		for(ie=1;ie<nmax;ie++) 
		{
			lnT+=dlnT;
			Ttmp=exp(lnT);
			integ+=sgStar(Ttmp,paramrelic)*dark_entropy_Sigmad(Ttmp,paramrelic)/sqrt(1.+dark_density(Ttmp,paramrelic)/(pi*pi/30.*geff(Ttmp,paramrelic)*pow(Ttmp,4.)))/pow(heff(Ttmp,paramrelic),2.)/pow(Ttmp,5.);
		}
		
integ+=sgStar(T,paramrelic)*dark_entropy_Sigmad(T,paramrelic)/sqrt(1.+dark_density(T,paramrelic)/(pi*pi/30.*geff(T,paramrelic)*pow(T,4.)))/pow(heff(T,paramrelic),2.)/pow(T,5.)/2.;
		
		integ*=dlnT;

		double Mplanck=1.2209e19;	

		return 3.*Mplanck*sqrt(5./4./pi/pi/pi)*heff(T,paramrelic)*T*T*T*integ;	
	}
}
示例#4
0
文件: omega.c 项目: WeenAFK/BBN
double dark_entropy_derivative(double T, struct relicparam paramrelic)
/* computes the dark energy entropy derivative at temperature T */
{
	if((paramrelic.sd0==0.)&&(paramrelic.Sigmad0==0.)) return 0.;
	
	if((paramrelic.Sigmad0==0.)&&(T<paramrelic.Tsend)) return 0.;
	
	if(paramrelic.Sigmad0==0.)
	{
		return (dark_entropy(T*1.001,paramrelic)-dark_entropy(T*0.999,paramrelic))/0.002/T;
	}
	else
	{
	
		double Mplanck=1.2209e19;	
		return 3.*sgStar(T,paramrelic)/T/heff(T,paramrelic)*(sqrt(geff(T,paramrelic))*dark_entropy(T,paramrelic)-sqrt(5.*Mplanck/4./pi/pi/pi)/T/T*dark_entropy_Sigmad(T,paramrelic)/sqrt(1.+dark_density(T,paramrelic)/(pi*pi/30.*geff(T,paramrelic)*pow(T,4.))));
	}
}
示例#5
0
文件: omega.cpp 项目: hickerson/bbn
double CosmologyModel::dark_entropy_derivative(double T)
/* computes the dark energy entropy derivative at temperature T */
{
	if((sd0==0.)&&(Sigmad0==0.)) return 0.;
	
	if((Sigmad0==0.)&&(T<Tsend)) return 0.;
	
	if(Sigmad0==0.)
	{
		return (dark_entropy(T*1.001)-dark_entropy(T*0.999))/0.002/T;
	}
	else
	{
	
		double Mplanck=1.2209e19;	
		return 3.*sgStar(T)/T/heff(T)*(sqrt(geff(T))*dark_entropy(T)-sqrt(5.*Mplanck/4./pi/pi/pi)/T/T*dark_entropy_Sigmad(T)/sqrt(1.+dark_density(T)/(pi*pi/30.*geff(T)*pow(T,4.))));
	}
}
示例#6
0
文件: omega.c 项目: WeenAFK/BBN
double dark_entropy_Sigmad(double T, struct relicparam paramrelic)
/* computes the dark entropy production at temperature T */
{
	if((paramrelic.sd0==0.)&&(paramrelic.Sigmad0==0.)) return 0.;
	
	if((paramrelic.Sigmad0==0.)&&(T<paramrelic.Tsend)) return 0.;
	
	double Mplanck=1.2209e19;
	
	if(paramrelic.Sigmad0==0.)
	{	
		return 1./Mplanck*(sqrt(24.*pi*(pi*pi/30.*geff(T,paramrelic)*pow(T,4.)+dark_density(T,paramrelic)))*dark_entropy(T,paramrelic)-sqrt(4.*pi*pi*pi/45.)*heff(T,paramrelic)/sgStar(T,paramrelic)*pow(T,3)*sqrt(1.+dark_density(T,paramrelic)/(pi*pi/30.*geff(T,paramrelic)*pow(T,4.)))*dark_entropy_derivative(T,paramrelic));
	}
	else
	{
		if(T<paramrelic.TSigmaend) return 0.;

		double s_rad_1MeV=2.*pi*pi/45.*heff(1.e-3,paramrelic)*1.e-9;
	
		double Sigma_rad_1MeV= 1./Mplanck*sqrt(4.*pi*pi*pi/5.*geff(1.e-3,paramrelic))*(1.e-6)*s_rad_1MeV;
	
		return paramrelic.Sigmad0*Sigma_rad_1MeV*pow(T/1.e-3,paramrelic.nSigmad);
	}
}
示例#7
0
文件: omega.cpp 项目: hickerson/bbn
double CosmologyModel::dark_entropy_Sigmad(double T)
/* computes the dark entropy production at temperature T */
{
	if((sd0==0.)&&(Sigmad0==0.)) return 0.;
	
	if((Sigmad0==0.)&&(T<Tsend)) return 0.;
	
	double Mplanck=1.2209e19;
	
	if(Sigmad0==0.)
	{	
		return 1./Mplanck*(sqrt(24.*pi*(pi*pi/30.*geff(T)*pow(T,4.)+dark_density(T)))*dark_entropy(T)-sqrt(4.*pi*pi*pi/45.)*heff(T)/sgStar(T)*pow(T,3)*sqrt(1.+dark_density(T)/(pi*pi/30.*geff(T)*pow(T,4.)))*dark_entropy_derivative(T));
	}
	else
	{
		if(T<TSigmaend) return 0.;

		double s_rad_1MeV=2.*pi*pi/45.*heff(1.e-3)*1.e-9;
	
		double Sigma_rad_1MeV= 1./Mplanck*sqrt(4.*pi*pi*pi/5.*geff(1.e-3))*(1.e-6)*s_rad_1MeV;
	
		return Sigmad0*Sigma_rad_1MeV*pow(T/1.e-3,nSigmad);
	}
}