Page 1 of 1

Iteration mode

Posted: Thu Aug 19, 2010 5:56 pm
by emilf
Jaakko,

I tried to run a PWR assembly model in the B1 iteration mode. I got the following:

====================================================================
Starting the transport calculation cycle...

Sampling initial source...
OK.

Inactive cycle 1 / 25: k-eff = 1.11376 (DT thresh = 0.9000)
Inactive cycle 2 / 25: k-eff = 1.11677 (DT thresh = 0.9000)
Inactive cycle 3 / 25: k-eff = 1.11915 (DT thresh = 0.9000)
Inactive cycle 4 / 25: k-eff = 1.12349 (DT thresh = 0.9000)
Inactive cycle 5 / 25: k-eff = 1.12085 (DT thresh = 0.9000)
Inactive cycle 6 / 25: k-eff = 1.12095 (DT thresh = 0.9000)

***** Wed Aug 18 13:50:09 2010 (seed = 1282132193)

Fatal error in function NextCollision:

Total xs exceeds majorant (E = 1.225141E+00, f = 7.934123E-04)

Simulation aborted.
====================================================================

I was wondering if you have any explanations for such a behavior? Note that without iterations everything runs smoothly.

Re: Iteration mode

Posted: Thu Aug 19, 2010 9:36 pm
by Jaakko Leppänen
The coding is probably fu***d up. I noticed the same problem while running some tests for the next update. I'll see if I can find the problem.

Have you tried running the calculation with an earlier version? Are you using probability table treatment for unresolved resonances? That may not work with the iteration modes.

Re: Iteration mode

Posted: Thu Aug 19, 2010 10:02 pm
by Jaakko Leppänen
I tried running my test case with different versions. Version 1.1.8 works, 1.1.9 doesn't.

Re: Iteration mode

Posted: Thu Aug 19, 2010 11:04 pm
by Jaakko Leppänen
The problem is in subroutine nextcollision.c, and it can be fixed by adding:

majorant = majorant + xs0;

after line 104 (where xs0 is added to totxs).

It's a stupid bug. I added a value check:

if (totxs > majorant)
{
if (totxs/majorant - 1.0 > 1E-6)
Die(FUNCTION_NAME, "Total xs exceeds majorant (E = %E, f = %E)", nn->E,
totxs/majorant - 1.0);
else
majorant = totxs;
}

in version 1.1.9 without realizing that in previous version:

if (totxs > majorant)
majorant = totxs;

actually adjusts the majorant, doing the same thing as the bug fix.

Re: Iteration mode

Posted: Thu Sep 09, 2010 10:03 pm
by Jaakko Leppänen
This problem was fixed in update 1.1.13.