aboutsummaryrefslogtreecommitdiff
path: root/Docs/source/usage/parameters.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Docs/source/usage/parameters.rst')
-rw-r--r--Docs/source/usage/parameters.rst72
1 files changed, 57 insertions, 15 deletions
diff --git a/Docs/source/usage/parameters.rst b/Docs/source/usage/parameters.rst
index 32eeec61a..1e70c27b0 100644
--- a/Docs/source/usage/parameters.rst
+++ b/Docs/source/usage/parameters.rst
@@ -1353,14 +1353,7 @@ External fields
Collision initialization
------------------------
-WarpX provides a relativistic elastic Monte Carlo binary Coulomb collision model,
-following the algorithm given by `Perez et al. (Phys. Plasmas 19, 083104, 2012) <https://doi.org/10.1063/1.4742167>`_.
-When the RZ mode is used, `warpx.n_rz_azimuthal_modes` must be set to 1 at the moment,
-since the current implementation of the collision module assumes axisymmetry.
-A non-relativistic Monte Carlo treatment for particles colliding
-with a neutral, uniform background gas is also available. The implementation follows the so-called
-null collision strategy discussed for example in `Birdsall (IEEE Transactions on
-Plasma Science, vol. 19, no. 2, pp. 65-85, 1991) <https://ieeexplore.ieee.org/document/106800>`_.
+WarpX provides several particle collions models, using varying degrees of approximation.
* ``collisions.collision_names`` (`strings`, separated by spaces)
The name of each collision type.
@@ -1368,8 +1361,21 @@ Plasma Science, vol. 19, no. 2, pp. 65-85, 1991) <https://ieeexplore.ieee.org/do
in this documentation we use ``<collision_name>`` as a placeholder.
* ``<collision_name>.type`` (`string`) optional
- The type of collsion. The types implemented are ``pairwisecoulomb`` for pairwise Coulomb collisions and
- ``background_mcc`` for collisions between particles and a neutral background. If not specified, it defaults to ``pairwisecoulomb``.
+ The type of collsion. The types implemented are:
+
+ - ``pairwisecoulomb`` for pairwise Coulomb collisions, the default if unspecified.
+ This provides a pair-wise relativistic elastic Monte Carlo binary Coulomb collision model,
+ following the algorithm given by `Perez et al. (Phys. Plasmas 19, 083104, 2012) <https://doi.org/10.1063/1.4742167>`_.
+ When the RZ mode is used, `warpx.n_rz_azimuthal_modes` must be set to 1 at the moment,
+ since the current implementation of the collision module assumes axisymmetry.
+ - ``background_mcc`` for collisions between particles and a neutral background.
+ This is a non-relativistic Monte Carlo treatment for particles colliding
+ with a neutral, uniform background gas. The implementation follows the so-called
+ null collision strategy discussed for example in `Birdsall (IEEE Transactions on
+ Plasma Science, vol. 19, no. 2, pp. 65-85, 1991) <https://ieeexplore.ieee.org/document/106800>`_.
+ - ``background_stopping`` for slowing of ions due to collisions with electrons or ions.
+ This implements the approximate formulae as derived in Introduction to Plasma Physics,
+ from Goldston and Rutherford, section 14.2.
* ``<collision_name>.species`` (`strings`)
If using ``pairwisecoulomb`` type this should be the names of two species,
@@ -1395,21 +1401,57 @@ Plasma Science, vol. 19, no. 2, pp. 65-85, 1991) <https://ieeexplore.ieee.org/do
Execute collision every # time steps. The default value is 1.
* ``<collision_name>.background_density`` (`float`)
- Only for ``background_mcc``. The density of the neutral background gas in :math:`m^{-3}`.
+ Only for ``background_mcc`` and ``background_stopping``. The density of the background in :math:`m^{-3}`.
Can also provide ``<collision_name>.background_density(x,y,z,t)`` using the parser
- initialization style for spatially and temporally varying density. If a function
+ initialization style for spatially and temporally varying density. With ``background_mcc``, if a function
is used for the background density, the input parameter ``<collision_name>.max_background_density``
must also be provided to calculate the maximum collision probability.
* ``<collision_name>.background_temperature`` (`float`)
- Only for ``background_mcc``. The temperature of the neutral background gas in Kelvin.
+ Only for ``background_mcc`` and ``background_stopping``. The temperature of the background in Kelvin.
Can also provide ``<collision_name>.background_temperature(x,y,z,t)`` using the parser
initialization style for spatially and temporally varying temperature.
* ``<collision_name>.background_mass`` (`float`) optional
- Only for ``background_mcc``. The mass of the background gas in kg. If not
- given the mass of the colliding species will be used unless ionization is
+ Only for ``background_mcc`` and ``background_stopping``. The mass of the background gas in kg.
+ With ``background_mcc``, if not given the mass of the colliding species will be used unless ionization is
included in which case the mass of the product species will be used.
+ With ``background_stopping``, and ``background_type`` set to ``electrons``, if not given defaults to the electron mass. With
+ ``background_type`` set to ``ions``, the mass must be given.
+
+* ``<collision_name>.background_charge_state`` (`float`)
+ Only for ``background_stopping``, where it is required when ``background_type`` is set to ``ions``.
+ This specifies the charge state of the background ions.
+
+* ``<collision_name>.background_type`` (`string`)
+ Only for ``background_stopping``, where it is required, the type of the background.
+ The possible values are ``electrons`` and ``ions``. When ``electrons``, equation 14.12 from Goldston and Rutherford is used.
+ This formula is based on Coulomb collisions with the approximations that :math:`M_b >> m_e` and :math:`V << v_{thermal\_e}`,
+ and the assumption that the electrons have a Maxwellian distribution with temperature :math:`T_e`.
+
+ .. math::
+ \frac{dV}{dt} = - \frac{2^{1/2}n_eZ_b^2e^4m_e^{1/2}\log\Lambda}{12\pi^{3/2}\epsilon_0M_bT_e^{3/2}}V
+
+ where :math:`V` is each velocity component, :math:`n_e` is the background density, :math:`Z_b` is the ion charge state,
+ :math:`e` is the electron charge, :math:`m_e` is the background mass, :math:`\log\Lambda=\log((12\pi/Z_b)(n_e\lambda_{de}^3))`,
+ :math:`\lambda_{de}` is the DeBye length, and :math:`M_b` is the ion mass.
+ The equation is integrated over a time step, giving :math:`V(t+dt) = V(t)*\exp(-\alpha*{dt})`
+ where :math:`\alpha` is the factor multiplying :math:`V`.
+
+ When ``ions``, equation 14.20 is used.
+ This formula is based on Coulomb collisions with the approximations that :math:`M_b >> M` and :math:`V >> v_{thermal\_i}`.
+ The background ion temperature only appears in the :math:`\log\Lambda` term.
+
+ .. math::
+ \frac{dW_b}{dt} = - \frac{2^{1/2}n_iZ^2Z_b^2e^4M_b^{1/2}\log\Lambda}{8\pi\epsilon_0MW_b^{1/2}}
+
+ where :math:`W_b` is the ion energy, :math:`n_i` is the background density,
+ :math:`Z` is the charge state of the background ions, :math:`Z_b` is the ion charge state,
+ :math:`e` is the electron charge, :math:`M_b` is the ion mass, :math:`\log\Lambda=\log((12\pi/Z_b)(n_i\lambda_{di}^3))`,
+ :math:`\lambda_{di}` is the DeBye length, and :math:`M` is the background ion mass.
+ The equation is integrated over a time step, giving :math:`W_b(t+dt) = ((W_b(t)^{3/2}) - 3/2\beta{dt})^{2/3}`
+ where :math:`\beta` is the term on the r.h.s except :math:`W_b`.
+
* ``<collision_name>.scattering_processes`` (`strings` separated by spaces)
Only for ``background_mcc``. The MCC scattering processes that should be