199 lines
5.4 KiB
C
199 lines
5.4 KiB
C
#ifndef GPU_MEM_H_
|
|
#define GPU_MEM_H_
|
|
#include "macrodef.fh"
|
|
|
|
#ifdef WithShell
|
|
struct Metass
|
|
{
|
|
double *crho,* sigma,* R,*
|
|
drhodx,* drhody,* drhodz,*
|
|
dsigmadx,* dsigmady,* dsigmadz,*
|
|
dRdx,* dRdy,* dRdz,*
|
|
drhodxx,* drhodxy,* drhodxz,*
|
|
drhodyy,* drhodyz,* drhodzz,*
|
|
dsigmadxx,* dsigmadxy,* dsigmadxz,*
|
|
dsigmadyy,* dsigmadyz,* dsigmadzz,*
|
|
dRdxx,* dRdxy,* dRdxz,*
|
|
dRdyy,* dRdyz,* dRdzz;
|
|
//local
|
|
double *gx,*gy,*gz,*gxx,*gxy,*gxz,*gyy,*gyz,*gzz;
|
|
};
|
|
|
|
__constant__ Metass metassc;
|
|
Metass * metass;
|
|
|
|
#endif //WithShell
|
|
|
|
struct Meta
|
|
{
|
|
//SS
|
|
|
|
//---------------in/out-------------------
|
|
//int * ex;
|
|
//int* Symmetry,Lev,co; //not array //in
|
|
//double * T; //not array //in
|
|
double * X,*Y,*Z; //in
|
|
double * chi,*dxx,*dyy,*dzz; //inout
|
|
double * trK ; //in
|
|
double * gxy,*gxz,*gyz; //in
|
|
double * Axx,*Axy,*Axz,*Ayy,*Ayz,*Azz; //in
|
|
double * Gamx,*Gamy,*Gamz ; //in
|
|
double * Lap, *betax, *betay, *betaz; //inout
|
|
double * dtSfx, *dtSfy, *dtSfz ; //in
|
|
double * chi_rhs,*trK_rhs ; //out
|
|
double * gxx_rhs,*gxy_rhs,*gxz_rhs; //out
|
|
double * gyy_rhs,*gyz_rhs,*gzz_rhs; //out
|
|
double * Axx_rhs,*Axy_rhs,*Axz_rhs; //out
|
|
double * Ayy_rhs,*Ayz_rhs,*Azz_rhs; //out
|
|
double * Gamx_rhs,*Gamy_rhs,*Gamz_rhs;//out
|
|
double * Lap_rhs, *betax_rhs, *betay_rhs, *betaz_rhs;//out
|
|
double * dtSfx_rhs,*dtSfy_rhs,*dtSfz_rhs;//out
|
|
double * rho,*Sx,*Sy,*Sz ; //in
|
|
double * Sxx,*Sxy,*Sxz,*Syy,*Syz,*Szz; //in
|
|
|
|
// when out, physical second kind of connection //out
|
|
double * Gamxxx, *Gamxxy, *Gamxxz;
|
|
double * Gamxyy, *Gamxyz, *Gamxzz;
|
|
double * Gamyxx, *Gamyxy, *Gamyxz;
|
|
double * Gamyyy, *Gamyyz, *Gamyzz;
|
|
double * Gamzxx, *Gamzxy,* Gamzxz;
|
|
double * Gamzyy, *Gamzyz, *Gamzzz;
|
|
|
|
//when out, physical Ricci tensor
|
|
double * Rxx,*Rxy,*Rxz,*Ryy,*Ryz,*Rzz; //out
|
|
//double * eps; //in
|
|
double * ham_Res, *movx_Res, *movy_Res, *movz_Res; //inout
|
|
double * Gmx_Res, *Gmy_Res, *Gmz_Res; //inout
|
|
|
|
|
|
//---------------local-------------------
|
|
|
|
double * gxx,*gyy,*gzz
|
|
, *chix,*chiy,*chiz
|
|
, *gxxx,*gxyx,*gxzx,*gyyx,*gyzx,*gzzx
|
|
, *gxxy,*gxyy,*gxzy,*gyyy,*gyzy,*gzzy
|
|
, *gxxz,*gxyz,*gxzz,*gyyz,*gyzz,*gzzz
|
|
, *Lapx,*Lapy,*Lapz
|
|
, *betaxx,*betaxy,*betaxz
|
|
, *betayx,*betayy,*betayz
|
|
, *betazx,*betazy,*betazz
|
|
, *Gamxx,*Gamxy,*Gamxz
|
|
, *Gamyx,*Gamyy,*Gamyz
|
|
, *Gamzx,*Gamzy,*Gamzz
|
|
, *Kx,*Ky,*Kz,*div_beta,*S
|
|
, *f,*fxx,*fxy,*fxz,*fyy,*fyz,*fzz
|
|
, *Gamxa,*Gamya,*Gamza,*alpn1,*chin1
|
|
, *gupxx,*gupxy,*gupxz
|
|
, *gupyy,*gupyz,*gupzz;
|
|
|
|
//---------------subroutine----------------
|
|
double * fh;
|
|
double * fh2;
|
|
|
|
/*double *SSS;
|
|
double *AAS;
|
|
double *ASA;
|
|
double *SAA;
|
|
double *ASS;
|
|
double *SAS;
|
|
double *SSA;*/
|
|
|
|
//---------------GAUGE--------------
|
|
#if (GAUGE == 2 || GAUGE == 3 || GAUGE == 4 || GAUGE == 5 || GAUGE == 6 || GAUGE == 7)
|
|
double * reta;
|
|
#endif
|
|
|
|
};
|
|
|
|
//------init constant memory---------
|
|
|
|
//1-----for compute_rhs_bssn---------
|
|
__constant__ Meta metac;
|
|
|
|
__constant__ int ex_c[3];
|
|
__constant__ double T_c;
|
|
__constant__ int Symmetry_c;
|
|
__constant__ int Lev_c;
|
|
__constant__ int co_c;
|
|
__constant__ double eps_c;
|
|
__constant__ int sst_c;
|
|
//local
|
|
__constant__ double dX; //dX,dY,dZ
|
|
__constant__ double dY;
|
|
__constant__ double dZ;
|
|
__constant__ double ZEO = 1.0;
|
|
__constant__ double ONE = 1.0;
|
|
__constant__ double TWO = 2.0;
|
|
__constant__ double FOUR = 4.0;
|
|
__constant__ double EIGHT = 8.0;
|
|
__constant__ double HALF = 0.5;
|
|
__constant__ double THR = 3.0;
|
|
__constant__ double SYM = 1.0;
|
|
__constant__ double ANTI = -1.0;
|
|
__constant__ double FF = 0.75;
|
|
__constant__ double eta = 2.0;
|
|
__constant__ double F1o3;
|
|
__constant__ double F2o3;
|
|
__constant__ double F3o2 = 1.5;
|
|
__constant__ double F1o6;
|
|
__constant__ double F8 = 8.0;
|
|
__constant__ double F16 = 16.0;
|
|
__constant__ double PI;
|
|
/*__constant__ double SSS[3] = {1,1,1};
|
|
__constant__ double AAS[3] = {-1,-1,1};
|
|
__constant__ double ASA[3] = {-1,1,-1};
|
|
__constant__ double SAA[3] = {1,-1,-1};
|
|
__constant__ double ASS[3] = {-1,1,1};
|
|
__constant__ double SAS[3] = {1,-1,1};
|
|
__constant__ double SSA[3] = {1,1,-1};*/
|
|
|
|
//2--------for fderivs------------
|
|
__constant__ int ijk_min[3];
|
|
__constant__ int ijk_min2[3];
|
|
__constant__ int ijk_min3[3];
|
|
__constant__ int ijk_max[3];
|
|
__constant__ int ijk_max3[3];
|
|
__constant__ double d12dxyz[3];
|
|
__constant__ double d2dxyz[3];
|
|
|
|
//3--------for fdderivs------------
|
|
__constant__ double Sdxdx;
|
|
__constant__ double Sdydy;
|
|
__constant__ double Sdzdz;
|
|
__constant__ double Fdxdx;
|
|
__constant__ double Fdydy;
|
|
__constant__ double Fdzdz;
|
|
__constant__ double Sdxdy;
|
|
__constant__ double Sdxdz;
|
|
__constant__ double Sdydz;
|
|
__constant__ double Fdxdy;
|
|
__constant__ double Fdxdz;
|
|
__constant__ double Fdydz;
|
|
|
|
|
|
//my own
|
|
__constant__ int STEP_SIZE;
|
|
/*__constant__ int MATRIX_SIZE;
|
|
__constant__ int MATRIX_SIZE_FH;
|
|
__constant__ int SQUARE_SIZE;
|
|
__constant__ int SQUARE_SIZE_FH;
|
|
__constant__ int LINE_SIZE_FH;*/
|
|
|
|
__constant__ int _1D_SIZE[4]; //start from 0 !!
|
|
__constant__ int _2D_SIZE[4]; ////start from 0 !!
|
|
__constant__ int _3D_SIZE[4]; ////start from 0 !!
|
|
|
|
int h_1D_SIZE[4]; //start from 0 !!
|
|
int h_2D_SIZE[4]; ////start from 0 !!
|
|
int h_3D_SIZE[4]; ////start from 0 !!
|
|
Meta * meta;
|
|
|
|
#if (GAUGE == 6 || GAUGE == 7)
|
|
__constant__ int BHN;
|
|
__constant__ double Porg[9];
|
|
__constant__ double Mass[3];
|
|
__constant__ double /*r1,r2*/,M,A,/*w1,w2 (== 12)*/,C1,C2;
|
|
#endif
|
|
/**/
|
|
#endif
|