flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
Loading...
Searching...
No Matches
peclet::flow::ScalarKrylovOps Struct Reference

The injected pieces as callables (host-side calls that launch kernels; the overhead of the indirection is nothing next to a block-wide kernel). More...

#include <scalar_krylov.hpp>

Public Attributes

C3 e {0, 0, 0}
 
int g = 0
 
std::function< void(const ScalarVec &, const ScalarVec &)> matvec
 
std::function< void(const ScalarVec &, const ScalarVec &)> precond
 
std::function< double(const ScalarVec &, const ScalarVec &)> dot
 
std::function< void(const ScalarVec &, const ScalarVec &, const ScalarVec &, double &, double &)> dot2
 
std::function< double(const ScalarVec &)> maxabs
 
std::function< void(const ScalarVec &)> removeMean
 
bool resident = false
 The resident pass (single rank): ks (>= skr::kNSlots device doubles) and pk (3 host doubles) persistent scratch; dotTo / dot2To / maxabsTo the reductions of dot / dot2 / maxabs into device slots (maxabsTo: the fluid part and the solid part, combined on the host with std::fmax exactly as maxabs does).
 
Kokkos::View< double *, CCMem > ks
 
Kokkos::View< double *, Kokkos::HostSpace > pk
 
std::function< void(const ScalarVec &, const ScalarVec &, skr::Slot)> dotTo
 
std::function< void(const ScalarVec &, const ScalarVec &, const ScalarVec &, skr::Slot, skr::Slot)> dot2To
 
std::function< void(const ScalarVec &, skr::Slot, skr::Slot)> maxabsTo
 

Detailed Description

The injected pieces as callables (host-side calls that launch kernels; the overhead of the indirection is nothing next to a block-wide kernel).

Definition at line 142 of file scalar_krylov.hpp.

Member Data Documentation

◆ e

C3 peclet::flow::ScalarKrylovOps::e {0, 0, 0}

Definition at line 143 of file scalar_krylov.hpp.

◆ g

int peclet::flow::ScalarKrylovOps::g = 0

Definition at line 144 of file scalar_krylov.hpp.

◆ matvec

std::function<void(const ScalarVec&, const ScalarVec&)> peclet::flow::ScalarKrylovOps::matvec

Definition at line 145 of file scalar_krylov.hpp.

◆ precond

std::function<void(const ScalarVec&, const ScalarVec&)> peclet::flow::ScalarKrylovOps::precond

Definition at line 145 of file scalar_krylov.hpp.

◆ dot

std::function<double(const ScalarVec&, const ScalarVec&)> peclet::flow::ScalarKrylovOps::dot

Definition at line 146 of file scalar_krylov.hpp.

◆ dot2

std::function<void(const ScalarVec&, const ScalarVec&, const ScalarVec&, double&, double&)> peclet::flow::ScalarKrylovOps::dot2

Definition at line 147 of file scalar_krylov.hpp.

◆ maxabs

std::function<double(const ScalarVec&)> peclet::flow::ScalarKrylovOps::maxabs

Definition at line 148 of file scalar_krylov.hpp.

◆ removeMean

std::function<void(const ScalarVec&)> peclet::flow::ScalarKrylovOps::removeMean

Definition at line 149 of file scalar_krylov.hpp.

◆ resident

bool peclet::flow::ScalarKrylovOps::resident = false

The resident pass (single rank): ks (>= skr::kNSlots device doubles) and pk (3 host doubles) persistent scratch; dotTo / dot2To / maxabsTo the reductions of dot / dot2 / maxabs into device slots (maxabsTo: the fluid part and the solid part, combined on the host with std::fmax exactly as maxabs does).

Definition at line 154 of file scalar_krylov.hpp.

◆ ks

Kokkos::View<double*, CCMem> peclet::flow::ScalarKrylovOps::ks

Definition at line 155 of file scalar_krylov.hpp.

◆ pk

Kokkos::View<double*, Kokkos::HostSpace> peclet::flow::ScalarKrylovOps::pk

Definition at line 156 of file scalar_krylov.hpp.

◆ dotTo

std::function<void(const ScalarVec&, const ScalarVec&, skr::Slot)> peclet::flow::ScalarKrylovOps::dotTo

Definition at line 157 of file scalar_krylov.hpp.

◆ dot2To

std::function<void(const ScalarVec&, const ScalarVec&, const ScalarVec&, skr::Slot, skr::Slot)> peclet::flow::ScalarKrylovOps::dot2To

Definition at line 159 of file scalar_krylov.hpp.

◆ maxabsTo

std::function<void(const ScalarVec&, skr::Slot, skr::Slot)> peclet::flow::ScalarKrylovOps::maxabsTo

Definition at line 160 of file scalar_krylov.hpp.


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