From 3a164479d310db35f6bf30a29e5b74b4c4ccdb27 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 23 Jul 2012 13:34:23 -0400 Subject: [PATCH] Expanded description of free gas thermal scattering in documentation. --- docs/source/methods/physics.rst | 86 ++++++++++++++++++++---- docs/source/publications.rst | 5 +- docs/source/releasenotes/index.rst | 1 + docs/source/releasenotes/notes_0.4.3.rst | 37 ++++++++++ 4 files changed, 114 insertions(+), 15 deletions(-) create mode 100644 docs/source/releasenotes/notes_0.4.3.rst diff --git a/docs/source/methods/physics.rst b/docs/source/methods/physics.rst index b0d3b34daa..dc40924ec5 100644 --- a/docs/source/methods/physics.rst +++ b/docs/source/methods/physics.rst @@ -4,14 +4,14 @@ Physics ======= ------------------------------- -Free Gas Scattering Kinematics ------------------------------- +------------------------------------------ +Effect of Thermal Motion on Cross-Sections +------------------------------------------ When a neutron scatters off of a nucleus, many times it is assumed that the target nucleus is at rest. However, if the material is at a temperature greater than 0 K, it will have motion associated with the thermal vibration. Thus, the -velocity of the neutrno relative to the target nucleus is in general not the +velocity of the neutron relative to the target nucleus is in general not the same as the velocity of the neutron entering the collision. The affect of the thermal motion on the interaction probability can be written @@ -23,8 +23,49 @@ as v_n \sigma (v_n, T) = \int_0^\infty d\mathbf{v}_T \sigma(v_r, 0) \mathbf{v}_r p(\mathbf{v}_T) -One assumption we can make here is that the velocity distribution for the -thermal motion is isotropic, i.e. +where :math:`v_n` is the magnitude of the velocity of the neutron, +:math:`\mathbf{v}_T` is the velocity of the target nucleus, :math:`\mathbf{v}_r` +is the relative velocity, and :math:`T` is the temperature of the target +material. In a Monte Carlo code, one must account for the effect of the thermal +motion on both the integrated cross-section as well as secondary angle and +energy distributions. For integrated cross-sections, it is possible to calculate +thermally-averaged cross-sections by applying a kernel Doppler broadening +algorithm to data at 0 K (or some temperature lower than the desired +temperature). The most ubiquitous algorithm for this purpose is the [SIGMA1]_ +method developed by Red Cullen and subsequently refined by others. This method +is used in the NJOY_ and PREPRO_ data processing codes. + +The effect of thermal motion on secondary angle and energy distributions can be +accounted for on-the-fly in a Monte Carlo simulation. We must first qualify +where it is actually used however. All threshold reactions are treated as being +independent of temperature, and therefore they are not Doppler broadened in NJOY +and no special procedure is used to adjust the secondary angle and energy +distributions. The only non-threhold reactions with secondary neutrons are +elastic scattering and fission. For fission, it is assumed that neutrons are +emitted isotropically (this is not strictly true, but is nevertheless a good +approximation). This leaves only elastic scattering that needs a special thermal +treatment for secondary distributions. + +Fortunately, it is possible to directly sample the velocity of the target +nuclide and then use it directly in the kinematic calculations. However, this +calculation is a bit more nuanced than it might seem at first glance. One might +be tempted to simply sample a Maxwellian distribution for the velocity of the +target nuclide. Careful inspection of equation :eq:`freegas1` however tells us +that target velocities that produce relative velocities which correspond to high +cross sections will have a greater contribution to the effection reaction +rate. This is most important when the velocity of the incoming neutron is close +to a resonance. For example, if the neutron's velocity corresponds to a trough +in a resonance elastic scattering cross-section, a very small target velocity +can cause the relative velocity to correpond to the peak of the resonance, thus +making a disproportionate contribution to the reaction rate. The conclusion is +that if we are to sample a target velocity in the Monte Carlo code, it must be +done in such a way that preserves the thermally-averaged reaction rate as per +equation :eq:`freegas`. + +The method by which most Monte Carlo codes sample the target velocity for use in +elastic scattering kinematics is outlined in detail by [Gelbard]_. The +derivation here largely follows that of Gelbard. The first assumption we can +make is that the velocity distribution for the thermal motion is isotropic, i.e. .. math:: :label: freegas2 @@ -37,10 +78,11 @@ With this assumption, we can now rewrite equation :eq:`freegas1` as :label: freegas3 v_n \sigma (v_n, T) = \frac{1}{2} \int_{-1}^1 d\mu \int\limits_{v_r > 0} - v_r \sigma (v_r, 0) p(v_T) dv_T + dv_T v_r \sigma (v_r, 0) p(v_T) -To change the outer variable of integration from :math:`\mu` to :math:`v_r`, we -can establish a relation between these variables based on the law of cosines. +after integrating over :math:`d\phi`. To change the outer variable of +integration from :math:`\mu` to :math:`v_r`, we can establish a relation between +these variables based on the law of cosines. .. math:: :label: lawcosine @@ -78,12 +120,13 @@ We can divide this probability distribution into two parts as such: :label: freegas6 P(v_T, \mu) &= f_1(v_T, \mu) f_2(v_T) \\ - f_1(v_T, \mu) &= \frac{| v_n - v_T |}{\hat{f_1} (v_n + v_T)} \\ + f_1(v_T, \mu) &= \frac{| v_n - v_T |}{C (v_n + v_T)} \\ f_2(v_T) &= (v_n + v_T) P(v_T) -In general, any probability distribution function of the form :math:`p(x) = -f_1(x) f_2(x)` with :math:`f_1(x)` bounded can be sampled by sampling -:math:`x_s` from the distribution +where :math:`C = \int dv_T \sigma v_r P(v_T)`. In general, any probability +distribution function of the form :math:`p(x) = f_1(x) f_2(x)` with +:math:`f_1(x)` bounded can be sampled by sampling :math:`x_s` from the +distribution .. math:: \frac{f_2(x)}{\int f_2(x) dx} @@ -93,3 +136,20 @@ and accepting it with probability It is normally assumed that the velocity distribution of the target nucleus assumes a Maxwellian distribution in velocity. + +--------------------------------------- +S(:math:`\alpha`, :math:`\beta`) Tables +--------------------------------------- + +---------------------------------------------- +Unresolved Resonance Region Probability Tables +---------------------------------------------- + +.. _NJOY: http://t2.lanl.gov/codes.shtml +.. _PREPRO: http://www-nds.iaea.org/ndspub/endf/prepro/ + +.. [SIGMA1] Dermett E. Cullen and Charles R. Weisbin, "Exact Doppler Broadening + of Tabulated Cross Sections," *Nucl. Sci. Eng.*, **60**, pp. 199-229 (1976). + +.. [Gelbard] Ely M. Gelbard, "Epithermal Scattering in VIM," FRA-TM-123, Argonne + National Laboratory (1979). diff --git a/docs/source/publications.rst b/docs/source/publications.rst index a44bdc1d4d..571507ee70 100644 --- a/docs/source/publications.rst +++ b/docs/source/publications.rst @@ -9,11 +9,12 @@ Publications (2012). - Paul K. Romano and Benoit Forget, "The OpenMC Monte Carlo Particle Transport - Code," *Annals of Nuclear Energy*, Submitted (2012). + Code," *Annals of Nuclear Energy*, Accepted (2012). - Andrew R. Siegel, Kord Smith, Paul K. Romano, Benoit Forget, and Kyle Felker, "The effect of load imbalances on the performance of Monte Carlo codes in LWR - analysis", *Journal of Computational Physics*, Submitted (2012). + analysis", *Journal of Computational Physics*, + ``_ (2012). - Paul K. Romano and Benoit Forget, "Parallel Fission Bank Algorithms in Monte Carlo Criticality Calculations," *Nuclear Science and Engineering*, **170**, diff --git a/docs/source/releasenotes/index.rst b/docs/source/releasenotes/index.rst index 8f6c633421..41693f0df3 100644 --- a/docs/source/releasenotes/index.rst +++ b/docs/source/releasenotes/index.rst @@ -10,6 +10,7 @@ bugs fixed, and known issues for each successive release. .. toctree:: :maxdepth: 1 + notes_0.4.3 notes_0.4.2 notes_0.4.1 notes_0.4.0 diff --git a/docs/source/releasenotes/notes_0.4.3.rst b/docs/source/releasenotes/notes_0.4.3.rst new file mode 100644 index 0000000000..2391d44688 --- /dev/null +++ b/docs/source/releasenotes/notes_0.4.3.rst @@ -0,0 +1,37 @@ +.. _notes_0.4.3: + +============================== +Release Notes for OpenMC 0.4.3 +============================== + +.. note:: + These release notes are for an upcoming release of OpenMC and are still + subject to change. + +------------------- +System Requirements +------------------- + +There are no special requirements for running the OpenMC code. As of this +release, OpenMC has been tested on a variety of Linux distributions, Mac OS X, +and Microsoft Windows 7. Memory requirements will vary depending on the size of +the problem at hand (mostly on the number of nuclides in the problem). + +------------ +New Features +------------ + +- Ability to tally reaction rates for individual nuclides within a material. +- Reduced memory usage by removing redundant storage or some cross-sections. +- 3bd35b_: Log-log interpolation for URR probability tables. +- Support to specify labels on tallies (nelsonag_). + +--------- +Bug Fixes +--------- + +- 3212f5_: Fixed issue with blank line at beginning of XML files. + +.. _nelsonag: https://github.com/nelsonag +.. _3bd35b: https://github.com/mit-crpg/openmc/commit/3bd35b +.. _3212f5: https://github.com/mit-crpg/openmc/commit/3212f5