summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2018-04-24 11:59:30 +0200
committerAnton Khirnov <anton@khirnov.net>2018-04-24 11:59:30 +0200
commite22991f57bdd33e90f668b24e39ad091f9f036df (patch)
tree550cae48e74d5118f7ecb0de240641f467da97f2
parent5c9a55f3e6335fb1a89a61708a98b285b511ad15 (diff)
Use the library to evaluate k_rtheta.
-rw-r--r--src/teukolsky.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/teukolsky.c b/src/teukolsky.c
index a710bda..60cef99 100644
--- a/src/teukolsky.c
+++ b/src/teukolsky.c
@@ -29,7 +29,7 @@ void teukolsky_data(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS;
TDContext *td;
- double *r_val, *theta_val, *psi_val, *krr_val, *kpp_val;
+ double *r_val, *theta_val, *psi_val, *krr_val, *kpp_val, *krt_val;
int ret;
int64_t grid_size = CCTK_GFINDEX3D(cctkGH,
@@ -80,6 +80,7 @@ void teukolsky_data(CCTK_ARGUMENTS)
psi_val = malloc(sizeof(*psi_val) * (cctk_lsh[2] * cctk_lsh[0] + 1));
krr_val = malloc(sizeof(*krr_val) * (cctk_lsh[2] * cctk_lsh[0] + 1));
kpp_val = malloc(sizeof(*kpp_val) * (cctk_lsh[2] * cctk_lsh[0] + 1));
+ krt_val = malloc(sizeof(*krt_val) * (cctk_lsh[2] * cctk_lsh[0] + 1));
for (int j = 0; j < cctk_lsh[2]; j++)
for (int i = 0; i < cctk_lsh[0]; i++) {
double xx = x[CCTK_GFINDEX3D(cctkGH, i, 0, j)];
@@ -102,6 +103,9 @@ void teukolsky_data(CCTK_ARGUMENTS)
ret |= td_eval_kpp(td, cctk_lsh[2] * cctk_lsh[0] + 1, r_val, theta_val,
(const unsigned int [2]){ 0, 0},
kpp_val);
+ ret |= td_eval_krt(td, cctk_lsh[2] * cctk_lsh[0] + 1, r_val, theta_val,
+ (const unsigned int [2]){ 0, 0},
+ krt_val);
if (ret)
CCTK_WARN(0, "Error evaluating the variables\n");
@@ -120,7 +124,7 @@ void teukolsky_data(CCTK_ARGUMENTS)
double krr = krr_val[idx_src];
double kpp = kpp_val[idx_src];
double ktt = -(krr + kpp);
- double krt = -60.0 * M_SQRT2 * amplitude * r * (3.0 - 2.0 * SQR(r)) * exp(-SQR(r)) * s2t / sqrt(M_PI);
+ double krt = krt_val[idx_src];
gxx[idx_dst] = psi4;
gyy[idx_dst] = psi4;
@@ -145,4 +149,5 @@ void teukolsky_data(CCTK_ARGUMENTS)
free(psi_val);
free(krr_val);
free(kpp_val);
+ free(krt_val);
}