next up previous contents
Next: 4 Getting started Up: grape6user Previous: 2 Changes

3 Overview of GRAPE-6 and its operating principles

GRAPE-6 is the successor of GRAPE-4, designed for high-accuracy integration of gravitational N-body system using the individual timestep and Hermite scheme. It works as a backend processor, connected to a host computer through PCI interface. Thus, from the viewpoint of a user, GRAPE-6 system (single cluster) looks like that in figure 1.

Figure 1: Basic Single-Cluster configuration of GRAPE-6
\begin{figure}\begin{center}
\leavevmode
\epsfxsize 12 cm
\epsffile{g6basic.eps}\end{center}\end{figure}

In the following, I first describe what is calculated how, first on this simple (single cluster, or SC) configuration. What GRAPE-6 SC calculates is the forces and their time derivative on 48 particles, from all particles loaded into its memory.

To be more precise, GRAPE-6 calculates the following


$\displaystyle {\bf a}_i =$ $\textstyle \sum_j Gm_j\displaystyle{{\bf r}_{ij} \over (r_{ij}^2+\epsilon^2)^{3/2}}$   (1)
$\displaystyle {\bf\dot{a}}_i =$ $\textstyle \sum_jGm_j\left[
\displaystyle{{\bf v}_{ij} \over (r_{ij}^2+\epsilon...
...{ij}\cdot {\bf r}_{ij}) {\bf r}_{ij} \over
(r_{ij}^2+\epsilon^2)^{5/2}}\right],$   (2)
$\displaystyle \phi_i =$ $\textstyle \sum_j Gm_j\displaystyle{1 \over (r_{ij}^2+\epsilon^2)^{1/2}},$   (3)

where
$\displaystyle {\bf r}_{ij}$ $\textstyle = {\bf x}_{p,j} - {\bf x}_i,$   (4)
$\displaystyle {\bf v}_{ij}$ $\textstyle = {\bf v}_{p,j} - {\bf v}_i.$   (5)

Here, ${\bf x}_i$, ${\bf v}_i$, ${\bf a}_i$, ${\bf\dot{a}}_i$ are the position, velocity, acceleration, time derivative of acceleration of particle $i$, $G$ is the gravitational constant and $m_j$ is the mass of particle $j$. With GRAPE-6, $G$ is fixed to unity. The parameter $\epsilon$ is the usual plummer softening parameter.

The position and velocity of particle $j$ have additional suffix $p$ to denote they are ``predicted'' values at time $t$ using the following formulae:

$\displaystyle \Delta t =$ $\textstyle t - t_j$   (6)
$\displaystyle {\bf x}_{p} =$ $\textstyle \displaystyle{\Delta t^4 \over 24}{\bf a}^{(2)}_0 + {\Delta t^3 \ove...
...{\bf\dot{a}}_0 +
{\Delta t^2 \over 2}{\bf a}_0 +
\Delta t {\bf v}_0 + {\bf x}_0$   (7)
$\displaystyle {\bf v}_{p} =$ $\textstyle \displaystyle{
\Delta t^3 \over 6}{\bf a}^{(2)}_0 +
{\Delta t^2 \over 2}{\bf\dot{a}}_0 +
\Delta t{\bf a}_0 +
{\bf v}_0,$   (8)

Here, we dropped the subscript $j$ for clarity. Position ${\bf x}_{p}$ and velocity ${\bf v}_{p}$ are the predicted values, at time $t$, ${\bf x}_0$, ${\bf v}_0$, ${\bf a}_0$, ${\bf\dot{a}}_0$ ${\bf a}^{(2)}_0$ are true values of position etc at time $t_j$.

Thus, from the viewpoint of the host computer (and the application program on the host), the internal structure of GRAPE-6 SC looks like that in figure 2.

Figure 2: GRAPE-6 SC from the application viewpoint
\begin{figure}\begin{center}
\leavevmode
\epsfxsize 12 cm
\epsffile{g6scapiview.eps}\end{center}\end{figure}

If you have multiple clusters connected to a single host, they work just completely independently. In all library functions that actually communicate with GRAPE-6 hardware, you simply specify the identity of the cluster as an argument.


next up previous contents
Next: 4 Getting started Up: grape6user Previous: 2 Changes
Jun Makino
平成17年1月31日