diff --git a/docs/source/methods/photon_physics.rst b/docs/source/methods/photon_physics.rst index bde6d2a994..23809f6745 100644 --- a/docs/source/methods/photon_physics.rst +++ b/docs/source/methods/photon_physics.rst @@ -775,7 +775,7 @@ formula can be used to find the collision stopping power of the material: :label: material-collision-stopping-power S_{\text{col}}(T) = \frac{2 \pi r_e^2 m_e c^2}{\beta^2} N_A \frac{Z}{A_M} - [\ln(T^2/I^2) + ln(1 + \tau/2) + F(\tau) - \delta_F(T)], + [\ln(T^2/I^2) + \ln(1 + \tau/2) + F(\tau) - \delta_F(T)], where :math:`N_A` is Avogadro's number, :math:`A_M` is the molar mass, :math:`\tau = T/m_e`, and :math:`F(\tau)` depends on the particle type. For @@ -797,7 +797,7 @@ while for positrons The density effect correction :math:`\delta_F` takes into account the reduction of the collision stopping power due to the polarization of the material the charged particle is passing through by the electric field of the particle. -It can be evaluated using the method described by [Sternheimer]_, where the +It can be evaluated using the method described by Sternheimer_, where the equation for :math:`\delta_F` is .. math:: @@ -821,14 +821,14 @@ where :math:`\bar{v}_i` is defined as .. math:: :label: density-effect-nubar - \bar{\nu}_i = \nu_i \rho / \nu_p. + \bar{\nu}_i = h\nu_i \rho / h\nu_p. The plasma energy :math:`h\nu_p` of the medium is given by .. math:: :label: plasma-frequency - h\nu_p = \sqrt{(hc)^2/\pi r_e \rho_m N_A Z / A}, + h\nu_p = \sqrt{\frac{(hc)^2 r_e \rho_m N_A Z}{\pi A}}, where :math:`A` is the atomic weight and :math:`\rho_m` is the density of the material. In :eq:`density-effect-nubar`, :math:`h\nu_i` is the oscillator @@ -840,8 +840,8 @@ defined as .. math:: :label: density-effect-li - l_i &= (\bar{v}_i^2 + 2/3f_i)^{1/2} ~~~~&\text{for}~~ \bar{v}_i > 0 \\ - l_n &= f_n^{1/2} ~~~~&\text{for}~~ \bar{v}_n = 0, + l_i &= (\bar{\nu}_i^2 + 2/3f_i)^{1/2} ~~~~&\text{for}~~ \bar{\nu}_i > 0 \\ + l_n &= f_n^{1/2} ~~~~&\text{for}~~ \bar{\nu}_n = 0, where the second case applies to conduction electrons. For a conductor, :math:`f_n` is given by :math:`n_c/Z`, where :math:`n_c` is the effective @@ -1047,8 +1047,4 @@ emitted photon. .. _Salvat: http://www.oecd-nea.org/globalsearch/download.php?doc=77434 -.. _Sternheimer: https://journals.aps.org/prb/pdf/10.1103/PhysRevB.26.6067 - -.. [Sternheimer] R. M. Sternheimer, S.M.Seltzer, and M.J.Berger, *Density - effect for the ionization loss of charged particles in various substances*, - Phys. Rev. B, 26, 6067–6076 (1982). +.. _Sternheimer: https://doi.org/10.1103/PhysRevB.26.6067 diff --git a/src/material.cpp b/src/material.cpp index 9ad0b8f0aa..da68a536dd 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -505,11 +505,15 @@ void Material::collision_stopping_power(double* s_col, bool positron) double rho = sternheimer_adjustment(f, e_b_sq, e_p_sq, n_conduction, log_I, 1.0e-6, 100); - // Classical elctron radius in cm - double r_e = PLANCK_C / (2.0e8 * PI * FINE_STRUCTURE * MASS_ELECTRON_EV); + // Classical electron radius in cm + constexpr double CM_PER_ANGSTROM {1.0e-8}; + constexpr double r_e = CM_PER_ANGSTROM * PLANCK_C / (2.0 * PI * + FINE_STRUCTURE * MASS_ELECTRON_EV); // Constant in expression for collision stopping power - double c = 2.0e24 * PI * r_e * r_e * MASS_ELECTRON_EV * electron_density; + constexpr double BARN_PER_CM_SQ {1.0e24}; + double c = BARN_PER_CM_SQ * 2.0 * PI * r_e * r_e * MASS_ELECTRON_EV * + electron_density; // Loop over incident charged particle energies for (int i = 0; i < data::ttb_e_grid.size(); ++i) { diff --git a/tests/regression_tests/photon_production/inputs_true.dat b/tests/regression_tests/photon_production/inputs_true.dat index 32e3bdcf38..427078c889 100644 --- a/tests/regression_tests/photon_production/inputs_true.dat +++ b/tests/regression_tests/photon_production/inputs_true.dat @@ -26,7 +26,7 @@ - 14.0 1.0 + 14000000.0 1.0 ttb diff --git a/tests/regression_tests/photon_production/results_true.dat b/tests/regression_tests/photon_production/results_true.dat index 6f53e2d334..3d9cf68ede 100644 --- a/tests/regression_tests/photon_production/results_true.dat +++ b/tests/regression_tests/photon_production/results_true.dat @@ -1,3 +1,3 @@ tally 1: -sum = 1.550000E-02 -sum_sq = 2.402500E-04 +sum = 7.938000E-01 +sum_sq = 6.301184E-01 diff --git a/tests/regression_tests/photon_production/test.py b/tests/regression_tests/photon_production/test.py index 68992c867b..1abc184a2c 100644 --- a/tests/regression_tests/photon_production/test.py +++ b/tests/regression_tests/photon_production/test.py @@ -33,7 +33,7 @@ class SourceTestHarness(PyAPITestHarness): source = openmc.Source() source.space = openmc.stats.Point((0,0,0)) source.angle = openmc.stats.Monodirectional() - source.energy = openmc.stats.Discrete([14.0], [1.0]) + source.energy = openmc.stats.Discrete([14.0e6], [1.0]) source.particle = 'neutron' settings = openmc.Settings()