Esempio n. 1
0
Gamma * gamma_spline_calc_little_gamma (GammaSpline *gs, double * omega) { // without the one over omega
    if (!gstimer) {
        gstimer = g_timer_new();
        g_timer_start(gstimer);
    }
    else g_timer_continue(gstimer);

    int q=0;
	double kc;
    int Nkc = 16384;
    Gamma * g = gamma_new (Nkc);
    
    double dkc=2*KCMAX/Nkc;
    double denom=pow(KCMAX,4);
	for (kc=-KCMAX+dkc;kc<KCMAX;kc=kc+dkc) {
	    complex double a = gsl_interp_eval(gs->wx_spline_re,gs->k, gs->Wxr, kc,gs->w_accel)+I*gsl_interp_eval(gs->wx_spline_im,gs->k,gs->Wxi,kc,gs->w_accel);
	    double b = gsl_interp_eval_deriv(gs->phi_spline,gs->k, gs->phi, kc,gs->phi_accel);
	    omega[q]=b;
	    double damp = exp(-4*pow(fabs(kc),4)/denom);
	    
	    g->x[q]=a*damp;
	    
	    complex double c = gsl_interp_eval(gs->wy_spline_re,gs->k,gs->Wyr,kc,gs->w_accel)+I*gsl_interp_eval(gs->wy_spline_im,gs->k,gs->Wyi,kc,gs->w_accel);
	    g->y[q]=c*damp;
	    
	    complex double d = gsl_interp_eval(gs->wz_spline_re,gs->k,gs->Wzr,kc,gs->w_accel)+I*gsl_interp_eval(gs->wz_spline_im,gs->k,gs->Wzi,kc,gs->w_accel);
	    g->z[q]=d*damp;
	    
	    q++;
	}
    g_timer_stop(gstimer);
    
	return g;
}
Esempio n. 2
0
double
gsl_spline_eval_deriv (const gsl_spline * spline,
                       double x,
                       gsl_interp_accel * a)
{
  return gsl_interp_eval_deriv (spline->interp, 
                                spline->x, spline->y,
                                x, a);
}
static double eos_dedp_of_p_tabular(double p, LALSimNeutronStarEOS * eos)
{
    double dedp;
    dedp =
        gsl_interp_eval_deriv(eos->data.tabular->e_of_p_interp,
        eos->data.tabular->pdat, eos->data.tabular->edat, p,
        eos->data.tabular->e_of_p_acc);
    return dedp;
}
Esempio n. 4
0
double * gamma_spline_energy(GammaSpline *gs, GList * const sd, double kc)
{
    int NB = model->total_bands;
    size_t m;
    
    double * en = double_array_calloc(NB);
    
    for (m=0;m<NB;m++) {
        gamma_spline_reset(gs,sd,m,6,FALSE);
        en[m]=gsl_interp_eval_deriv(gs->phi_spline,gs->k,en,kc,gs->phi_accel)*1240.7/3e5/2/M_PI;
    }
    return en;
}