diff --git a/docs/source/methods/criticality.rst b/docs/source/methods/criticality.rst index 4604cec78..b9cd472b7 100644 --- a/docs/source/methods/criticality.rst +++ b/docs/source/methods/criticality.rst @@ -9,8 +9,8 @@ neutrons includes a fissionable material. Some common criticality calculations include the simulation of nuclear reactors, spent fuel pools, nuclear weapons, and other fissile systems. The term criticality calculation is also synonymous with the term eigenvalue calculation. The reason for this is that the transport -equation becomes an eigenvalue value equation if a fissionable source is present -since then the source of neutrons will depend on the flux of neutrons +equation becomes an eigenvalue equation if a fissionable source is present since +then the source of neutrons will depend on the flux of neutrons itself. Criticality simulations using Monte Carlo methods are becoming increasingly common with the advent of high-performance computing. diff --git a/docs/source/methods/geometry.rst b/docs/source/methods/geometry.rst index 8ddc33e6b..6f4755ce7 100644 --- a/docs/source/methods/geometry.rst +++ b/docs/source/methods/geometry.rst @@ -22,13 +22,15 @@ Let us take the example of a sphere centered at the point :math:`(x_0,y_0,z_0)` with radius :math:`R`. One would normally write the equation of the sphere as .. math:: + :label: sphere-equation (x - x_0)^2 + (y - y_0)^2 + (z - z_0)^2 = R^2 -By subtracting the right-hand term from both sides of the equation, we can then -write the surface equation: +By subtracting the right-hand term from both sides of equation +:eq:`sphere-equation`, we can then write the surface equation for the sphere: .. math:: + :label: surface-equation-sphere f(x,y,z) = (x - x_0)^2 + (y - y_0)^2 + (z - z_0)^2 - R^2 = 0 @@ -97,20 +99,21 @@ direction :math:`u,v,w`. To find the distance :math:`d` to a surface f(x + du, y + dv, z + dw) = 0 -If no solutions to equation :eq:`dist-to-boundary-1` exists or the only -solutions are complex, then the particle's direction of travel will not -intersect the surface. If the solution to equation :eq:`dist-to-boundary-1` is -negative, this means that the surface is "behind" the particle, i.e. if the -particle continues traveling in its current direction, it will not hit the -surface. The complete derivation for different types of surfaces used in OpenMC -will be presented in the following sections. +If no solutions to equation :eq:`dist-to-boundary-1` exist or the only solutions +are complex, then the particle's direction of travel will not intersect the +surface. If the solution to equation :eq:`dist-to-boundary-1` is negative, this +means that the surface is "behind" the particle, i.e. if the particle continues +traveling in its current direction, it will not hit the surface. The complete +derivation for different types of surfaces used in OpenMC will be presented in +the following sections. -Once a distance has been computed to a boundary, we need to check if it is -closer than previously-computed distances to surfaces. Unfortunately, we cannot -just use the minimum function because some distances may be almost identical but -still different due to the use of floating-point arithmetic. Consequently, we -should first check for floating-point equality of the current distance -calculated and the minimum found thus far. This is done by checking if +Once a distance has been computed to a surface, we need to check if it is closer +than previously-computed distances to surfaces. Unfortunately, we cannot just +use the minimum function because some of the calculated distances, which should +be the same in theory (e.g. coincident surfaces), may be slightly different due +to the use of floating-point arithmetic. Consequently, we should first check for +floating-point equality of the current distance calculated and the minimum found +thus far. This is done by checking if .. math:: :label: fp-distance diff --git a/docs/source/methods/introduction.rst b/docs/source/methods/introduction.rst index 8f623f7e7..806ed9b37 100644 --- a/docs/source/methods/introduction.rst +++ b/docs/source/methods/introduction.rst @@ -78,24 +78,24 @@ proceed. The life of a single particle will proceed as follows: d = -\frac{\ln \xi}{\Sigma_t} - where :math:`\sigma` is a `pseudorandom number`_ sampled from a uniform - distribution on [0,1). + where :math:`\xi` is a `pseudorandom number`_ sampled from a uniform + distribution on :math:`[0,1)`. - 5. If the distance to the nearest boundary is less than the distance to the next + 6. If the distance to the nearest boundary is less than the distance to the next collision, the particle is moved forward to this boundary. Then, the process is repeated from step 2. If the distance to collision is closer than the distance to the nearest boundary, then the particle will undergo a collision. - 6. The material at the collision site may consist of multiple nuclides. First, + 7. The material at the collision site may consist of multiple nuclides. First, the nuclide with which the collision will happen is sampled based on the total cross-sections. If the total cross section of material :math:`i` is :math:`\Sigma_{t,i}`, then the probability that any nuclide is sampled is .. math:: - P(i) = \frac{\Sigma_{t,i}}{\Sigma_t} + P(i) = \frac{\Sigma_{t,i}}{\Sigma_t}. - 7. Once the specific nuclide is sampled, the random samples a reaction for + 8. Once the specific nuclide is sampled, the random samples a reaction for that nuclide based on the microscopic cross sections. If the microscopic cross-section for some reaction :math:`x` is :math:`\sigma_x` and the total microscopic cross section for the nuclide is :math:`\sigma_t`, then the @@ -103,9 +103,9 @@ proceed. The life of a single particle will proceed as follows: .. math:: - P(x) = \frac{\sigma_x}{\sigma_t} + P(x) = \frac{\sigma_x}{\sigma_t}. - 8. If the sampled reaction is elastic or inelastic scattering, the outgoing + 9. If the sampled reaction is elastic or inelastic scattering, the outgoing energy and angle is sampled from the appropriate distribution. If the reaction is (n,xn), it's also treated as scattering and the weight of the particle is increased by the multiplicity of the reaction. The particle diff --git a/docs/source/methods/statistics.rst b/docs/source/methods/statistics.rst index 7563006f0..b4e6fa229 100644 --- a/docs/source/methods/statistics.rst +++ b/docs/source/methods/statistics.rst @@ -57,7 +57,7 @@ where :math:`g`, :math:`c`, and :math:`M` are constants. The choice of these constants will have a profound effect on the quality and performance of the generator, so they should not be chosen arbitrarily. As Donald Knuth said in his seminal work *The Art of Computer Programming*, "random numbers should not be -generated with a method chosen at random". Some theory should be used." +generated with a method chosen at random. Some theory should be used." Typically, :math:`M` is chosen to be a power of two as this enables :math:`x \mod M` to be performed using the binary AND operator with a bit mask. The constants for the linear congruential generator used by default in OpenMC are