ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
orb5x::CollisionsModule Class Reference

Applies linearized and nonlinear Langevin representations of the Landau collision operator. More...

#include "collisions.hpp"

Static Public Member Functions

static void collisions_disp ()
 Apply every enabled inter- and intraspecies collision pair for one collision step.
 
static void destroyStaticViews ()
 Release all collision-owned Kokkos allocations before Kokkos::finalize().
 
static void get_bin_momentum (int isp, Real st, Real chit, Real phit, Real &Nval, Real &Vpval, Real &Tval, Real &qpval)
 Interpolate collision-bin density, parallel flow, temperature, and heat flux.
 
static void init_collisions ()
 Allocate collision-bin moments, conservation matrices, and random-kick arrays.
 
static Real rosenbluth_H (Real x)
 Evaluate the Maxwellian Rosenbluth function \(H(x)\).
 
static Real rosenbluth_K (Real x)
 Evaluate the Maxwellian Rosenbluth function \(K(x)\).
 

Detailed Description

Applies linearized and nonlinear Langevin representations of the Landau collision operator.

Velocity-space stochastic kicks describe test-particle scattering against a local Maxwellian background. Optional field-particle moment corrections restore the discretely conserved density, parallel momentum, and energy in radial/poloidal/toroidal collision bins. Species indices are zero-based and velocities, frequencies, and moments use ORB5X normalization.

Scientific reference
See the ORB5 review manuscript, sections/gk_model.tex, collision model and Rosenbluth-potential equations, and Vernay et al. (2010) cited there.
Fortran reference collisions.F90, module collisions_mod.

Member Function Documentation

◆ collisions_disp()

static void orb5x::CollisionsModule::collisions_disp ( )
static

Apply every enabled inter- and intraspecies collision pair for one collision step.

Selects the linear/nonlinear operator and moment correction from input state.

Fortran reference collisions.F90:collisions_disp.

◆ destroyStaticViews()

static void orb5x::CollisionsModule::destroyStaticViews ( )
static

Release all collision-owned Kokkos allocations before Kokkos::finalize().

◆ get_bin_momentum()

static void orb5x::CollisionsModule::get_bin_momentum ( int  isp,
Real  st,
Real  chit,
Real  phit,
Real &  Nval,
Real &  Vpval,
Real &  Tval,
Real &  qpval 
)
static

Interpolate collision-bin density, parallel flow, temperature, and heat flux.

Parameters
[in]ispZero-based species index.
[in]stRadial coordinate \(s\).
[in]chitPoloidal coordinate [rad].
[in]phitToroidal coordinate [rad].
[out]NvalMarker density moment.
[out]VpvalParallel-flow moment.
[out]TvalTemperature/energy moment.
[out]qpvalParallel heat-flux moment.

◆ init_collisions()

static void orb5x::CollisionsModule::init_collisions ( )
static

Allocate collision-bin moments, conservation matrices, and random-kick arrays.

Fortran reference collisions.F90:init_collisions.

◆ rosenbluth_H()

static Real orb5x::CollisionsModule::rosenbluth_H ( Real  x)
static

Evaluate the Maxwellian Rosenbluth function \(H(x)\).

Parameters
[in]xSpeed divided by the background thermal-speed scale.
Returns
Dimensionless \(H\) coefficient used in drag and diffusion.

◆ rosenbluth_K()

static Real orb5x::CollisionsModule::rosenbluth_K ( Real  x)
static

Evaluate the Maxwellian Rosenbluth function \(K(x)\).

Parameters
[in]xSpeed divided by the background thermal-speed scale.
Returns
Dimensionless \(K\) coefficient used in pitch-angle diffusion.

The documentation for this class was generated from the following file: