Bulk physics¶
Volumetric optical photon processes are commonly known as “bulk” physics as they happen in the bulk of the material. These processes are stochastic and based on the user-provided, wavelength-dependent mean free paths in the optical materials.
-
class PhysicsParams : public celeritas::ParamsDataInterface<PhysicsParamsData>¶
Bulk physics interaction models for optical photons.
- Todo:
Rename BulkPhysicsParams
Built-in processes¶
The Interactor classes encapsulate the physics models for each physical
process.
-
class AbsorptionInteractor¶
Sample optical absorption interaction.
Absorption rate is governed by sampling its mean free path in the action loop. The interactor simply returns an interaction saying the optical photon has been absorbed.
-
class RayleighInteractor¶
Sample optical Rayleigh scattering.
Optical Rayleigh scattering is the elastic scattering of optical photons in a material. The scattered polarization is guaranteed to be in the same plane as the original polarization and new direction.
-
class MieInteractor¶
Sample optical Mie scattering using the Henyey–Greenstein distribution.
. Parameters:\[ P(\cos\theta) \propto \frac{1 - g^2}{(1 + g^2 - 2g\cos\theta)^{3/2}} \]forward_ratio: probability of using forward vs backward lobe
forward_g, backward_g: HG asymmetry parameters for each lobe
-
class WavelengthShiftInteractor¶
Sample state change and number of secondaries from a WLS interaction.
The number of photons is sampled from a Poisson distribution. The secondary photons are sampled later by the
WavelengthShiftGenerator.- Todo:
Initialize the first secondary directly in the parent’s track slot.
Mean free paths¶
-
class RayleighMfpCalculator¶
Calculate the Rayleigh MFP for a given set of material properties.
Uses the Einstein-Smoluchowski formula to calculate the mean free path at a given energy. In [Landau and Lífshíts, 1884] , the mean free path is given by equation (120.2):
where we only consider density fluctations at constant temperature. The first partial derivative may be rewritten in terms of the isothermal compressibility \( \beta_T \):\[ l^{-1} = \frac{1}{6\pi} k^4 \rho k_B T \left(\frac{\partial \rho}{\partial P}\right)_T \left(\frac{\partial \varepsilon}{\partial \rho}\right)_T^2 \]The latter partial derivative may be calculated via the Clausius-Mossetti equation\[ \left(\frac{\partial \rho}{\partial P}\right)_T = \rho \beta_T. \]for constant \( A \), giving\[ \frac{\varepsilon - 1}{\varepsilon + 2} = A \rho \]The final equation for the MFP in terms of energy:\[ \left(\frac{\partial \varepsilon}{\partial \rho}\right)_T = \frac{(\varepsilon - 1)(\varepsilon + 2)}{3\rho}. \]\[ l^{-1} = \frac{k_B T \beta_T}{6\pi} \left(\frac{E}{\hbar c}\right)^4 \left[ \frac{(\varepsilon - 1)(\varepsilon + 2)}{3} \right]^2. \]The scale factor is a unitless user customizable factor that is multiplied to the inverse MFP.