From c68c128efddd08cd740849e1046d68b63eeafc35 Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <svechnikovmv@gmail.com> Date: Tue, 16 Jan 2024 20:11:21 +0100 Subject: [PATCH] rnm to setMesoOptions --- Resample/Options/SimulationOptions.cpp | 6 - Resample/Options/SimulationOptions.h | 2 +- auto/Wrap/libBornAgainResample.py | 6 +- auto/Wrap/libBornAgainResample_wrap.cpp | 235 ++++++++---------------- 4 files changed, 76 insertions(+), 173 deletions(-) diff --git a/Resample/Options/SimulationOptions.cpp b/Resample/Options/SimulationOptions.cpp index b097495dc7e..9ea9bf7f60b 100644 --- a/Resample/Options/SimulationOptions.cpp +++ b/Resample/Options/SimulationOptions.cpp @@ -66,12 +66,6 @@ void SimulationOptions::setNumberOfBatches(int nbatches) m_thread_info.n_batches = nbatches; } -void SimulationOptions::setUseMesoReciprocalSum(bool use_reciprocal_sum, double radius_factor) -{ - m_meso_options.use_reciprocal_sum = use_reciprocal_sum; - m_meso_options.radius_factor = radius_factor; -} - unsigned SimulationOptions::getNumberOfBatches() const { ASSERT(m_thread_info.n_batches > 0); diff --git a/Resample/Options/SimulationOptions.h b/Resample/Options/SimulationOptions.h index 7a2107bfe19..dedf15a39dc 100644 --- a/Resample/Options/SimulationOptions.h +++ b/Resample/Options/SimulationOptions.h @@ -42,7 +42,7 @@ public: void setUseAvgMaterials(bool use_avg_materials) { m_use_avg_materials = use_avg_materials; } - void setUseMesoReciprocalSum(bool use_reciprocal_sum, double radius_factor = 2.1); + void setMesoOptions(const MesoOptions& mesoOptions) { m_meso_options = mesoOptions; } #ifndef SWIG diff --git a/auto/Wrap/libBornAgainResample.py b/auto/Wrap/libBornAgainResample.py index eb52e5b7af5..b870ad96b13 100644 --- a/auto/Wrap/libBornAgainResample.py +++ b/auto/Wrap/libBornAgainResample.py @@ -1694,9 +1694,9 @@ class SimulationOptions(object): r"""setUseAvgMaterials(SimulationOptions self, bool use_avg_materials)""" return _libBornAgainResample.SimulationOptions_setUseAvgMaterials(self, use_avg_materials) - def setUseMesoReciprocalSum(self, use_reciprocal_sum, radius_factor=2.1): - r"""setUseMesoReciprocalSum(SimulationOptions self, bool use_reciprocal_sum, double radius_factor=2.1)""" - return _libBornAgainResample.SimulationOptions_setUseMesoReciprocalSum(self, use_reciprocal_sum, radius_factor) + def setMesoOptions(self, mesoOptions): + r"""setMesoOptions(SimulationOptions self, MesoOptions const & mesoOptions)""" + return _libBornAgainResample.SimulationOptions_setMesoOptions(self, mesoOptions) __swig_destroy__ = _libBornAgainResample.delete_SimulationOptions # Register SimulationOptions in _libBornAgainResample: diff --git a/auto/Wrap/libBornAgainResample_wrap.cpp b/auto/Wrap/libBornAgainResample_wrap.cpp index 39c2bd056b7..3794d4e44d6 100644 --- a/auto/Wrap/libBornAgainResample_wrap.cpp +++ b/auto/Wrap/libBornAgainResample_wrap.cpp @@ -3386,58 +3386,59 @@ namespace Swig { /* -------- TYPES TABLE (BEGIN) -------- */ -#define SWIGTYPE_p_MultiLayer swig_types[0] -#define SWIGTYPE_p_Rotation3DT_double_t swig_types[1] -#define SWIGTYPE_p_SimulationOptions swig_types[2] -#define SWIGTYPE_p_Vec3T_double_t swig_types[3] -#define SWIGTYPE_p_Vec3T_int_t swig_types[4] -#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[5] -#define SWIGTYPE_p_allocator_type swig_types[6] -#define SWIGTYPE_p_char swig_types[7] -#define SWIGTYPE_p_difference_type swig_types[8] -#define SWIGTYPE_p_first_type swig_types[9] -#define SWIGTYPE_p_int swig_types[10] -#define SWIGTYPE_p_key_type swig_types[11] -#define SWIGTYPE_p_long_long swig_types[12] -#define SWIGTYPE_p_mapped_type swig_types[13] -#define SWIGTYPE_p_p_PyObject swig_types[14] -#define SWIGTYPE_p_second_type swig_types[15] -#define SWIGTYPE_p_short swig_types[16] -#define SWIGTYPE_p_signed_char swig_types[17] -#define SWIGTYPE_p_size_type swig_types[18] -#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[19] -#define SWIGTYPE_p_std__allocatorT_double_t swig_types[20] -#define SWIGTYPE_p_std__allocatorT_int_t swig_types[21] -#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[22] -#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[23] -#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[24] -#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[25] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[26] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[27] -#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[28] -#define SWIGTYPE_p_std__complexT_double_t swig_types[29] -#define SWIGTYPE_p_std__functionT_double_fdoubleF_t swig_types[30] -#define SWIGTYPE_p_std__invalid_argument swig_types[31] -#define SWIGTYPE_p_std__lessT_std__string_t swig_types[32] -#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[33] -#define SWIGTYPE_p_std__pairT_double_double_t swig_types[34] -#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_std__allocatorT_Vec3T_double_t_t_t swig_types[35] -#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[36] -#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[37] -#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[38] -#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[39] -#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[40] -#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[41] -#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[42] -#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[43] -#define SWIGTYPE_p_swig__SwigPyIterator swig_types[44] -#define SWIGTYPE_p_unsigned_char swig_types[45] -#define SWIGTYPE_p_unsigned_int swig_types[46] -#define SWIGTYPE_p_unsigned_long_long swig_types[47] -#define SWIGTYPE_p_unsigned_short swig_types[48] -#define SWIGTYPE_p_value_type swig_types[49] -static swig_type_info *swig_types[51]; -static swig_module_info swig_module = {swig_types, 50, 0, 0, 0, 0}; +#define SWIGTYPE_p_MesoOptions swig_types[0] +#define SWIGTYPE_p_MultiLayer swig_types[1] +#define SWIGTYPE_p_Rotation3DT_double_t swig_types[2] +#define SWIGTYPE_p_SimulationOptions swig_types[3] +#define SWIGTYPE_p_Vec3T_double_t swig_types[4] +#define SWIGTYPE_p_Vec3T_int_t swig_types[5] +#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[6] +#define SWIGTYPE_p_allocator_type swig_types[7] +#define SWIGTYPE_p_char swig_types[8] +#define SWIGTYPE_p_difference_type swig_types[9] +#define SWIGTYPE_p_first_type swig_types[10] +#define SWIGTYPE_p_int swig_types[11] +#define SWIGTYPE_p_key_type swig_types[12] +#define SWIGTYPE_p_long_long swig_types[13] +#define SWIGTYPE_p_mapped_type swig_types[14] +#define SWIGTYPE_p_p_PyObject swig_types[15] +#define SWIGTYPE_p_second_type swig_types[16] +#define SWIGTYPE_p_short swig_types[17] +#define SWIGTYPE_p_signed_char swig_types[18] +#define SWIGTYPE_p_size_type swig_types[19] +#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[20] +#define SWIGTYPE_p_std__allocatorT_double_t swig_types[21] +#define SWIGTYPE_p_std__allocatorT_int_t swig_types[22] +#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[23] +#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[24] +#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[25] +#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[26] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[27] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[28] +#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[29] +#define SWIGTYPE_p_std__complexT_double_t swig_types[30] +#define SWIGTYPE_p_std__functionT_double_fdoubleF_t swig_types[31] +#define SWIGTYPE_p_std__invalid_argument swig_types[32] +#define SWIGTYPE_p_std__lessT_std__string_t swig_types[33] +#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[34] +#define SWIGTYPE_p_std__pairT_double_double_t swig_types[35] +#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_std__allocatorT_Vec3T_double_t_t_t swig_types[36] +#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[37] +#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[38] +#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[39] +#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[40] +#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[41] +#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[42] +#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[43] +#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[44] +#define SWIGTYPE_p_swig__SwigPyIterator swig_types[45] +#define SWIGTYPE_p_unsigned_char swig_types[46] +#define SWIGTYPE_p_unsigned_int swig_types[47] +#define SWIGTYPE_p_unsigned_long_long swig_types[48] +#define SWIGTYPE_p_unsigned_short swig_types[49] +#define SWIGTYPE_p_value_type swig_types[50] +static swig_type_info *swig_types[52]; +static swig_module_info swig_module = {swig_types, 51, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) @@ -24554,75 +24555,33 @@ fail: } -SWIGINTERN PyObject *_wrap_SimulationOptions_setUseMesoReciprocalSum__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_SimulationOptions_setMesoOptions(PyObject *self, PyObject *args) { PyObject *resultobj = 0; SimulationOptions *arg1 = (SimulationOptions *) 0 ; - bool arg2 ; - double arg3 ; + MesoOptions *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; - bool val2 ; - int ecode2 = 0 ; - double val3 ; - int ecode3 = 0 ; + void *argp2 = 0 ; + int res2 = 0 ; + PyObject *swig_obj[2] ; - if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "SimulationOptions_setMesoOptions", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SimulationOptions, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SimulationOptions_setUseMesoReciprocalSum" "', argument " "1"" of type '" "SimulationOptions *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SimulationOptions_setMesoOptions" "', argument " "1"" of type '" "SimulationOptions *""'"); } arg1 = reinterpret_cast< SimulationOptions * >(argp1); - ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SimulationOptions_setUseMesoReciprocalSum" "', argument " "2"" of type '" "bool""'"); - } - arg2 = static_cast< bool >(val2); - ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "SimulationOptions_setUseMesoReciprocalSum" "', argument " "3"" of type '" "double""'"); - } - arg3 = static_cast< double >(val3); - { - try { - (arg1)->setUseMesoReciprocalSum(arg2,arg3); - } catch (const std::exception& ex) { - // message shown in the Python interpreter - const std::string msg { - "BornAgain C++ Exception: " + std::string(ex.what()) - }; - SWIG_exception(SWIG_RuntimeError, msg.c_str()); - } + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_MesoOptions, 0 | 0); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SimulationOptions_setMesoOptions" "', argument " "2"" of type '" "MesoOptions const &""'"); } - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_SimulationOptions_setUseMesoReciprocalSum__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { - PyObject *resultobj = 0; - SimulationOptions *arg1 = (SimulationOptions *) 0 ; - bool arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - bool val2 ; - int ecode2 = 0 ; - - if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SimulationOptions, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SimulationOptions_setUseMesoReciprocalSum" "', argument " "1"" of type '" "SimulationOptions *""'"); + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SimulationOptions_setMesoOptions" "', argument " "2"" of type '" "MesoOptions const &""'"); } - arg1 = reinterpret_cast< SimulationOptions * >(argp1); - ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SimulationOptions_setUseMesoReciprocalSum" "', argument " "2"" of type '" "bool""'"); - } - arg2 = static_cast< bool >(val2); + arg2 = reinterpret_cast< MesoOptions * >(argp2); { try { - (arg1)->setUseMesoReciprocalSum(arg2); + (arg1)->setMesoOptions((MesoOptions const &)*arg2); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -24638,60 +24597,6 @@ fail: } -SWIGINTERN PyObject *_wrap_SimulationOptions_setUseMesoReciprocalSum(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[4] = { - 0 - }; - - if (!(argc = SWIG_Python_UnpackTuple(args, "SimulationOptions_setUseMesoReciprocalSum", 0, 3, argv))) SWIG_fail; - --argc; - if (argc == 2) { - int _v = 0; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SimulationOptions, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_bool(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_SimulationOptions_setUseMesoReciprocalSum__SWIG_1(self, argc, argv); - } - } - } - if (argc == 3) { - int _v = 0; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SimulationOptions, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_bool(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - { - int res = SWIG_AsVal_double(argv[2], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_SimulationOptions_setUseMesoReciprocalSum__SWIG_0(self, argc, argv); - } - } - } - } - -fail: - SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'SimulationOptions_setUseMesoReciprocalSum'.\n" - " Possible C/C++ prototypes are:\n" - " SimulationOptions::setUseMesoReciprocalSum(bool,double)\n" - " SimulationOptions::setUseMesoReciprocalSum(bool)\n"); - return 0; -} - - SWIGINTERN PyObject *_wrap_delete_SimulationOptions(PyObject *self, PyObject *args) { PyObject *resultobj = 0; SimulationOptions *arg1 = (SimulationOptions *) 0 ; @@ -29651,7 +29556,7 @@ static PyMethodDef SwigMethods[] = { { "SimulationOptions_setNumberOfBatches", _wrap_SimulationOptions_setNumberOfBatches, METH_VARARGS, "SimulationOptions_setNumberOfBatches(SimulationOptions self, int nbatches)"}, { "SimulationOptions_setIncludeSpecular", _wrap_SimulationOptions_setIncludeSpecular, METH_VARARGS, "SimulationOptions_setIncludeSpecular(SimulationOptions self, bool include_specular)"}, { "SimulationOptions_setUseAvgMaterials", _wrap_SimulationOptions_setUseAvgMaterials, METH_VARARGS, "SimulationOptions_setUseAvgMaterials(SimulationOptions self, bool use_avg_materials)"}, - { "SimulationOptions_setUseMesoReciprocalSum", _wrap_SimulationOptions_setUseMesoReciprocalSum, METH_VARARGS, "SimulationOptions_setUseMesoReciprocalSum(SimulationOptions self, bool use_reciprocal_sum, double radius_factor=2.1)"}, + { "SimulationOptions_setMesoOptions", _wrap_SimulationOptions_setMesoOptions, METH_VARARGS, "SimulationOptions_setMesoOptions(SimulationOptions self, MesoOptions const & mesoOptions)"}, { "delete_SimulationOptions", _wrap_delete_SimulationOptions, METH_O, "delete_SimulationOptions(SimulationOptions self)"}, { "SimulationOptions_swigregister", SimulationOptions_swigregister, METH_O, NULL}, { "SimulationOptions_swiginit", SimulationOptions_swiginit, METH_VARARGS, NULL}, @@ -29783,6 +29688,7 @@ static PyMethodDef SwigMethods[] = { /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ +static swig_type_info _swigt__p_MesoOptions = {"_p_MesoOptions", "MesoOptions *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_MultiLayer = {"_p_MultiLayer", "MultiLayer *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Rotation3DT_double_t = {"_p_Rotation3DT_double_t", "RotMatrix *|Rotation3D< double > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SimulationOptions = {"_p_SimulationOptions", "SimulationOptions *", 0, 0, (void*)0, 0}; @@ -29835,6 +29741,7 @@ static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "uint16_t static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { + &_swigt__p_MesoOptions, &_swigt__p_MultiLayer, &_swigt__p_Rotation3DT_double_t, &_swigt__p_SimulationOptions, @@ -29887,6 +29794,7 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_value_type, }; +static swig_cast_info _swigc__p_MesoOptions[] = { {&_swigt__p_MesoOptions, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_MultiLayer[] = { {&_swigt__p_MultiLayer, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Rotation3DT_double_t[] = { {&_swigt__p_Rotation3DT_double_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SimulationOptions[] = { {&_swigt__p_SimulationOptions, 0, 0, 0},{0, 0, 0, 0}}; @@ -29939,6 +29847,7 @@ static swig_cast_info _swigc__p_unsigned_short[] = { {&_swigt__p_unsigned_short static swig_cast_info _swigc__p_value_type[] = { {&_swigt__p_value_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { + _swigc__p_MesoOptions, _swigc__p_MultiLayer, _swigc__p_Rotation3DT_double_t, _swigc__p_SimulationOptions, -- GitLab