LangmuirMode Struct ReferenceΒΆ
|
adc_cpp 0.3.0
Model-free C++23 core for coupled hyperbolic-elliptic systems on adaptive (AMR) meshes, with MPI and GPU (Kokkos) backends
|
Linearized Langmuir mode: 0D kernel of the asymptotic-preserving two-fluid scheme. More...
#include <langmuir.hpp>
Collaboration diagram for pops::validation::LangmuirMode:Public Member Functions | |
| POPS_HD void | explicit_step (Real &a, Real &b, Real dt) const |
| Explicit step (slow acoustic term) in place: (a,b) <- (a,b) + dt T. | |
| POPS_HD void | implicit_solve (Real &a, Real &b, Real dt) const |
| Implicit step (stiff plasma term) in place: solves (a,b) = (a*, b*) + dt S. | |
| Real | omega () const |
| Eigenfrequency of the mode, omega = sqrt(omega_p^2 + c_s^2 k^2) (isothermal Bohm-Gross). | |
Public Attributes | |
| Real | omega_p = 1.0 |
| plasma frequency (stiff term) | |
| Real | cs2k2 = 0.0 |
| c_s^2 k^2 (acoustic correction, slow) | |
Detailed Description
Linearized Langmuir mode: 0D kernel of the asymptotic-preserving two-fluid scheme.
VALIDATION/REFERENCE brick (not used by adc_cases as of 2026-06-06); kept as an analytic example of the IMEX scheme (explicit_step / implicit_solve).
Stiff regime of a compressible magnetized fluid coupled to a self-consistent field, Hoffart paper arXiv:2510.11808. Isothermal two-fluid, electrons mobile over a fixed ionic background, a single Fourier mode k. The mode amplitude (a = perturbation, b = da/dt) obeys a'' + (omega_p^2 + c_s^2 k^2) a = 0, that is an oscillation at omega = sqrt(omega_p^2 + c_s^2 k^2) (isothermal Bohm-Gross). The plasma frequency omega_p is the stiff term (it tends to infinity as the Debye length lambda_D tends to 0, quasi-neutrality): an explicit scheme would require dt < 1/omega_p, the IMEX handles it implicitly.
IMEX split (see time/imex.hpp): stiff (implicit, A-stable): S(a,b) = (b, -omega_p^2 a), oscillating pair slow (explicit): T(a,b) = (0, -c_s^2 k^2 a), acoustic correction
The implicit part solves the pair (a,b) together, backward Euler with factor 1/sqrt(1+omega_p^2 dt^2) < 1: stable at fixed dt as omega_p tends to infinity (AP).
Member Function Documentation
◆ explicit_step()
|
inline |
Explicit step (slow acoustic term) in place: (a,b) <- (a,b) + dt T.
- Parameters
-
[in] a mode amplitude [in,out] b velocity da/dt, updated by T = (0, -cs2k2 a) [in] dt time step
◆ implicit_solve()
|
inline |
Implicit step (stiff plasma term) in place: solves (a,b) = (a*, b*) + dt S.
With S = (b, -omega_p^2 a), analytic linear 2x2 solve (no Newton).
- Parameters
-
[in,out] a mode amplitude [in,out] b velocity da/dt [in] dt time step
◆ omega()
|
inline |
Eigenfrequency of the mode, omega = sqrt(omega_p^2 + c_s^2 k^2) (isothermal Bohm-Gross).
Member Data Documentation
◆ cs2k2
| Real pops::validation::LangmuirMode::cs2k2 = 0.0 |
c_s^2 k^2 (acoustic correction, slow)
◆ omega_p
| Real pops::validation::LangmuirMode::omega_p = 1.0 |
plasma frequency (stiff term)
The documentation for this struct was generated from the following file:
- include/pops/validation/physics/langmuir.hpp
Generated by