4.18. Discrete velocity method

The discrete velocity method (DVM) is a numerical approach to solve the BGK approximation of the Boltzmann equation by discretizing the velocity space into a finite set of velocities. This allows for the simulation of rarefied gas or plasma dynamics in a completely deterministic manner. The DVM module can be enabled by compiling PICLas with the following parameters

PICLAS_EQNSYSNAME = discrete_velocity
PICLAS_PARTICLES = OFF

DVM for neutral gas should be used with the exponential differencing method (ED-DVM), consisting in a finite volume method with second-order accuracy in time and space [87], by setting

PICLAS_TIMEDISCMETHOD = ED-DVM

Simulating plasma, with a combination of DVM for particle flow and HDG for the electric potential, is also possible with

PICLAS_TIMEDISCMETHOD = PLOESMA

The different species parameters can be retrieved from the species database (see Unified Species Database). For example:

DVM-Species-Database = SpeciesDatabase.h5
DVM-nSpecies = 2
DVM-Species1-SpeciesName = Ar
DVM-Species2-SpeciesName = He

For each species, the velocity discretization can be specified with

DVM-Species1-VeloDiscretization

which should be set to 3 for near-equilibrium simulations (Gauss-Hermite quadrature) or to 2 for strong non-equilibrium (uniform grid). For the uniform grid, the limits of the grid (in m/s) can be set in each direction \((v_x,v_y,v_z)\) with

DVM-Species1-VeloMin = (/-2000.,-1500.,-1500./)
DVM-Species1-VeloMax = (/2000.,1500.,1500./)

For the Gauss-Hermite quadrature, only the reference translational temperature, which should be close to the actual flow temperature, has to be set in every direction:

DVM-Species1-GaussHermiteTemp = (300.,300.,300.)

The number of discrete velocities in each direction can be set with

DVM-Species1-nVeloX = 25
DVM-Species1-nVeloY = 15
DVM-Species1-nVeloZ = 15

If the flow has symmetry properties, the number of discrete velocities can be reduced by only specifying the number of velocities for directions where it needs to be discretized. In this case, a dimension parameter has to be set accordingly:

DVM-Species1-Dimension = 1 or 2

Several BGK collision models are available through

DVM-Collisions = T
DVM-BGKCollModel = 1 to 6

4.18.1. Finite volume solver

The DVM module uses a second-order finite volume solver based on flux reconstruction at the element interfaces. In order to avoid nonphysical oscillations, gradient limiters can be applied by choosing the value of Grad-LimiterType (see Drift-diffusion model).

4.18.2. Initial and boundary conditions

Initial and boundary conditions are set using RefState-FV. Their content is, in order: density \(n\), velocity in three directions \((u_x,u_y,u_z)\), temperature \(T\), six components of traceless pressure tensor \((P_{xx},P_{yy},P_{zz},P_{xy},P_{xz},P_{yz})\), heat flux \((q_x,q_y,q_z)\). The number of conditions per species is given by IniRefState-FV. For example, for two species initialized uniformly at equilibrium in a domain with diffuse walls:

IniExactFunc-FV  = 1  ! uniform
IniRefState-FV   = 3  ! per species

! initial conditions (RefState number 1)
RefState-FV =(/6.5E19, 0, 0, 0, 273., 0, 0, 0,0,0,0,0,0,0/)
RefState-FV =(/13.E19, 0, 0, 0, 273., 0, 0, 0,0,0,0,0,0,0/)

BoundaryName = BC_x+
BoundaryType-FV = (/4,2/) ! diffuse wall using RefState number 2
RefState-FV =(/1., 0, 350., 0, 273., 0, 0, 0,0,0,0,0,0,0/)
RefState-FV =(/1., 0, 350., 0, 273., 0, 0, 0,0,0,0,0,0,0/)

BoundaryName = BC_x-
BoundaryType-FV = (/4,3/) ! diffuse wall using  RefState number 3
RefState-FV =(/1., 0, -350., 0, 273., 0, 0, 0,0,0,0,0,0,0/)
RefState-FV =(/1., 0, -350., 0, 273., 0, 0, 0,0,0,0,0,0,0/)

For diffuse walls, only velocity and temperature actually matter, the other values are dummy variables.

4.18.3. Visualisation

Convert state file with piclas2vtk to view macroscopic flow values in the DVM_Solution.vtu file.