SchurReconstructKernel Struct ReferenceΒΆ

adc_cpp: pops::detail::SchurReconstructKernel 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::detail::SchurReconstructKernel Struct Reference

Reconstructs v^{n+theta} = B^{-1}(v^n - theta dt grad phi^{n+theta}) and writes mom = rho^n v^{n+theta} into the state. More...

#include <condensed_schur_source_stepper.hpp>

+ Collaboration diagram for pops::detail::SchurReconstructKernel:

Public Member Functions

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

Public Attributes

ConstArray4 phi
 phi^{n+theta} (ghosts filled: centered grad reads i+-1, j+-1)
 
ConstArray4 vx
 
ConstArray4 vy
 v^n (component 0 of their MultiFab: velocity, NOT momentum)
 
ConstArray4 bz
 B_z field at the center.
 
Array4 st
 fluid state (WRITE mx, my; READ rho)
 
Array4 nvx
 
Array4 nvy
 output: v^{n+theta} (component 0) for the energy / the diagnostic
 
Real th_dt
 theta * dt (w = th_dt * B_z, and gradient factor)
 
Real half_idx
 
Real half_idy
 1/(2 dx), 1/(2 dy) (centered gradient)
 
int c_rho
 
int c_mx
 
int c_my
 Density / MomentumX / MomentumY components.
 

Detailed Description

Reconstructs v^{n+theta} = B^{-1}(v^n - theta dt grad phi^{n+theta}) and writes mom = rho^n v^{n+theta} into the state.

grad phi is the CENTERED difference (same discretization as the divergence of the condensed RHS #124 and as field_postprocess): the implicit relation B v = v^n - theta dt grad phi then holds to the precision of the SOLVE, term by term. rho is read from the state (Density role) and FROZEN. NAMED device-clean functor: captures Array4 handles (POD) plus scalars.

Member Function Documentation

◆ operator()()

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

Member Data Documentation

◆ bz

ConstArray4 pops::detail::SchurReconstructKernel::bz

B_z field at the center.

◆ c_mx

int pops::detail::SchurReconstructKernel::c_mx

◆ c_my

int pops::detail::SchurReconstructKernel::c_my

Density / MomentumX / MomentumY components.

◆ c_rho

int pops::detail::SchurReconstructKernel::c_rho

◆ half_idx

Real pops::detail::SchurReconstructKernel::half_idx

◆ half_idy

Real pops::detail::SchurReconstructKernel::half_idy

1/(2 dx), 1/(2 dy) (centered gradient)

◆ nvx

Array4 pops::detail::SchurReconstructKernel::nvx

◆ nvy

Array4 pops::detail::SchurReconstructKernel::nvy

output: v^{n+theta} (component 0) for the energy / the diagnostic

◆ phi

ConstArray4 pops::detail::SchurReconstructKernel::phi

phi^{n+theta} (ghosts filled: centered grad reads i+-1, j+-1)

◆ st

Array4 pops::detail::SchurReconstructKernel::st

fluid state (WRITE mx, my; READ rho)

◆ th_dt

Real pops::detail::SchurReconstructKernel::th_dt

theta * dt (w = th_dt * B_z, and gradient factor)

◆ vx

ConstArray4 pops::detail::SchurReconstructKernel::vx

◆ vy

ConstArray4 pops::detail::SchurReconstructKernel::vy

v^n (component 0 of their MultiFab: velocity, NOT momentum)


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