include/pops/numerics/linalg/lorentz_eliminator.hpp File ReferenceΒΆ

adc_cpp: include/pops/numerics/linalg/lorentz_eliminator.hpp File 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
lorentz_eliminator.hpp File Reference

LorentzEliminator: 2x2 operator B of the Schur scheme for implicit velocity elimination. More...

+ Include dependency graph for lorentz_eliminator.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pops::LorentzEliminator
 LorentzEliminator: operator B = [[1,-w],[w,1]] and its analytic inverse. More...
 

Namespaces

namespace  pops
 

Detailed Description

LorentzEliminator: 2x2 operator B of the Schur scheme for implicit velocity elimination.

Encodes B = [[1, -w], [w, 1]] and its inverse B^{-1} = (1/det)*[[1, w], [-w, 1]], with w = theta * dt * B_z and det(B) = 1 + w^2 (always > 0: B invertible for any real w).

POD struct, zero allocation, trivially copyable. All accessors POPS_HD. No std:: call: device-safe under Kokkos/CUDA/HIP without restriction.