SchurOperatorCoeffKernelC Struct ReferenceΒΆ

adc_cpp: pops::runtime::program::detail::SchurOperatorCoeffKernelC 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
pops::runtime::program::detail::SchurOperatorCoeffKernelC Struct Reference

Aux-component-aware variants of the native Schur kernels (coupling/schur/core/schur_condensation.hpp. More...

#include <program_context.hpp>

+ Collaboration diagram for pops::runtime::program::detail::SchurOperatorCoeffKernelC:

Public Member Functions

POPS_HD void operator() (int i, int j) const
 

Public Attributes

ConstArray4 s
 fluid state (rho at c_rho)
 
ConstArray4 aux
 System aux (B_z at c_bz)
 
Array4 ex
 
Array4 ey
 output: eps_x, eps_y (diagonal of A)
 
Array4 axy
 
Array4 ayx
 output: cross terms a_xy, a_yx
 
Real c
 c = theta^2 dt^2 alpha
 
Real th_dt
 theta*dt (w = th_dt*B_z)
 
int c_rho
 
int c_bz
 

Detailed Description

Aux-component-aware variants of the native Schur kernels (coupling/schur/core/schur_condensation.hpp.

  • condensed_schur_source_stepper.hpp). The native kernels read B_z from a DEDICATED B_z MultiFab at component 0; a compiled Program reads B_z straight from the System aux channel at an arbitrary component c_bz, so these thin wrappers carry c_bz and otherwise REPRODUCE the native formulas verbatim (same LorentzEliminator B^{-1}, same coefficients, same centered gradient) – the native CondensedSchur path is untouched. Named functors (device-clean, nvcc cross-TU rule, like the native ones). epic ADC-399 / ADC-421. A_op = I + c*rho*B^{-1} per cell (eps_x/eps_y diag, a_xy/a_yx cross). Mirrors detail::SchurOperatorCoeffKernel but reads B_z from the aux at c_bz.

Member Function Documentation

◆ operator()()

POPS_HD void pops::runtime::program::detail::SchurOperatorCoeffKernelC::operator() ( int  i,
int  j 
) const
inline
+ Here is the call graph for this function:

Member Data Documentation

◆ aux

ConstArray4 pops::runtime::program::detail::SchurOperatorCoeffKernelC::aux

System aux (B_z at c_bz)

◆ axy

Array4 pops::runtime::program::detail::SchurOperatorCoeffKernelC::axy

◆ ayx

Array4 pops::runtime::program::detail::SchurOperatorCoeffKernelC::ayx

output: cross terms a_xy, a_yx

◆ c

Real pops::runtime::program::detail::SchurOperatorCoeffKernelC::c

c = theta^2 dt^2 alpha

◆ c_bz

int pops::runtime::program::detail::SchurOperatorCoeffKernelC::c_bz

◆ c_rho

int pops::runtime::program::detail::SchurOperatorCoeffKernelC::c_rho

◆ ex

Array4 pops::runtime::program::detail::SchurOperatorCoeffKernelC::ex

◆ ey

Array4 pops::runtime::program::detail::SchurOperatorCoeffKernelC::ey

output: eps_x, eps_y (diagonal of A)

◆ s

ConstArray4 pops::runtime::program::detail::SchurOperatorCoeffKernelC::s

fluid state (rho at c_rho)

◆ th_dt

Real pops::runtime::program::detail::SchurOperatorCoeffKernelC::th_dt

theta*dt (w = th_dt*B_z)


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