Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Attributes | List of all members
Nektar::MultiRegions::GlobalLinSysPETSc::ShellCtx Struct Reference

Internal struct for MatShell and PCShell calls to store current context for callback. More...

#include <GlobalLinSysPETSc.h>

Collaboration diagram for Nektar::MultiRegions::GlobalLinSysPETSc::ShellCtx:
Collaboration graph
[legend]

Public Attributes

int nGlobal
 Number of global degrees of freedom. More...
 
int nDir
 Number of Dirichlet degrees of freedom. More...
 
GlobalLinSysPETSclinSys
 Pointer to the original calling object. More...
 

Detailed Description

Internal struct for MatShell and PCShell calls to store current context for callback.

To use the MatShell/PCShell representation inside PETSc KSP and PC objects (so that we can use the local spectral element approach) requires the use of a callback function, which must be static. This is a lightweight wrapper allowing us to call a virtual function so that we can handle the static condensation/full variants of the global system.

See also
GlobalLinSysPETSc::DoMatrixMultiply

Definition at line 112 of file GlobalLinSysPETSc.h.

Member Data Documentation

GlobalLinSysPETSc* Nektar::MultiRegions::GlobalLinSysPETSc::ShellCtx::linSys

Pointer to the original calling object.

Definition at line 119 of file GlobalLinSysPETSc.h.

Referenced by Nektar::MultiRegions::GlobalLinSysPETSc::DoNekppOperation(), and Nektar::MultiRegions::GlobalLinSysPETSc::SetUpMatVec().

int Nektar::MultiRegions::GlobalLinSysPETSc::ShellCtx::nDir

Number of Dirichlet degrees of freedom.

Definition at line 117 of file GlobalLinSysPETSc.h.

Referenced by Nektar::MultiRegions::GlobalLinSysPETSc::DoNekppOperation(), and Nektar::MultiRegions::GlobalLinSysPETSc::SetUpMatVec().

int Nektar::MultiRegions::GlobalLinSysPETSc::ShellCtx::nGlobal

Number of global degrees of freedom.

Definition at line 115 of file GlobalLinSysPETSc.h.

Referenced by Nektar::MultiRegions::GlobalLinSysPETSc::DoNekppOperation(), and Nektar::MultiRegions::GlobalLinSysPETSc::SetUpMatVec().