Skip to content

Discrete Velocity Method (DVM)

GUERNICA discretizes velocity space using the discrete velocity method (DVM). In this approach, the continuous velocity variable is replaced by a finite set of discrete velocities, and the kinetic equation is solved independently at each velocity point, with coupling introduced only through collision operators.

This section describes the velocity discretization, quadrature, and resulting semi-discrete form of the kinetic equation. Configuration-space discretization using DG is treated separately.


Velocity-space discretization

The continuous velocity space is truncated to a bounded Cartesian domain,

\[ \mathcal{V} = [v_{x,\min}, v_{x,\max}] \times [v_{y,\min}, v_{y,\max}] \times [v_{z,\min}, v_{z,\max}], \]

and discretized using a uniform tensor-product grid in each velocity direction.

The discrete velocities are denoted by

\[ \mathbf{v}_j = (v_{x,i}, v_{y,k}, v_{z,m}), \]

with constant spacings \(\Delta v_x\), \(\Delta v_y\), and \(\Delta v_z\). The total number of discrete velocities is

\[ N_v = N_{v_x} N_{v_y} N_{v_z}. \]

While the grid is uniform in each direction, the spacings in different directions need not be equal.

Velocity-domain truncation

The velocity bounds are chosen such that the support of the distribution function is well contained within \(\mathcal{V}\). In practice, this corresponds to selecting bounds several thermal speeds away from the bulk flow, typically

\[ |\mathbf{v}| \lesssim 5\text{–}6\,v_{\mathrm{th}}, \]

though the appropriate choice depends on the local plasma and neutral conditions.

Truncation error is controlled by increasing the velocity-domain extent rather than by modifying the quadrature or grid structure.


Discrete kinetic equation

With the DVM, the distribution function is represented as

\[ f_n(\mathbf{x}, \mathbf{v}, t) \;\longrightarrow\; f_{n,j}(\mathbf{x}, t) = f_n(\mathbf{x}, \mathbf{v}_j, t). \]

For each discrete velocity \(\mathbf{v}_j\), the kinetic equation reduces to a scalar transport equation in configuration space,

\[ \frac{\partial f_{n,j}}{\partial t} + \mathbf{v}_j \cdot \nabla_{\mathbf{x}} f_{n,j} = R_j[f_n], \]

where \(R_j[f_n]\) denotes the collision and source operators evaluated at \(\mathbf{v} = \mathbf{v}_j\).

The spatial transport operator acts independently for each discrete velocity, while coupling across velocity space enters exclusively through collision operators.


Velocity-space quadrature

Velocity integrals appearing in macroscopic moments and collision operators are approximated using Simpson–Cotes quadrature on the uniform Cartesian grid.

A generic velocity integral is approximated as

\[ \int_{\mathcal{V}} g(\mathbf{v})\, d\mathbf{v} \;\approx\; \sum_{j=1}^{N_v} g(\mathbf{v}_j)\, w_j, \]

where the quadrature weights \(w_j\) are given by the tensor product of one-dimensional Simpson–Cotes weights in each velocity direction.

This choice is consistent with the uniform grid and provides improved accuracy over midpoint or trapezoidal rules without modifying the underlying velocity discretization.


Macroscopic moments (discrete form)

Macroscopic neutral quantities are computed from the discrete distribution using the same velocity quadrature. The primary moments evaluated are:

\[ n_n = \sum_j f_{n,j} w_j, \]
\[ n_n \mathbf{u}_n = \sum_j \mathbf{v}_j f_{n,j} w_j, \]
\[ E_n = \sum_j \frac{1}{2} |\mathbf{v}_j|^2 f_{n,j} w_j. \]

The bulk velocity and temperature are recovered as

\[ \mathbf{u}_n = \frac{1}{n_n} \sum_j \mathbf{v}_j f_{n,j} w_j, \]
\[ T_n = \frac{2}{3 n_n} \left( E_n - \frac{1}{2} n_n |\mathbf{u}_n|^2 \right). \]

These discrete moments are used consistently throughout the solver, including in the construction of BGK equilibrium distributions.

Implementation in GUERNICA

Velocity integration and moments

  • VelocityIntegrate.hxx / VelocityIntegrate.cxx

All velocity-space integrations use the same Simpson–Cotes weights that define the DVM, ensuring consistency between transport, collisions, and diagnostics.


Motivation for a uniform Cartesian grid

The choice of a uniform Cartesian velocity grid is motivated by several considerations:

  • Simplicity and robustness of quadrature
  • Straightforward computation of velocity moments
  • Compatibility with matrix-free, element-local loops
  • Efficient evaluation of convolution-type operators

Most importantly, this structure enables FFT-based acceleration of the charge exchange operator, which relies on uniform spacing and tensor-product structure in velocity space.


Coupling to collision operators

In the DVM formulation:

  • Local collision operators (e.g., ionization) are applied pointwise in velocity space.
  • Global collision operators (e.g., charge exchange, BGK) introduce coupling across velocity space through discrete velocity integrals or convolutions.

The numerical treatment of these operators is described in detail in the Collision Operators section.


Relationship to configuration-space discretization

The DVM produces a system of transport equations indexed by discrete velocity. Each of these equations is discretized in configuration space using the discontinuous Galerkin method.

From an implementation perspective, this results in:

  • identical DG operators applied independently for each velocity, and
  • collision operators that couple these velocity-indexed fields.

The DG discretization and its matrix-free realization are described in the next section.