cjy-dystopia #2

Merged
gh0s7 merged 26 commits from cjy-dystopia into main 2026-03-01 19:22:09 +08:00
Showing only changes of commit c2b676abf2 - Show all commits

View File

@@ -249,80 +249,74 @@ int f_compute_rhs_bssn(int *ex, double &T,
+ lg_yz*gyyz[i]
+ lg_zz*gzzy[i] );
}
// 1.8ms //
// Fused: A^{ij} raise-index + Gamma_rhs part 1 (2 loops -> 1)
for (int i=0;i<all;i+=1) {
Rxx[i] = gupxx[i]*gupxx[i]*Axx[i]
double axx = gupxx[i]*gupxx[i]*Axx[i]
+ gupxy[i]*gupxy[i]*Ayy[i]
+ gupxz[i]*gupxz[i]*Azz[i]
+ TWO * ( gupxx[i]*gupxy[i]*Axy[i]
+ gupxx[i]*gupxz[i]*Axz[i]
+ gupxy[i]*gupxz[i]*Ayz[i] );
Ryy[i] = gupxy[i]*gupxy[i]*Axx[i]
double ayy = gupxy[i]*gupxy[i]*Axx[i]
+ gupyy[i]*gupyy[i]*Ayy[i]
+ gupyz[i]*gupyz[i]*Azz[i]
+ TWO * ( gupxy[i]*gupyy[i]*Axy[i]
+ gupxy[i]*gupyz[i]*Axz[i]
+ gupyy[i]*gupyz[i]*Ayz[i] );
Rzz[i] = gupxz[i]*gupxz[i]*Axx[i]
double azz = gupxz[i]*gupxz[i]*Axx[i]
+ gupyz[i]*gupyz[i]*Ayy[i]
+ gupzz[i]*gupzz[i]*Azz[i]
+ TWO * ( gupxz[i]*gupyz[i]*Axy[i]
+ gupxz[i]*gupzz[i]*Axz[i]
+ gupyz[i]*gupzz[i]*Ayz[i] );
Rxy[i] = gupxx[i]*gupxy[i]*Axx[i]
double axy = gupxx[i]*gupxy[i]*Axx[i]
+ gupxy[i]*gupyy[i]*Ayy[i]
+ gupxz[i]*gupyz[i]*Azz[i]
+ ( gupxx[i]*gupyy[i] + gupxy[i]*gupxy[i] ) * Axy[i]
+ ( gupxx[i]*gupyz[i] + gupxz[i]*gupxy[i] ) * Axz[i]
+ ( gupxy[i]*gupyz[i] + gupxz[i]*gupyy[i] ) * Ayz[i];
Rxz[i] = gupxx[i]*gupxz[i]*Axx[i]
double axz = gupxx[i]*gupxz[i]*Axx[i]
+ gupxy[i]*gupyz[i]*Ayy[i]
+ gupxz[i]*gupzz[i]*Azz[i]
+ ( gupxx[i]*gupyz[i] + gupxy[i]*gupxz[i] ) * Axy[i]
+ ( gupxx[i]*gupzz[i] + gupxz[i]*gupxz[i] ) * Axz[i]
+ ( gupxy[i]*gupzz[i] + gupxz[i]*gupyz[i] ) * Ayz[i];
Ryz[i] = gupxy[i]*gupxz[i]*Axx[i]
double ayz = gupxy[i]*gupxz[i]*Axx[i]
+ gupyy[i]*gupyz[i]*Ayy[i]
+ gupyz[i]*gupzz[i]*Azz[i]
+ ( gupxy[i]*gupyz[i] + gupyy[i]*gupxz[i] ) * Axy[i]
+ ( gupxy[i]*gupzz[i] + gupyz[i]*gupxz[i] ) * Axz[i]
+ ( gupyy[i]*gupzz[i] + gupyz[i]*gupyz[i] ) * Ayz[i];
}
// 4ms //
for(int i=0;i<all;i+=1){
Gamx_rhs[i] = - TWO * ( Lapx[i] * Rxx[i] + Lapy[i] * Rxy[i] + Lapz[i] * Rxz[i] ) +
TWO * alpn1[i] * (
-F3o2/chin1[i] * ( chix[i] * Rxx[i] + chiy[i] * Rxy[i] + chiz[i] * Rxz[i] ) -
gupxx[i] * ( F2o3 * Kx[i] + EIGHT * PI * Sx[i] ) -
gupxy[i] * ( F2o3 * Ky[i] + EIGHT * PI * Sy[i] ) -
gupxz[i] * ( F2o3 * Kz[i] + EIGHT * PI * Sz[i] ) +
Gamxxx[i] * Rxx[i] + Gamxyy[i] * Ryy[i] + Gamxzz[i] * Rzz[i] +
TWO * ( Gamxxy[i] * Rxy[i] + Gamxxz[i] * Rxz[i] + Gamxyz[i] * Ryz[i] ) );
Rxx[i] = axx; Ryy[i] = ayy; Rzz[i] = azz;
Rxy[i] = axy; Rxz[i] = axz; Ryz[i] = ayz;
Gamy_rhs[i] = -TWO * ( Lapx[i]*Rxy[i] + Lapy[i]*Ryy[i] + Lapz[i]*Ryz[i] )
Gamx_rhs[i] = - TWO * ( Lapx[i]*axx + Lapy[i]*axy + Lapz[i]*axz ) +
TWO * alpn1[i] * (
-F3o2/chin1[i] * ( chix[i]*axx + chiy[i]*axy + chiz[i]*axz ) -
gupxx[i] * ( F2o3*Kx[i] + EIGHT*PI*Sx[i] ) -
gupxy[i] * ( F2o3*Ky[i] + EIGHT*PI*Sy[i] ) -
gupxz[i] * ( F2o3*Kz[i] + EIGHT*PI*Sz[i] ) +
Gamxxx[i]*axx + Gamxyy[i]*ayy + Gamxzz[i]*azz +
TWO * ( Gamxxy[i]*axy + Gamxxz[i]*axz + Gamxyz[i]*ayz ) );
Gamy_rhs[i] = -TWO * ( Lapx[i]*axy + Lapy[i]*ayy + Lapz[i]*ayz )
+ TWO * alpn1[i] * (
-F3o2/chin1[i] * ( chix[i]*Rxy[i] + chiy[i]*Ryy[i] + chiz[i]*Ryz[i] )
-F3o2/chin1[i] * ( chix[i]*axy + chiy[i]*ayy + chiz[i]*ayz )
- gupxy[i] * ( F2o3*Kx[i] + EIGHT*PI*Sx[i] )
- gupyy[i] * ( F2o3*Ky[i] + EIGHT*PI*Sy[i] )
- gupyz[i] * ( F2o3*Kz[i] + EIGHT*PI*Sz[i] )
+ Gamyxx[i]*Rxx[i] + Gamyyy[i]*Ryy[i] + Gamyzz[i]*Rzz[i]
+ TWO * ( Gamyxy[i]*Rxy[i] + Gamyxz[i]*Rxz[i] + Gamyyz[i]*Ryz[i] )
+ Gamyxx[i]*axx + Gamyyy[i]*ayy + Gamyzz[i]*azz
+ TWO * ( Gamyxy[i]*axy + Gamyxz[i]*axz + Gamyyz[i]*ayz )
);
Gamz_rhs[i] = -TWO * ( Lapx[i]*Rxz[i] + Lapy[i]*Ryz[i] + Lapz[i]*Rzz[i] )
Gamz_rhs[i] = -TWO * ( Lapx[i]*axz + Lapy[i]*ayz + Lapz[i]*azz )
+ TWO * alpn1[i] * (
-F3o2/chin1[i] * ( chix[i]*Rxz[i] + chiy[i]*Ryz[i] + chiz[i]*Rzz[i] )
-F3o2/chin1[i] * ( chix[i]*axz + chiy[i]*ayz + chiz[i]*azz )
- gupxz[i] * ( F2o3*Kx[i] + EIGHT*PI*Sx[i] )
- gupyz[i] * ( F2o3*Ky[i] + EIGHT*PI*Sy[i] )
- gupzz[i] * ( F2o3*Kz[i] + EIGHT*PI*Sz[i] )
+ Gamzxx[i]*Rxx[i] + Gamzyy[i]*Ryy[i] + Gamzzz[i]*Rzz[i]
+ TWO * ( Gamzxy[i]*Rxy[i] + Gamzxz[i]*Rxz[i] + Gamzyz[i]*Ryz[i] )
+ Gamzxx[i]*axx + Gamzyy[i]*ayy + Gamzzz[i]*azz
+ TWO * ( Gamzxy[i]*axy + Gamzxz[i]*axz + Gamzyz[i]*ayz )
);
}
// 22.3ms //