aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbmundim <bmundim@6a3ddf76-46e1-4315-99d9-bc56cac1ef84>2011-02-28 20:09:09 +0000
committerbmundim <bmundim@6a3ddf76-46e1-4315-99d9-bc56cac1ef84>2011-02-28 20:09:09 +0000
commit0f3d43755a4854f43d2ee79af857673fa32d3aed (patch)
tree7247d93fbbb07b0aa0a776ed7f29a46f555364df
parent8b1c7440296e61926ce950995b6d7c2b8e9e49fb (diff)
Segfault with kerr initial data using IDAnalyticBH
Yosef's patch: If initial_data=kerr and metric_type=physical, IDAnalyticBH writes to psi[x-z] and psi[x-z][x-z] (it tries to set these GFs to zero) even if no storage is allocated. The problem is with the code: IDAnalyticBH_zero_CCTK_REAL_array(npoints, psix); etc.., which is only executed when the metric is physical. I was able to use the Kerr data with this patch, but just deleting the offending lines should be sufficient. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/IDAnalyticBH/trunk@178 6a3ddf76-46e1-4315-99d9-bc56cac1ef84
-rw-r--r--src/Kerr.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/Kerr.c b/src/Kerr.c
index d7966ca..dea5ee5 100644
--- a/src/Kerr.c
+++ b/src/Kerr.c
@@ -103,6 +103,11 @@ void KerrID(CCTK_ARGUMENTS)
conformal_storage); /*NOTREACHED*/
}
}
+ else
+ {
+ *conformal_state = 0;
+ }
+
/* printf("npoints: %i\n",npoints); */
@@ -311,15 +316,22 @@ void KerrID(CCTK_ARGUMENTS)
}
IDAnalyticBH_zero_CCTK_REAL_array(npoints, gxz);
IDAnalyticBH_zero_CCTK_REAL_array(npoints, gyz);
- IDAnalyticBH_zero_CCTK_REAL_array(npoints, psix);
- IDAnalyticBH_zero_CCTK_REAL_array(npoints, psiy);
- IDAnalyticBH_zero_CCTK_REAL_array(npoints, psiz);
- IDAnalyticBH_zero_CCTK_REAL_array(npoints, psixx);
- IDAnalyticBH_zero_CCTK_REAL_array(npoints, psixy);
- IDAnalyticBH_zero_CCTK_REAL_array(npoints, psixz);
- IDAnalyticBH_zero_CCTK_REAL_array(npoints, psiyy);
- IDAnalyticBH_zero_CCTK_REAL_array(npoints, psiyz);
- IDAnalyticBH_zero_CCTK_REAL_array(npoints, psizz);
+
+ if (psix && *conformal_state < 2)
+ {
+ IDAnalyticBH_zero_CCTK_REAL_array(npoints, psix);
+ IDAnalyticBH_zero_CCTK_REAL_array(npoints, psiy);
+ IDAnalyticBH_zero_CCTK_REAL_array(npoints, psiz);
+ }
+ if (psixx && *conformal_state < 3)
+ {
+ IDAnalyticBH_zero_CCTK_REAL_array(npoints, psixx);
+ IDAnalyticBH_zero_CCTK_REAL_array(npoints, psixy);
+ IDAnalyticBH_zero_CCTK_REAL_array(npoints, psixz);
+ IDAnalyticBH_zero_CCTK_REAL_array(npoints, psiyy);
+ IDAnalyticBH_zero_CCTK_REAL_array(npoints, psiyz);
+ IDAnalyticBH_zero_CCTK_REAL_array(npoints, psizz);
+ }
}
return;