From 0f3d43755a4854f43d2ee79af857673fa32d3aed Mon Sep 17 00:00:00 2001 From: bmundim Date: Mon, 28 Feb 2011 20:09:09 +0000 Subject: 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 --- src/Kerr.c | 30 +++++++++++++++++++++--------- 1 file 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; -- cgit v1.2.3