Exemplo n.º 1
0
void setprof(void)
{
  int j;
  real r, msphr;

  rdtab[0] = mdtab[0] = vctab[0] = 0.0;
  for (j = 1; j < NTAB; j++) {
    r = rcut * rpow(((real) j) / (NTAB - 1), 2.0);
    rdtab[j] = r;
    mdtab[j] = 1 - rexp(- alpha1 * r) - alpha1 * r * rexp(- alpha1 * r);
    msphr = (sphr != NULL ? mass_gsp(sphr, r) : 0.0);
    vctab[j] = rsqrt(msphr / r - gdisk(r) * r);
  }
  eprintf("[%s: rcut = %8.4f/alpha  M(rcut) = %8.6f mdisk]\n",
	  getargv0(), rdtab[NTAB-1] * alpha1, mdtab[NTAB-1]);
  if ((mdtab[0] == mdtab[1]) || (mdtab[NTAB-2] == mdtab[NTAB-1]))
      error("%s: disk mass table is degenerate\n", getargv0());
  spline(&rdtab[NTAB], &mdtab[0], &rdtab[0], NTAB);	/* for r_d = r_d(m) */
  spline(&vctab[NTAB], &rdtab[0], &vctab[0], NTAB);	/* for v_c = v_c(r) */
}
Exemplo n.º 2
0
local void inittables()
{

    int i;
    real z;
    real zmax= 10.0;

    rcir[0] = vcir[0] = 0.0;
    for (i = 1; i < NTAB; i++) {
	rcir[i] = rcut * ((real) i) / (NTAB - 1);
	vcir[i] = sqrt(- gdisk(rcir[i]) * rcir[i]);
    }
    spline(&vcir[NTAB], &rcir[0], &vcir[0], NTAB);
    for (i = 0; i < NTAB; i++) {
	rdsk[i] = rcut * pow(((real) i) / (NTAB - 1), 1.5);
	mdsk[i] = 1 - (1 + alpha * rdsk[i]) * exp(- alpha * rdsk[i]);
    }
    spline(&rdsk[NTAB], &mdsk[0], &rdsk[0], NTAB);

}