xGPT efunc file contents

Questions and discussion about applications, input, output and general user topics

xGPT efunc file contents

Postby keckler » Tue Oct 10, 2017 7:27 pm

Hello,

I am trying to use a custom perturbation with the new XGPT capabilities to generate the doppler coefficient for materials in my core. I seem to be having a hard time getting this to go, so I want to ask some questions to clarify a few points.

There is an example of using the XGPT capability here: http://serpent.vtt.fi/mediawiki/index.php/XGPT_example
I am trying to follow this example, but I find one aspect somewhat confusing. I would think that in the 'efunc' file that the user provides, the cross-section derivatives should be provided. For my case, I want the derivatives as a function of temperature. To do this, I am doppler broadening my cross sections from 600K to 605K. I would then think that I want to calculate (sigma(605) - sigma(600))/5 to approximate the derivative. In the example provided, it says to instead calculate (Sig_301 - Sig_300)/Sig_300. I suppose this is the derivative (since the temperature difference is simply 1) divided by the absolute temperature so that the resulting units are simply 1/K. Is this correct? I just would like clarification on this point.

Either way, when calculating these values, typically the values end up being quite small, on the order of 10^-4 or 10^-5. From what I understand, the typical values in these files should be on the order of 1, as that is what would be added or subtracted in the case that the 'efunc' file is not provided. This seems like a very large difference, so I want to get some validation that my thinking is correct.

Finally, I wanted to mention that I have a case running at the moment with the XGPT implemented, along with some other "standard" perturbations. Although the run is only ~25% complete at the moment, the results that have been printed so far indicate that I have done something wrong with the XGPT portion. I am receiving real values for all of the other perturbations, but all of the XGPT results so far are simply 0. This makes met think something is wrong, possibly because the values that I have in my 'efunc' file are so small.

Any help would be appreciated. Or point me to another example of how to use the XGPT. I can send my input via email if helpful, but it is too big to upload here. Thanks for your help!
keckler
 
Posts: 17
Joined: Fri Jun 30, 2017 11:48 pm
Location: Berkeley, CA

Re: xGPT efunc file contents

Postby Ville Valtavirta » Wed Oct 11, 2017 12:59 pm

Hi,

the "efunc" file should contain the relative perturbation applied to the cross section, so you'll want to divide the finite difference that you calculate with the base (unperturbed) cross section.

I think I can see from the wiki-description, why you got the impression that the values in the file should be around 1 or -1. Since the values in the file are relative perturbations to the cross section, I imagine that the typical values will be some small fractions of 1.0 (both positive and negative). However, around resonances you might get some larger than unity positive perturbations I guess.

