From 06e8dd7913371f36db07346ada94764054d01014 Mon Sep 17 00:00:00 2001 From: Vijay Varma <vvarma@caltech.edu> Date: Tue, 9 Jun 2020 15:31:47 -0700 Subject: [PATCH] Exit gracefully when surrogate data is missing This resolves Issue #291 for NRSur7dq4, NRSur7dq4Remnant and NRSur3dq8Remnant. --- lalsimulation/lib/LALSimIMRPrecessingNRSur.c | 6 ++++++ lalsimulation/lib/LALSimNRSur3dq8Remnant.c | 3 +++ lalsimulation/lib/LALSimNRSur7dq4Remnant.c | 3 +++ 3 files changed, 12 insertions(+) diff --git a/lalsimulation/lib/LALSimIMRPrecessingNRSur.c b/lalsimulation/lib/LALSimIMRPrecessingNRSur.c index 0ac16692e0..7b5a7775b1 100644 --- a/lalsimulation/lib/LALSimIMRPrecessingNRSur.c +++ b/lalsimulation/lib/LALSimIMRPrecessingNRSur.c @@ -1832,6 +1832,9 @@ static PrecessingNRSurData* PrecessingNRSur_core( // Load surrogate data if needed. If not, just access the loaded data. PrecessingNRSurData *__sur_data = PrecessingNRSur_LoadData(approximant); + if (!__sur_data->setup) { + XLAL_ERROR_NULL(XLAL_EFAILED, "Error loading surrogate data.\n"); + } // Make sure we didn't request any unavailable modes int ell, m; @@ -2679,6 +2682,9 @@ int XLALPrecessingNRSurDynamics( // Load surrogate data if needed. If not, just access the loaded data. PrecessingNRSurData *__sur_data = PrecessingNRSur_LoadData(approximant); + if (!__sur_data->setup) { + XLAL_ERROR(XLAL_EFAILED, "Error loading surrogate data.\n"); + } // Input spins at reference epoch // The input values are in the coorbital frame at omegaRef_dimless, but diff --git a/lalsimulation/lib/LALSimNRSur3dq8Remnant.c b/lalsimulation/lib/LALSimNRSur3dq8Remnant.c index a3e9abda67..bb6a07e3f2 100644 --- a/lalsimulation/lib/LALSimNRSur3dq8Remnant.c +++ b/lalsimulation/lib/LALSimNRSur3dq8Remnant.c @@ -276,6 +276,9 @@ int XLALNRSur3dq8Remnant( // Loaded surrogate data const AlignedSpinRemnantFitData *sur_data = &__lalsim_NRSur3dq8Remnant_data; + if (!sur_data->setup) { + XLAL_ERROR(XLAL_EFAILED, "Error loading surrogate data.\n"); + } // assign size to dummy_worker gsl_vector *dummy_worker = gsl_vector_alloc(sur_data->params_dim); diff --git a/lalsimulation/lib/LALSimNRSur7dq4Remnant.c b/lalsimulation/lib/LALSimNRSur7dq4Remnant.c index b43ea7c5d7..ce65b7e2a2 100644 --- a/lalsimulation/lib/LALSimNRSur7dq4Remnant.c +++ b/lalsimulation/lib/LALSimNRSur7dq4Remnant.c @@ -274,6 +274,9 @@ int XLALNRSur7dq4Remnant( // Loaded surrogate data const PrecessingRemnantFitData *sur_data = &__lalsim_NRSur7dq4Remnant_data; + if (!sur_data->setup) { + XLAL_ERROR(XLAL_EFAILED, "Error loading surrogate data.\n"); + } // assign size to dummy_worker gsl_vector *dummy_worker = gsl_vector_alloc(sur_data->params_dim); -- GitLab