From 506b980364008642a64dea93dd3ad55c7caca9c5 Mon Sep 17 00:00:00 2001 From: rhaas Date: Mon, 24 May 2010 19:21:50 +0000 Subject: make PunctEvalAtArbitPosition work with more than one variable git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/TwoPunctures/trunk@105 b2a53a04-0f4f-0410-87ed-f9f25ced00cf --- src/FuncAndJacobian.c | 8 ++++---- src/TwoPunctures.c | 2 +- src/TwoPunctures.h | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/FuncAndJacobian.c b/src/FuncAndJacobian.c index 004e784..6575cf4 100644 --- a/src/FuncAndJacobian.c +++ b/src/FuncAndJacobian.c @@ -681,8 +681,8 @@ SetMatrix_JFD (int nvar, int n1, int n2, int n3, derivs u, /* --------------------------------------------------------------------------*/ /* Calculates the value of v at an arbitrary position (A,B,phi)*/ CCTK_REAL -PunctEvalAtArbitPosition (CCTK_REAL *v, CCTK_REAL A, CCTK_REAL B, CCTK_REAL phi, - int n1, int n2, int n3) +PunctEvalAtArbitPosition (CCTK_REAL *v, int ivar, CCTK_REAL A, CCTK_REAL B, CCTK_REAL phi, + int nvar, int n1, int n2, int n3) { int i, j, k, N; CCTK_REAL *p, *values1, **values2, result; @@ -697,7 +697,7 @@ PunctEvalAtArbitPosition (CCTK_REAL *v, CCTK_REAL A, CCTK_REAL B, CCTK_REAL phi, for (j = 0; j < n2; j++) { for (i = 0; i < n1; i++) - p[i] = v[i + n1 * (j + n2 * k)]; + p[i] = v[ivar + nvar * (i + n1 * (j + n2 * k))]; chebft_Zeros (p, n1, 0); values2[j][k] = chebev (-1, 1, p, n1, A); } @@ -834,7 +834,7 @@ PunctIntPolAtArbitPosition (int ivar, int nvar, int n1, A = 2 * tanh (0.5 * X) - 1; B = tan (0.5 * R - Piq); - result = PunctEvalAtArbitPosition (v.d0, A, B, phi, n1, n2, n3); + result = PunctEvalAtArbitPosition (v.d0, ivar, A, B, phi, nvar, n1, n2, n3); Ui = (A - 1) * result; diff --git a/src/TwoPunctures.c b/src/TwoPunctures.c index e503f23..3b97d20 100644 --- a/src/TwoPunctures.c +++ b/src/TwoPunctures.c @@ -318,7 +318,7 @@ TwoPunctures (CCTK_ARGUMENTS) /* print out ADM mass, eq.: \Delta M_ADM=2*r*u=4*b*V for A=1,B=0,phi=0 */ admMass = (*mp + *mm - - 4*par_b*PunctEvalAtArbitPosition(v.d0, 1, 0, 0, n1, n2, n3));; + - 4*par_b*PunctEvalAtArbitPosition(v.d0, 0, 1, 0, 0, nvar, n1, n2, n3)); CCTK_VInfo (CCTK_THORNSTRING, "The total ADM mass is %g", (double) admMass); } diff --git a/src/TwoPunctures.h b/src/TwoPunctures.h index 4c4399f..79feff3 100644 --- a/src/TwoPunctures.h +++ b/src/TwoPunctures.h @@ -39,8 +39,8 @@ void JFD_times_dv (int i, int j, int k, int nvar, int n1, int n2, int n3, derivs dv, derivs u, CCTK_REAL *values); void SetMatrix_JFD (int nvar, int n1, int n2, int n3, derivs u, int *ncols, int **cols, CCTK_REAL **Matrix); -CCTK_REAL PunctEvalAtArbitPosition (CCTK_REAL *v, CCTK_REAL A, CCTK_REAL B, CCTK_REAL phi, - int n1, int n2, int n3); +CCTK_REAL PunctEvalAtArbitPosition (CCTK_REAL *v, int ivar, CCTK_REAL A, CCTK_REAL B, CCTK_REAL phi, + int nvar, int n1, int n2, int n3); void calculate_derivs (int i, int j, int k, int ivar, int nvar, int n1, int n2, int n3, derivs v, derivs vv); CCTK_REAL interpol (CCTK_REAL a, CCTK_REAL b, CCTK_REAL c, derivs v); -- cgit v1.2.3