CMM Diffusion Coefficient is calculated with a -ve value

Report any suspected bugs and unexpected behavior here

CMM Diffusion Coefficient is calculated with a -ve value

Postby Ramzy1990 » Tue Oct 23, 2018 5:02 am

Good Day Everybody,

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


NegativeCMMCrossSections.JPG
Snap from the output file
NegativeCMMCrossSections.JPG (162.4 KiB) Viewed 68 times
Ramzy1990
 
Posts: 5
Joined: Mon Oct 22, 2018 5:59 pm

Re: CMM Diffusion Coefficient is calculated with a -ve value

Postby Jaakko Leppänen » Wed Oct 24, 2018 9:09 am

The CMM method works only for universes that cover the entire geometry. The method works by associating the migration area to the mean square distance between the point where the neutron is emitted and the point where it is absorbed or scattered out of the group. If the neutron tracks are extended in to parts of the geometry that are not part of the homogenized universe, the results will not be physically correct, even if the printed values seem reasonable.
- Jaakko
User avatar
Jaakko Leppänen
Site Admin
 
Posts: 1982
Joined: Thu Mar 18, 2010 10:43 pm
Location: Espoo, Finland

Re: CMM Diffusion Coefficient is calculated with a -ve value

Postby Ramzy1990 » Wed Oct 24, 2018 5:25 pm

So basically it would work for universe 1 or 0 in my input. Okay now I get it, Thank you very much Dr. Jaakko for the clarification (Y).
Ramzy1990
 
Posts: 5
Joined: Mon Oct 22, 2018 5:59 pm


Return to Bug reports

Who is online

Users browsing this forum: No registered users and 1 guest