diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index 4509f0fc8..e1d61cedc 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -512,7 +512,7 @@ "outputs": [], "source": [ "# Specify multi-group cross section types to compute\n", - "mgxs_lib.mgxs_types = ['transport', 'absorption', 'nu-fission', 'fission',\n", + "mgxs_lib.mgxs_types = ['total', 'absorption', 'nu-fission', 'fission',\n", " 'nu-scatter matrix', 'scatter matrix', 'chi']" ] }, @@ -565,7 +565,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now that the `Library` has been setup, lets make sure it contains the types of cross sections which meet the needs of OpenMC's multi-group solver. Note that this step is done automatically when writing the Multi-Group Library file later in the process (as part of the `mgxs_lib.write_mg_library()`), but it is a good practice to also run this before spending all the time running OpenMC to generate the cross sections." + "Now we will set the scattering order that we wish to use. For this problem we will use P3 scattering." ] }, { @@ -574,6 +574,34 @@ "metadata": { "collapsed": false }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/nelsonag/git/openmc/openmc/mgxs/library.py:320: RuntimeWarning: The P0 correction will be ignored since the scattering order 0 is greater than zero\n", + " warnings.warn(msg, RuntimeWarning)\n" + ] + } + ], + "source": [ + "# Set the Legendre order to 3 for P3 scattering\n", + "mgxs_lib.legendre_order = 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that the `Library` has been setup, lets make sure it contains the types of cross sections which meet the needs of OpenMC's multi-group solver. Note that this step is done automatically when writing the Multi-Group Library file later in the process (as part of the `mgxs_lib.write_mg_library()`), but it is a good practice to also run this before spending all the time running OpenMC to generate the cross sections." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, "outputs": [], "source": [ "# Check the library - if no errors are raised, then the library is satisfactory.\n", @@ -589,9 +617,9 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -610,7 +638,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": { "collapsed": true }, @@ -630,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "metadata": { "collapsed": true }, @@ -658,7 +686,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "metadata": { "collapsed": true }, @@ -670,7 +698,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -695,8 +723,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 4bec584ddb7d07be7d92ad9d037e8363b2f25614\n", - " Date/Time: 2016-05-15 14:22:34\n", + " Git SHA1: 058ba68895a2f880402fda3d58cfb14b162931d9\n", + " Date/Time: 2016-05-17 05:32:34\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -783,20 +811,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4620E+00 seconds\n", - " Reading cross sections = 1.1520E+00 seconds\n", - " Total time in simulation = 2.1015E+01 seconds\n", - " Time in transport only = 2.0844E+01 seconds\n", - " Time in inactive batches = 2.2260E+00 seconds\n", - " Time in active batches = 1.8789E+01 seconds\n", - " Time synchronizing fission bank = 9.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for initialization = 1.4400E+00 seconds\n", + " Reading cross sections = 1.1340E+00 seconds\n", + " Total time in simulation = 1.8207E+01 seconds\n", + " Time in transport only = 1.8125E+01 seconds\n", + " Time in inactive batches = 2.1170E+00 seconds\n", + " Time in active batches = 1.6090E+01 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.2491E+01 seconds\n", - " Calculation Rate (inactive) = 22461.8 neutrons/second\n", - " Calculation Rate (active) = 10644.5 neutrons/second\n", + " Total time elapsed = 1.9657E+01 seconds\n", + " Calculation Rate (inactive) = 23618.3 neutrons/second\n", + " Calculation Rate (active) = 12430.1 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -814,7 +842,7 @@ "0" ] }, - "execution_count": 26, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -833,7 +861,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -858,7 +886,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -877,7 +905,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -896,7 +924,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -929,7 +957,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -969,7 +997,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -1019,7 +1047,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "metadata": { "collapsed": true }, @@ -1044,7 +1072,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "metadata": { "collapsed": false, "scrolled": true @@ -1070,8 +1098,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 4bec584ddb7d07be7d92ad9d037e8363b2f25614\n", - " Date/Time: 2016-05-15 14:22:57\n", + " Git SHA1: 058ba68895a2f880402fda3d58cfb14b162931d9\n", + " Date/Time: 2016-05-17 05:32:54\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1096,56 +1124,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.02073 \n", - " 2/1 1.04004 \n", - " 3/1 1.02324 \n", - " 4/1 1.01690 \n", - " 5/1 1.03702 \n", - " 6/1 1.01796 \n", - " 7/1 1.01779 \n", - " 8/1 1.02764 \n", - " 9/1 1.03324 \n", - " 10/1 1.01465 \n", - " 11/1 1.02268 \n", - " 12/1 1.01598 1.01933 +/- 0.00335\n", - " 13/1 1.01993 1.01953 +/- 0.00194\n", - " 14/1 1.01779 1.01910 +/- 0.00144\n", - " 15/1 1.01014 1.01731 +/- 0.00211\n", - " 16/1 1.04059 1.02119 +/- 0.00425\n", - " 17/1 1.04877 1.02513 +/- 0.00533\n", - " 18/1 1.05504 1.02887 +/- 0.00594\n", - " 19/1 1.02601 1.02855 +/- 0.00525\n", - " 20/1 1.04347 1.03004 +/- 0.00493\n", - " 21/1 1.01703 1.02886 +/- 0.00461\n", - " 22/1 1.02628 1.02864 +/- 0.00421\n", - " 23/1 1.02598 1.02844 +/- 0.00388\n", - " 24/1 1.05341 1.03022 +/- 0.00401\n", - " 25/1 1.02201 1.02967 +/- 0.00377\n", - " 26/1 1.00758 1.02829 +/- 0.00379\n", - " 27/1 1.00720 1.02705 +/- 0.00377\n", - " 28/1 1.03098 1.02727 +/- 0.00356\n", - " 29/1 1.03022 1.02743 +/- 0.00337\n", - " 30/1 1.01694 1.02690 +/- 0.00324\n", - " 31/1 0.99064 1.02518 +/- 0.00353\n", - " 32/1 0.99495 1.02380 +/- 0.00364\n", - " 33/1 1.03220 1.02417 +/- 0.00350\n", - " 34/1 1.02399 1.02416 +/- 0.00335\n", - " 35/1 1.03048 1.02441 +/- 0.00322\n", - " 36/1 1.05360 1.02553 +/- 0.00329\n", - " 37/1 1.05030 1.02645 +/- 0.00330\n", - " 38/1 1.04167 1.02699 +/- 0.00322\n", - " 39/1 1.04406 1.02758 +/- 0.00317\n", - " 40/1 1.01169 1.02705 +/- 0.00310\n", - " 41/1 1.00191 1.02624 +/- 0.00311\n", - " 42/1 1.02729 1.02628 +/- 0.00301\n", - " 43/1 1.02263 1.02616 +/- 0.00292\n", - " 44/1 1.05344 1.02697 +/- 0.00295\n", - " 45/1 1.03607 1.02723 +/- 0.00287\n", - " 46/1 1.00357 1.02657 +/- 0.00287\n", - " 47/1 1.03353 1.02676 +/- 0.00279\n", - " 48/1 1.03817 1.02706 +/- 0.00274\n", - " 49/1 1.01454 1.02674 +/- 0.00269\n", - " 50/1 0.99860 1.02603 +/- 0.00271\n", + " 1/1 1.02235 \n", + " 2/1 1.01108 \n", + " 3/1 1.02801 \n", + " 4/1 1.01404 \n", + " 5/1 1.03423 \n", + " 6/1 1.03282 \n", + " 7/1 1.04060 \n", + " 8/1 1.01152 \n", + " 9/1 1.02063 \n", + " 10/1 1.02604 \n", + " 11/1 1.02137 \n", + " 12/1 1.01416 1.01776 +/- 0.00360\n", + " 13/1 1.00239 1.01264 +/- 0.00553\n", + " 14/1 1.04293 1.02021 +/- 0.00852\n", + " 15/1 1.02029 1.02023 +/- 0.00660\n", + " 16/1 1.01512 1.01938 +/- 0.00546\n", + " 17/1 1.02098 1.01960 +/- 0.00462\n", + " 18/1 1.05954 1.02460 +/- 0.00640\n", + " 19/1 1.02347 1.02447 +/- 0.00564\n", + " 20/1 1.03063 1.02509 +/- 0.00508\n", + " 21/1 1.04679 1.02706 +/- 0.00500\n", + " 22/1 1.01301 1.02589 +/- 0.00472\n", + " 23/1 1.00936 1.02462 +/- 0.00452\n", + " 24/1 1.01030 1.02360 +/- 0.00431\n", + " 25/1 1.03799 1.02456 +/- 0.00412\n", + " 26/1 1.00404 1.02327 +/- 0.00406\n", + " 27/1 1.02987 1.02366 +/- 0.00384\n", + " 28/1 1.00107 1.02241 +/- 0.00383\n", + " 29/1 1.01460 1.02200 +/- 0.00365\n", + " 30/1 1.01433 1.02161 +/- 0.00348\n", + " 31/1 1.01566 1.02133 +/- 0.00332\n", + " 32/1 1.03339 1.02188 +/- 0.00321\n", + " 33/1 1.03974 1.02265 +/- 0.00317\n", + " 34/1 1.03136 1.02302 +/- 0.00306\n", + " 35/1 1.05175 1.02417 +/- 0.00315\n", + " 36/1 1.05444 1.02533 +/- 0.00324\n", + " 37/1 1.02432 1.02529 +/- 0.00312\n", + " 38/1 1.01464 1.02491 +/- 0.00303\n", + " 39/1 1.01086 1.02443 +/- 0.00296\n", + " 40/1 1.02492 1.02444 +/- 0.00286\n", + " 41/1 1.02882 1.02459 +/- 0.00277\n", + " 42/1 1.00377 1.02394 +/- 0.00276\n", + " 43/1 0.97480 1.02245 +/- 0.00306\n", + " 44/1 1.03623 1.02285 +/- 0.00300\n", + " 45/1 1.02606 1.02294 +/- 0.00291\n", + " 46/1 1.01771 1.02280 +/- 0.00284\n", + " 47/1 1.05400 1.02364 +/- 0.00288\n", + " 48/1 1.01844 1.02350 +/- 0.00281\n", + " 49/1 1.00754 1.02309 +/- 0.00277\n", + " 50/1 1.02902 1.02324 +/- 0.00270\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -1155,27 +1183,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.5000E-02 seconds\n", - " Reading cross sections = 3.0000E-03 seconds\n", - " Total time in simulation = 1.2599E+01 seconds\n", - " Time in transport only = 1.2565E+01 seconds\n", - " Time in inactive batches = 1.1220E+00 seconds\n", - " Time in active batches = 1.1477E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", + " Total time for initialization = 4.7000E-02 seconds\n", + " Reading cross sections = 6.0000E-03 seconds\n", + " Total time in simulation = 1.4145E+01 seconds\n", + " Time in transport only = 1.4098E+01 seconds\n", + " Time in inactive batches = 1.2400E+00 seconds\n", + " Time in active batches = 1.2905E+01 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 1.2644E+01 seconds\n", - " Calculation Rate (inactive) = 44563.3 neutrons/second\n", - " Calculation Rate (active) = 17426.2 neutrons/second\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 1.4201E+01 seconds\n", + " Calculation Rate (inactive) = 40322.6 neutrons/second\n", + " Calculation Rate (active) = 15497.9 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02471 +/- 0.00243\n", - " k-effective (Track-length) = 1.02603 +/- 0.00271\n", - " k-effective (Absorption) = 1.02312 +/- 0.00182\n", - " Combined k-effective = 1.02387 +/- 0.00172\n", + " k-effective (Collision) = 1.02379 +/- 0.00230\n", + " k-effective (Track-length) = 1.02324 +/- 0.00270\n", + " k-effective (Absorption) = 1.02813 +/- 0.00172\n", + " Combined k-effective = 1.02680 +/- 0.00165\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -1186,7 +1214,7 @@ "0" ] }, - "execution_count": 34, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -1209,7 +1237,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "metadata": { "collapsed": false }, @@ -1229,7 +1257,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "metadata": { "collapsed": true }, @@ -1247,7 +1275,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -1257,8 +1285,8 @@ "output_type": "stream", "text": [ "Continuous-Energy keff = 1.024295\n", - "Multi-Group keff = 1.023875\n", - "bias [pcm]: 42.0\n" + "Multi-Group keff = 1.026805\n", + "bias [pcm]: -251.0\n" ] } ], @@ -1274,7 +1302,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We see quite good agreement with only a 42 pcm difference between the two methods. Due to the high degree of approximations inherent in practical application of multi-group theory, one should not expect results of such high fidelity always for multi-group Monte Carlo calculations." + "This shows a 251 pcm bias between the two methods. Some degree of mismatch is expected simply to the very few histories being used in these example problems. An additional mismatch is always inherent in the practical application of multi-group theory due to the high degree of approximations inherent in that method." ] }, { @@ -1295,7 +1323,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "metadata": { "collapsed": false }, @@ -1321,7 +1349,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "metadata": { "collapsed": false }, @@ -1347,7 +1375,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "metadata": { "collapsed": false }, @@ -1355,18 +1383,18 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 40, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index bc643ed3e..e5728a812 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -460,7 +460,7 @@ class Library(object): ---------- domain : Material or Cell or Universe or Integral The material, cell, or universe object of interest (or its ID) - mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} The type of multi-group cross section object to return Returns @@ -773,9 +773,9 @@ class Library(object): nuclide this will be set to 'macro' regardless. xs_ids : str Cross section set identifier. Defaults to '1m'. - order : Scattering order for this dataset entry. Default is None, - which will force the XSdata object to use whatever the maximum - order available. + order : Scattering order for this data entry. Default is None, + which will force the XSdata object to use whatever the order of the + Library object is. Returns ------- @@ -801,7 +801,8 @@ class Library(object): cv.check_value('xs_type', xs_type, ['macro', 'micro']) cv.check_type('xs_id', xs_id, basestring) cv.check_type('order', order, (type(None), Integral)) - cv.check_greater_than('order', order, -1, equality=True) + if order is not None: + cv.check_greater_than('order', order, 0, equality=True) # Make sure statepoint has been loaded if self._sp_filename is None: @@ -819,20 +820,22 @@ class Library(object): name += '_' + nuclide name += '.' + xs_id xsdata = openmc.XSdata(name, self.energy_groups) - if order is 0: - xsdata.order = order + + if order is None: + # Set the order to the Library's order (the defualt behavior) + xsdata.order = self.legendre_order else: - msg = 'Generating anisotropic scattering from openmc.Library' \ - 'objects has not yet been implemented.' - raise NotImplementedError(msg) + # Set the order of the xsdata object to the minimum of + # the provided order or the Library's order. + xsdata.order = min(order, self.legendre_order) if nuclide is not 'total': xsdata.zaid = self._nuclides[nuclide][0] xsdata.awr = self._nuclides[nuclide][1] # Now get xs data itself - if 'transport' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'transport') + if ('nu-transport' in self.mgxs_types) and (self.correction == 'P0'): + mymgxs = self.get_mgxs(domain, 'nu-transport') xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) elif 'total' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'total') @@ -949,10 +952,6 @@ class Library(object): # Initialize file mgxs_file = openmc.MGXSLibrary(self.energy_groups) - # Set the scattering order as isotropic until - # support for higher orders are included in openmc.mgxs - order = 0 - # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): if self.by_nuclide: @@ -969,8 +968,7 @@ class Library(object): xsdata_name += '_' + nuclide xsdata = self.get_xsdata(domain, xsdata_name, nuclide=nuclide, - xs_type=xs_type, xs_id=xs_ids[i], - order=order) + xs_type=xs_type, xs_id=xs_ids[i]) mgxs_file.add_xsdata(xsdata) @@ -1031,10 +1029,10 @@ class Library(object): # Total or transport can be present, but if using # self.correction=="P0", then we should use transport. if (((self.correction is "P0") and - ('transport' not in self.mgxs_types))): + ('nu-transport' not in self.mgxs_types))): error_flag = True - msg = 'Transport MGXS type is required since a "P0" correction ' \ - 'is applied, but a Transport MGXS is not provided.' + msg = 'NuTransport MGXS type is required since a "P0" correction' \ + ' is applied, but a Transport MGXS is not provided.' warn(msg) elif (((self.correction is None) and ('total' not in self.mgxs_types))): diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 408175f43..99942361b 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -829,7 +829,8 @@ class XSdata(object): def set_scatter_mgxs(self, scatter, nuclide='total', xs_type='macro'): """This method allows for an openmc.mgxs.ScatterMatrixXS to be used to set the scatter matrix cross section for this XSdata - object. + object. If the XsData.order attribute has not yet been set, then + it will be set based on the properties of scatter. Parameters ---------- @@ -856,9 +857,35 @@ class XSdata(object): check_value('domain_type', scatter.domain_type, ['universe', 'cell', 'material']) + # Methods of representing anisotropic scattering besides + # Legendre expansions have not been implemented yet in openmc.mgxs. + # Therefore check to make sure the XsData has been set to + # legendre scattering. + if (self.scatt_type != 'legendre'): + msg = 'Anisotrpic scattering representations other than ' \ + 'Legendre expansions have not yet been implemented in ' \ + 'openmc.mgxs.' + raise ValueError(msg) + + # If the user has not defined XsData.order, then we will set + # the order based on the data within scatter. + # Otherwise, we will check to see that XsData.order to match + # the order of scatter + if self.order is None: + self.order = scatter.legendre_order + else: + check_value('legendre_order', scatter.legendre_order, + [self.order]) + if self._representation is 'isotropic': - self._scatter = np.array([scatter.get_xs(nuclides=nuclide, - xs_type=xs_type)]) + # Get the scattering orders in the outermost dimension + self._scatter = np.zeros((self.num_orders, + self.energy_groups.num_groups, + self.energy_groups.num_groups)) + for moment in range(self.num_orders): + self._scatter[moment, :, :] = scatter.get_xs(nuclides=nuclide, + xs_type=xs_type, + moment=moment) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' @@ -908,10 +935,12 @@ class XSdata(object): ['universe', 'cell', 'material']) if self._representation is 'isotropic': + # import pdb; pdb.set_trace() + nuscatt = nuscatter.get_xs(nuclides=nuclide, - xs_type=xs_type) + xs_type=xs_type, moment=0) scatt = scatter.get_xs(nuclides=nuclide, - xs_type=xs_type) + xs_type=xs_type, moment=0) self._multiplicity = np.divide(nuscatt, scatt) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' @@ -969,7 +998,8 @@ class XSdata(object): if self._tabular_legendre is not None: subelement = ET.SubElement(element, 'tabular_legendre') subelement.set('enable', str(self._tabular_legendre['enable'])) - subelement.set('num_points', str(self._tabular_legendre['num_points'])) + subelement.set('num_points', + str(self._tabular_legendre['num_points'])) if self._total is not None: subelement = ET.SubElement(element, 'total')