SchurCondensationOperator Struct ReferenceΒΆ

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

Result of the Schur assembly: the coefficient MultiFab of the tensor operator A_op and the condensed right-hand side. More...

#include <schur_condensation.hpp>

+ Collaboration diagram for pops::SchurCondensationOperator:

Public Attributes

MultiFab eps_x
 diagonal A_xx = 1 + c rho binv_11
 
MultiFab eps_y
 diagonal A_yy = 1 + c rho binv_22
 
MultiFab a_xy
 cross A_xy = c rho binv_12
 
MultiFab a_yx
 cross A_yx = c rho binv_21
 
MultiFab rhs
 condensed right-hand side -Lap phi^n - theta dt alpha div(rho B^{-1} v^n)
 

Detailed Description

Result of the Schur assembly: the coefficient MultiFab of the tensor operator A_op and the condensed right-hand side.

Owns its own fields (move-only via the MultiFab internal std::vector): the caller (PR4) then passes them to GeometricMG::set_epsilon_anisotropic(eps_x, eps_y) + set_cross_terms-per-field / to the TensorKrylovSolver, and solves L_schur(phi) = rhs.

kappa stays ABSENT (the condensation produces no mass term): the operator is -div(A grad phi), not Helmholtz. eps_x == eps_y == (1 + c rho) and a_xy == a_yx == 0 when B_z == 0.

Member Data Documentation

◆ a_xy

MultiFab pops::SchurCondensationOperator::a_xy

cross A_xy = c rho binv_12

◆ a_yx

MultiFab pops::SchurCondensationOperator::a_yx

cross A_yx = c rho binv_21

◆ eps_x

MultiFab pops::SchurCondensationOperator::eps_x

diagonal A_xx = 1 + c rho binv_11

◆ eps_y

MultiFab pops::SchurCondensationOperator::eps_y

diagonal A_yy = 1 + c rho binv_22

◆ rhs

MultiFab pops::SchurCondensationOperator::rhs

condensed right-hand side -Lap phi^n - theta dt alpha div(rho B^{-1} v^n)


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