diff options
author | bmundim <bmundim@6a3ddf76-46e1-4315-99d9-bc56cac1ef84> | 2011-02-28 20:09:09 +0000 |
---|---|---|
committer | bmundim <bmundim@6a3ddf76-46e1-4315-99d9-bc56cac1ef84> | 2011-02-28 20:09:09 +0000 |
commit | 0f3d43755a4854f43d2ee79af857673fa32d3aed (patch) | |
tree | 7247d93fbbb07b0aa0a776ed7f29a46f555364df | |
parent | 8b1c7440296e61926ce950995b6d7c2b8e9e49fb (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.c | 30 |
1 files changed, 21 insertions, 9 deletions
@@ -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; |