diff --git a/include/openmc.h b/include/openmc.h index a9ffa74d75..2c0f10eae0 100644 --- a/include/openmc.h +++ b/include/openmc.h @@ -32,7 +32,7 @@ extern "C" { int openmc_extend_sources(int32_t n, int32_t* index_start, int32_t* index_end); int openmc_extend_tallies(int32_t n, int32_t* index_start, int32_t* index_end); int openmc_filter_get_id(int32_t index, int32_t* id); - int openmc_filter_get_type(int32_t index, const char* type); + int openmc_filter_get_type(int32_t index, char* type); int openmc_filter_set_id(int32_t index, int32_t id); int openmc_filter_set_type(int32_t index, const char* type); int openmc_finalize(); diff --git a/openmc/capi/filter.py b/openmc/capi/filter.py index 611efb7fda..391e63f073 100644 --- a/openmc/capi/filter.py +++ b/openmc/capi/filter.py @@ -209,6 +209,11 @@ class EnergyFunctionFilter(Filter): class LegendreFilter(Filter): filter_type = 'legendre' + def __init__(self, order=None, uid=None, new=True, index=None): + super().__init__(uid, new, index) + if order is not None: + self.order = order + @property def order(self): temp_order = c_int() @@ -293,6 +298,11 @@ class PolarFilter(Filter): class SphericalHarmonicsFilter(Filter): filter_type = 'sphericalharmonics' + def __init__(self, order=None, uid=None, new=True, index=None): + super().__init__(uid, new, index) + if order is not None: + self.order = order + @property def order(self): temp_order = c_int() @@ -307,6 +317,11 @@ class SphericalHarmonicsFilter(Filter): class SpatialLegendreFilter(Filter): filter_type = 'spatiallegendre' + def __init__(self, order=None, uid=None, new=True, index=None): + super().__init__(uid, new, index) + if order is not None: + self.order = order + @property def order(self): temp_order = c_int() @@ -329,6 +344,11 @@ class UniverseFilter(Filter): class ZernikeFilter(Filter): filter_type = 'zernike' + def __init__(self, order=None, uid=None, new=True, index=None): + super().__init__(uid, new, index) + if order is not None: + self.order = order + @property def order(self): temp_order = c_int() diff --git a/tests/unit_tests/test_capi.py b/tests/unit_tests/test_capi.py index 11a47b1506..af013cbb5b 100644 --- a/tests/unit_tests/test_capi.py +++ b/tests/unit_tests/test_capi.py @@ -205,7 +205,8 @@ def test_tally_results(capi_run): assert np.all(t.ci_width()[nonzero] >= 1.95*t.std_dev[nonzero]) t2 = openmc.capi.tallies[2] - assert t2.mean.size == 63 # 21 coefficients for 5th order Zernike * 3 cells + n = 5 + assert t2.mean.size == (n + 1) * (n + 2) // 2 * 3 # Number of Zernike coeffs * 3 cells def test_global_tallies(capi_run):