You can probably calculate the relative perturbation to the cross section with (sigma(605) - sigma(600))/sigma(600) or even (sigma(650) - sigma(600))/sigma(600), then run the calculation using that data, read the sensitivity of the k-eff (I think you'll have to multiply the sensitivity that you get with your k-eff in order to get the perturbations effect on your k-eff since sensitivities are by definition relative quantities) and then divide by your temperature difference afterwards to get the unit of pcm/K.

As for getting zeros for the output, I think the XGPT results should only show in the energy integrated results, e.g. ADJ_PERT_KEFF_SENS_E_INT. Are you seeing zeros in those also?

Finally, I don't know how effective the XGPT is in actually reproducing Doppler coefficients since the implementation relies on first-order (e.g. linear) perturbation theory and the temperature effect on the cross section is probably quite non-linear.

-Ville
Ville Valtavirta
 
Posts: 119
Joined: Fri Sep 07, 2012 1:43 pm

Re: xGPT efunc file contents

Postby keckler » Wed Oct 11, 2017 6:56 pm

Thanks for the thorough reply!

From what you say, it seems like my 'efunc' file should be correct. However, I am still getting all zeros in my results of the custom perturbation, for both the energy integrated and the energy dependent values. Would you like me to send you my input?
keckler
 
Posts: 17
Joined: Fri Jun 30, 2017 11:48 pm
Location: Berkeley, CA

Re: xGPT efunc file contents

Postby Ville Valtavirta » Thu Oct 12, 2017 9:36 am

Yes,

you can post it here or send it to the serpent e-mail address found at top right of this page: http://montecarlo.vtt.fi/users.htm

-Ville
Ville Valtavirta
 
Posts: 119
Joined: Fri Sep 07, 2012 1:43 pm

Re: xGPT efunc file contents

Postby keckler » Thu Oct 12, 2017 7:56 pm

Hi Ville,

I have sent the input deck via email to the serpent email. Let me know if you find anything, and thanks for your help!

Chris
keckler
 
Posts: 17
Joined: Fri Jun 30, 2017 11:48 pm
Location: Berkeley, CA

Re: xGPT efunc file contents

Postby Ville Valtavirta » Fri Oct 13, 2017 2:21 pm

I do get some nonzero results for your input with Serpent 2.1.29:

Code: Select all
>> run input_sens
>> ADJ_PERT_KEFF_SENS_E_INT(iSENS_MAT_TOT, iSENS_ZAI_TOT, iSENS_PERT_nonvoidDoppler)
ans =    3.5149e-08


You should notice that the materials and ZAIs that the custom perturbations affect should be given in the definition of that perturbation and the results are written out using index iSENS_MAT_TOT for the material and iSENS_ZAI_TOT for the ZAI. That is to say that the custom perturbations only score the first material bin and the first ZAI bin.

Another thing that you should notice is that the custom perturbation are by default applied to all materials, all nuclides and all reaction modes and only the total effect over all different materials, nuclides and reaction modes can be calculated.

If you want to calculate the temperature effect separately for the different reaction modes (as you probably should) and for different materials, you'll need one custom perturbation for each (material, reaction mode) entry.

-Ville
Ville Valtavirta
 
Posts: 119
Joined: Fri Sep 07, 2012 1:43 pm

Re: xGPT efunc file contents

Postby keckler » Fri Oct 13, 2017 7:56 pm

Alright, so now I also see that there is a value printed for the index iSENS_MAT_TOT. So thank you for pointing that out. I was expecting there to be values for all of my materials.

My understanding was that the custom perturbation would be applied to all of the materials and ZAIs that are specified for the general perturbations, unless only a subset of those materials and ZAIs were specified in the custom perturbation. For example, for the following input, I would have expected all materials and the total ZAI to have been calculated for the custom perturbation as well as for the standard perturbation.

Code: Select all
% --- perturbation settings
sens resp keff 1
sens pert matlist all
sens pert zailist total
sens pert xs all
sens opt egrid pertgrid
sens pert custom nonvoidDoppler efunc efunc.txt

ene pertgrid 1 1E-10 1E3


But from what you are saying, if I want to get the custom perturbation applied to all of my materials, I should use something along the following lines:

Code: Select all
% --- perturbation settings
sens resp keff 1
sens pert custom nonvoidDopplerMat1 efunc efunc1.txt matlist Batch1 zailist 92235 realist fiss
sens pert custom nonvoidDopplerMat1 efunc efunc2.txt matlist Batch2 zailist 92235 realist fiss
sens pert custom nonvoidDopplerMat1 efunc efunc3.txt matlist Batch3 zailist 92235 realist fiss
...


And then the result for each custom perturbation will then be indexed under iSENS_MAT_TOT and iSENS_ZAI_TOT.

Looking at the example provided on the wiki, it is clear now that you've clarified a few points here, but thanks for helping guiding me through that.
keckler
 
Posts: 17
Joined: Fri Jun 30, 2017 11:48 pm
Location: Berkeley, CA

Re: xGPT efunc file contents

Postby Ville Valtavirta » Mon Oct 16, 2017 1:02 pm

I understand how it would be logical to assume that the custom perturbations are applied to all of the ZAIs and materials defined for the other perturbations too.

However, for most of the applications of the energy dependent custom perturbations I would imagine that it does not make much sense to apply the same perturbation to different materials or ZAIs: For example, when estimating the temperature effects (Doppler), the relative difference in the cross sections due to elevated temperature is completely different for U238 than for U235 so it does not make much sense to use the same energy dependent function to perturb both of them.

Likewise, the temperature effect on the total capture cross section of one fuel material may be quite different to the temperature effect on another fuel material if the compositions are different.

I would imagine that you'll want to generate separate energy dependent perturbations for each different material and also for their different reaction modes.

Your example should produce the sensitivity of k-eff to the perturbation of the fission cross section of U-235 separately in each of the three materials according to the energy dependent functions.

-Ville
Ville Valtavirta
 
Posts: 119
Joined: Fri Sep 07, 2012 1:43 pm


Return to Users

Who is online

Users browsing this forum: No registered users and 1 guest