aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhaas <rhaas@b2a53a04-0f4f-0410-87ed-f9f25ced00cf>2010-05-24 19:21:50 +0000
committerrhaas <rhaas@b2a53a04-0f4f-0410-87ed-f9f25ced00cf>2010-05-24 19:21:50 +0000
commit506b980364008642a64dea93dd3ad55c7caca9c5 (patch)
tree738d8a6a05382707b140ca899bf8013bba80ed7d
parentddf2734f87761928bbf50965d1d623fc885bf9ac (diff)
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
-rw-r--r--src/FuncAndJacobian.c8
-rw-r--r--src/TwoPunctures.c2
-rw-r--r--src/TwoPunctures.h4
3 files changed, 7 insertions, 7 deletions
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);