I am not sure if this is a bug or not (Well, I get negative cross sections for the thermal group in the Cumulative Migration Method (CMM) ), but since this forum index is for "suspected" bug reports, then here it is.

For the following input, which is for a MSRE Unit Cell, I was generating the cross sections for different universes and I came across negative values for the macroscopic transient cross section (and hence the diffusion coefficient) in the CMM calculated approach. Also, the directional diffusion coefficients values are in -ve (I assume that what they are? the directional diffusion coefficient theory by Eric Dorval? please see attached snapshot)

I noticed for the fuel universe it is okay giving good results, but for the graphite universe it is not, giving me negative values for the thermal group (although the fast group is good I guess). I am not sure if it is because I am doing something wrong with the universes definitions. (But at least the code should give me a warning if the CMM cross sections are -ve?)

I have read that the cross sections generation for different universes is not fully tested yet in Serpent, but does not this bug means there is something wrong/missing in the CMM solver (like a warning)? Or that I have something wrong going on for my input? I am still learning Serpent and any help with my input, if it is wrong for its purpose (generating different sets of cross sections for different materials in my model), is very welcomed indeed.

Here is the input file that generated the bug and a snapshot from the output file. This input should take around 2 hours for a parallel 32 cores run (large neutrons histories just to get very good statistics).

Code: Select all

```
set title MSREUnitCell
% ----- Input File
%%%%%%%%%%%%%%%%%%%%%%%%%%
% --- Surfaces
%%%%%%%%%%%%%%%%%%%%%%%%%%
% ----- Two infinite cylinders along the z-axis, then join with an infinite rectangle along the z-axis of dimensions 0.4 inch and 0.8 inch.
% ----- Bound them all with a cube to be able to do repititive BCs, and omit the protions not needed in the z-axis.
% ----- According to Serpent manual, you have to have something like that (a shape and not individual planes) to apply repititive BCs.
surf sf inf % Needed for different universes filling according to what I understood from Serpent manual page 35
surf sm inf % Needed for different universes filling according to what I understood from Serpent manual page 35
cell cf 2 Fuel -sf % Needed for different universes filling according to what I understood from Serpent manual page 35
cell cm 3 Moderator -sm % Needed for different universes filling according to what I understood from Serpent manual page 35
surf s1 rect -1.016 1.016 -0.508 0.508 % Rectangle infinite in the z-axis (x0, x1, y0, y1)
surf s2 cyl 0.7184204834 0.7184204834 0.508 % Cylinder infinite in the z-axis (x, y, r)
surf s3 cyl -0.7184204834 -0.7184204834 0.508 % Cylinder infinite in the z-axis (x, y, r)
surf s4 cuboid -2.54 2.54 -2.54 2.54 -81.28 81.82 % Cube (-x, x, -y, y, -z, z)
% ----- We need to rotate the rectangle surface by 45 degrees (x0, y0, z0, thetaX, thetaY, thetaZ; translation = 1 , Rotation = 2).
% ----- Rotation on a surface is done for surface s1 above, no translation, and on the z-axis to get the result we need (not x or y axes).
trans S s1 0.0 0.0 0.0 0.0 0.0 -45.0 2
%%%%%%%%%%%%%%%%%%%%%%%%%%
% --- Cells
%%%%%%%%%%%%%%%%%%%%%%%%%%
% ----- Fuel is given inside the cube, and inside the cylinder and rectangular surfaces s1, s2, s3 above.
% ----- Moderator is still inside the cube s4 surface, but out of the fuel surfaces s1, s2, s3.
% ----- We need to use the filling method for defining different universes.
% ----- Outside is anything outside the cube surface s4.
cell c1 1 fill 2 (-s4 -s1):(-s4 -s2):(-s4 -s3)
cell c2 1 fill 3 -s4 s1 s2 s3
cell c3 1 outside s4
cell ccube 0 fill 1 -s4
cell c4 0 outside s4
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% --- material definitions
%%%%%%%%%%%%%%%%%%%%%%%%%%%
mat Fuel -2.286 tmp 922 rgb 45 47 50
3007.09c -10.90
3006.09c -0.0005
9019.09c -66.80
4009.09c -6.27
40000.09c -10.92
92235.09c -1.67
92238.09c -3.44
mat Moderator -1.86 rgb 185 183 127
5010.09c -1.6e-5
5011.09c -6.4e-5
23000.09c -0.0009
16000.09c -0.0005
6000.09c -99.99852
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% --- Energy Structure
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Energy
%ene 1 2 4000 1E-9 14.0
%Lethargy
ene 2 3 4000 1E-9 14.0
% ----- the following is from Serpent wiki, which give an example of a ready defined energy group structures of 2 groups.
set nfg default2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% --- Group constant generation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ----- Cross section data library file path (self explanatory) (Note that endf 6.8 is bad!):
set acelib "/cm/shared/apps/ncsu/SERPENT/xsdata/jeff311/sss_jeff311u.xsdata"
%set acelib "/cm/shared/apps/ncsu/SERPENT/xsdata/jeff31/sss_jeff31u.xsdata"
%set acelib "/cm/shared/apps/ncsu/SERPENT/xsdata/jef22/sss_jef22u.xsdata"
%set acelib "/cm/shared/apps/ncsu/SERPENT/xsdata/endfb7/sss_endfb7u.xsdata"
% ----- Generate Group Cross sections for universe number given by the user
set gcu 2 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% --- Detectors definitions
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ----- Per Lethargy, and hence dt value is -3, and we are using the energy grid defined as "ene 2" above for lethargy (de 2).
% ----- Material is Fuel (dm Fuel), Inside cell c1 above, and Universe 1.
% ----- Material is Moderator (dm Moderator), Inside cell c2 above, and Universe 1.
det FuelFluxPerLethargy dm Fuel de 2 dt -3 dc c1 du 1
det ModeratorFluxPerLethargy dm Moderator de 2 dt -3 dc c2 du 1
%%%%%%%%%%%%%%%%%%%%%%%%%%
% --- Run Parameters
%%%%%%%%%%%%%%%%%%%%%%%%%%
% ----- Neutron population: neutrons per cycle, active / inactive cycles
set pop 7777 10000 100 1.72200
% ----- Boundary condition (1 = black, 2 = reflective, 3 = periodic)
set bc 2
% ----- Set seed to make the results the same with the every run (for debugging purposes). Revise page 9 in the manual.
set seed 1539221145
%%%%%%%%%%%%%%%%%%%%%%%%%%
% --- Plot Parameters
%%%%%%%%%%%%%%%%%%%%%%%%%%
%The first value defines the plot plane (1 = yz, 2 = xz, 3 = xy).
%The second Value defines the plot boundaries (1 = cell boundaries, 2 = Material Boundaries, 3 = Both).
% --- Geometry and mesh plots:
plot 12 1000 1000
plot 22 1000 1000
plot 32 1000 1000
mesh 1 1000 1000
mesh 2 1000 1000
mesh 3 1000 1000
```