Add Z4C Shell-Patch GPU acceleration (Phase 3 complete)
Create z4c_gpu_rhs_ss.cu (reusing BSSN shell FD/chain-rule kernels): - Uploads trKd = trK + 2*TZ to GPU so existing BSSN algebraic kernels compute correct Z4C physical equations without modification - New kern_z4c_post applies TZ_rhs = alpn1 * Hcon / 2, kappa1/kappa2 constraint damping, TZ advection (lopsided), and dissipation (kodis) - Adds TZ/TZ_rhs to Meta struct, alloc/upload/download/free lifecycle Add cuda_compute_rhs_z4c_ss() wrapper in Z4c_class.C matching the Fortran f_compute_rhs_Z4c_ss signature, with #define redirection for Step/SHStep call sites and #undef before analysis functions. Add z4c_gpu_rhs_ss.o to ABE_CUDA_CFILES and build rule in makefile. Add kappa1_c/kappa2_c constants to gpu_rhsSS_mem.h. Build verified with USE_CUDA_Z4C=1 + WithShell — compiles and links cleanly. All three Shell GPU files now coexist: bssn_gpu_rhs_ss.o (BSSN), z4c_gpu_rhs_ss.o (Z4C), both sharing FD/chain-rule kernels. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -48,6 +48,8 @@ struct Meta
|
||||
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 * TZ; //in (Z4C)
|
||||
double * TZ_rhs; //out (Z4C)
|
||||
double * rho,*Sx,*Sy,*Sz ; //in
|
||||
double * Sxx,*Sxy,*Sxz,*Syy,*Syz,*Szz; //in
|
||||
|
||||
@@ -132,6 +134,8 @@ __constant__ double SYM = 1.0;
|
||||
__constant__ double ANTI = -1.0;
|
||||
__constant__ double FF = 0.75;
|
||||
__constant__ double eta = 2.0;
|
||||
__constant__ double kappa1_c = 0.02;
|
||||
__constant__ double kappa2_c = 0.0;
|
||||
__constant__ double F1o3;
|
||||
__constant__ double F2o3;
|
||||
__constant__ double F3o2 = 1.5;
|
||||
|
||||
Reference in New Issue
Block a user