PolarSchurRhsAssembleKernel Struct ReferenceΒΆ

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

rhs_polar(i,j) = lap_polar(i,j) (= Lap_polar phi^n) + g * div_polar F, second-order centered POLAR divergence of a vector field F = (F_r, F_theta) at the center (ghosts filled). More...

#include <polar_condensed_schur_source_stepper.hpp>

+ Collaboration diagram for pops::detail::PolarSchurRhsAssembleKernel:

Public Member Functions

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

Public Attributes

ConstArray4 lap
 Lap_polar phi^n (positive sign, A=I)
 
ConstArray4 fr
 
ConstArray4 ft
 flux F at the center (ghosts filled)
 
Array4 rhs
 output: condensed right-hand side (L_int sign)
 
Real g
 theta dt alpha
 
Real half_idr
 
Real half_idth
 1/(2 dr), 1/(2 dtheta)
 
Real r_min
 
Real dr
 for r_cell(i), r_cell(i+-1)
 

Detailed Description

rhs_polar(i,j) = lap_polar(i,j) (= Lap_polar phi^n) + g * div_polar F, second-order centered POLAR divergence of a vector field F = (F_r, F_theta) at the center (ghosts filled).

g = theta dt alpha. div_polar F = (1/r_i) [ (r_{i+1} F_r(i+1) - r_{i-1} F_r(i-1)) / (2 dr)

  • (F_th(i,j+1) - F_th(i,j-1)) / (2 dtheta) ]. The POSITIVE sign of div (and of lap) is the opposite of the Cartesian schur convention: we solve L_int = +div(A grad phi) = rhs_polar = -rhs_schur (cf. header, sign convention). NAMED functor.

Member Function Documentation

◆ operator()()

POPS_HD void pops::detail::PolarSchurRhsAssembleKernel::operator() ( int  i,
int  j 
) const
inline

Member Data Documentation

◆ dr

Real pops::detail::PolarSchurRhsAssembleKernel::dr

for r_cell(i), r_cell(i+-1)

◆ fr

ConstArray4 pops::detail::PolarSchurRhsAssembleKernel::fr

◆ ft

ConstArray4 pops::detail::PolarSchurRhsAssembleKernel::ft

flux F at the center (ghosts filled)

◆ g

Real pops::detail::PolarSchurRhsAssembleKernel::g

theta dt alpha

◆ half_idr

Real pops::detail::PolarSchurRhsAssembleKernel::half_idr

◆ half_idth

Real pops::detail::PolarSchurRhsAssembleKernel::half_idth

1/(2 dr), 1/(2 dtheta)

◆ lap

ConstArray4 pops::detail::PolarSchurRhsAssembleKernel::lap

Lap_polar phi^n (positive sign, A=I)

◆ r_min

Real pops::detail::PolarSchurRhsAssembleKernel::r_min

◆ rhs

Array4 pops::detail::PolarSchurRhsAssembleKernel::rhs

output: condensed right-hand side (L_int sign)


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