diff options
Diffstat (limited to 'Docs/source/usage/parameters.rst')
-rw-r--r-- | Docs/source/usage/parameters.rst | 72 |
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 |