Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

grape6.h

Go to the documentation of this file.
00001 
00002        //=======================================================//    _\|/_
00003       //  __  _____           ___                    ___       //      /|\ ~
00004      //  /      |      ^     |   \  |         ^     |   \     //          _\|/_
00005     //   \__    |     / \    |___/  |        / \    |___/    //            /|\ ~
00006    //       \   |    /___\   |  \   |       /___\   |   \   // _\|/_
00007   //     ___/   |   /     \  |   \  |____  /     \  |___/  //   /|\ ~
00008  //                                                       //            _\|/_
00009 //=======================================================//              /|\ ~
00010 
00012 //
00013 //  version 1:  July 2000       Steve McMillan, Jun Makino
00014 
00015 #ifndef  STARLAB_GRAPE6_H
00016 #  define  STARLAB_GRAPE6_H
00017 
00018 extern "C" void g6_set_tunit_(int *new_tunit);
00019 extern "C" void g6_set_xunit_(int *new_xunit);
00020 
00021 extern "C" int  g6_open_(int *cluster_id);
00022 extern "C" int  g6_close_(int *cluster_id);
00023 
00024 extern "C" int  g6_reset_(int *cluster_id);
00025 extern "C" int  g6_reset_fofpga_(int *cluster_id);
00026 
00027 extern "C" int  g6_npipes_();
00028 
00029 extern "C" void g6_set_ti_(int *cluster_id, double *ti);
00030 extern "C" int  g6_set_j_particle_(int *cluster_id,
00031                                    int *address,
00032                                    int *index,
00033                                    double *tj,
00034                                    double *dtj,
00035                                    double *mass,
00036                                    double k18[3],       // k/18
00037                                    double j6[3],        // j/6
00038                                    double a2[3],        // a/2
00039                                    double v[3],
00040                                    double x[3]);
00041 
00042 // *** Compiler doesn't like passing vec* as real** in the following
00043 // *** functions.  The GRAPE-4 fix was to declare the arguments as vec*.
00044 // *** Not tested...
00045 
00046 extern "C" void g6calc_firsthalf_(int *cluster_id,
00047                                   int *nj,
00048                                   int *ni,
00049                                   int index[],
00050                                   vec xi[],             // double xi[][3],
00051                                   vec vi[],             // double vi[][3],
00052                                   vec aold[],   // double acc[][3],
00053                                   vec j6old[],  // double jerk[][3],
00054                                   double phiold[],
00055                                   double *eps2,
00056                                   double h2[]);
00057 
00058 extern "C" int g6calc_lasthalf_(int *cluster_id,
00059                                 int *nj,
00060                                 int *ni,
00061                                 int index[],
00062                                 vec xi[],               // double xi[][3],
00063                                 vec vi[],               // double vi[][3],
00064                                 double *eps2,
00065                                 double h2[],
00066                                 vec acc[],              // double acc[][3],
00067                                 vec jerk[],             // double jerk[][3],
00068                                 double pot[]);
00069 
00070 extern "C" int g6calc_lasthalf2_(int *cluster_id,
00071                                  int *nj,
00072                                  int *ni,
00073                                  int index[],
00074                                  vec xi[],              // double xi[][3],
00075                                  vec vi[],              // double vi[][3],
00076                                  double *eps2,
00077                                  double h2[],
00078                                  vec acc[],             // double acc[][3],
00079                                  vec jerk[],            // double jerk[][3],
00080                                  double pot[],
00081                                  int nnbindex[]);
00082 
00083 extern "C" int g6_read_neighbour_list_(int *cluster_id);
00084 extern "C" int g6_read_neighbour_list_old_(int *cluster_id);
00085 
00086 extern "C" int g6_get_neighbour_list_(int *cluster_id,
00087                                       int *pipe,
00088                                       int *max_length,
00089                                       int *nblen,
00090                                       int nbl[]);
00091 
00092 extern "C" int g6_initialize_jp_buffer_(int *clusterid, int *size);
00093 extern "C" int g6_flush_jp_buffer_(int *clusterid);
00094 
00095 #endif
00096 
00097 //=======================================================================//
00098 //  +---------------+        _\|/_        +------------------------------\\ ~
00099 //  |  the end of:  |         /|\         |  inc/grape6.h
00100 //  +---------------+                     +------------------------------//
00101 //========================= STARLAB =====================================\\ ~
00102 

Generated on Wed Jul 20 12:43:35 2005 for Starlab by  doxygen 1.4.3