DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DNDS::Euler::JacobianValue< nVarsFixed > Class Template Reference

Placeholder container for implicit-solver Jacobian matrix storage. More...

#include <Euler.hpp>

Collaboration diagram for DNDS::Euler::JacobianValue< nVarsFixed >:
[legend]

Public Types

enum  Type { Diagonal = 0 , DiagonalBlock = 1 , Full = 2 }
 Jacobian storage mode selector. More...
 

Public Member Functions

void SetDiagonal (ArrayDOFV< nVarsFixed > &uDof)
 Initialize storage for diagonal (scalar-per-variable) Jacobian mode.
 
void SetDiagonalBlock (ArrayDOFV< nVarsFixed > &uDof)
 Initialize storage for block-diagonal (dense block-per-cell) Jacobian mode.
 
void SetFull (ArrayDOFV< nVarsFixed > &uDof, Geom::tAdjPair &cell2cell)
 Initialize storage for the full sparse block Jacobian following cell adjacency.
 
void InverseDiag ()
 Compute the inverse of the diagonal (or block-diagonal) Jacobian.
 

Public Attributes

ArrayDOFV< nVarsFixed > diag
 Diagonal Jacobian values (one vector per cell).
 
ArrayDOFV< nVarsFixed > diagInv
 Inverse of diagonal Jacobian values.
 
ArrayEigenMatrix< nVarsFixed, nVarsFixed > diagBlock
 Block-diagonal Jacobian (one nVars x nVars matrix per cell).
 
ArrayEigenMatrix< nVarsFixed, nVarsFixed > diagBlockInv
 Inverse of block-diagonal Jacobian.
 
ArrayRECV< nVarsFixed > offDiagBlock
 Off-diagonal blocks for full Jacobian (sparse, adjacency-based).
 

Detailed Description

template<int nVarsFixed>
class DNDS::Euler::JacobianValue< nVarsFixed >

Placeholder container for implicit-solver Jacobian matrix storage.

Supports three storage modes for the flux Jacobian \(\partial \mathbf{R}/\partial \mathbf{U}\):

  • Diagonal: One scalar per variable per cell (cheapest, first-order implicit).
  • DiagonalBlock: One dense (nVars x nVars) block per cell (block-Jacobi preconditioner).
  • Full: Sparse block structure following cell-to-cell adjacency (full implicit).
Warning
This class is currently a stub. The Set* and InverseDiag methods contain only allocation placeholders (marked with // todo). Actual Jacobian assembly and inversion are not yet implemented.
Template Parameters
nVarsFixedCompile-time number of conservative variables, determining the block size for DiagonalBlock and Full modes.

Definition at line 780 of file Euler.hpp.

Member Enumeration Documentation

◆ Type

template<int nVarsFixed>
enum DNDS::Euler::JacobianValue::Type

Jacobian storage mode selector.

Enumerator
Diagonal 

One scalar per variable per cell (diagonal approximation).

DiagonalBlock 

One (nVars x nVars) dense block per cell.

Full 

Sparse block structure following cell adjacency graph.

Definition at line 786 of file Euler.hpp.

Member Function Documentation

◆ InverseDiag()

template<int nVarsFixed>
void DNDS::Euler::JacobianValue< nVarsFixed >::InverseDiag ( )
inline

Compute the inverse of the diagonal (or block-diagonal) Jacobian.

Stores the result in diagInv (Diagonal mode) or diagBlockInv (DiagonalBlock mode) for use as a preconditioner in iterative solvers.

Todo:
Implement actual inversion logic.

Definition at line 840 of file Euler.hpp.

◆ SetDiagonal()

template<int nVarsFixed>
void DNDS::Euler::JacobianValue< nVarsFixed >::SetDiagonal ( ArrayDOFV< nVarsFixed > &  uDof)
inline

Initialize storage for diagonal (scalar-per-variable) Jacobian mode.

Parameters
uDofReference DOF array whose distribution layout is used for allocation.
Todo:
Implement actual allocation of diagonal storage.

Definition at line 803 of file Euler.hpp.

◆ SetDiagonalBlock()

template<int nVarsFixed>
void DNDS::Euler::JacobianValue< nVarsFixed >::SetDiagonalBlock ( ArrayDOFV< nVarsFixed > &  uDof)
inline

Initialize storage for block-diagonal (dense block-per-cell) Jacobian mode.

Parameters
uDofReference DOF array whose distribution layout is used for allocation.
Todo:
Implement actual allocation of (nVars x nVars) block storage.

Definition at line 814 of file Euler.hpp.

◆ SetFull()

template<int nVarsFixed>
void DNDS::Euler::JacobianValue< nVarsFixed >::SetFull ( ArrayDOFV< nVarsFixed > &  uDof,
Geom::tAdjPair cell2cell 
)
inline

Initialize storage for the full sparse block Jacobian following cell adjacency.

Parameters
uDofReference DOF array whose distribution layout is used for allocation.
cell2cellCell-to-cell adjacency pair defining the sparsity pattern.
Todo:
Implement actual allocation using the adjacency graph.

Definition at line 826 of file Euler.hpp.

Member Data Documentation

◆ diag

template<int nVarsFixed>
ArrayDOFV<nVarsFixed> DNDS::Euler::JacobianValue< nVarsFixed >::diag

Diagonal Jacobian values (one vector per cell).

Definition at line 792 of file Euler.hpp.

◆ diagBlock

template<int nVarsFixed>
ArrayEigenMatrix<nVarsFixed, nVarsFixed> DNDS::Euler::JacobianValue< nVarsFixed >::diagBlock

Block-diagonal Jacobian (one nVars x nVars matrix per cell).

Definition at line 794 of file Euler.hpp.

◆ diagBlockInv

template<int nVarsFixed>
ArrayEigenMatrix<nVarsFixed, nVarsFixed> DNDS::Euler::JacobianValue< nVarsFixed >::diagBlockInv

Inverse of block-diagonal Jacobian.

Definition at line 795 of file Euler.hpp.

◆ diagInv

template<int nVarsFixed>
ArrayDOFV<nVarsFixed> DNDS::Euler::JacobianValue< nVarsFixed >::diagInv

Inverse of diagonal Jacobian values.

Definition at line 793 of file Euler.hpp.

◆ offDiagBlock

template<int nVarsFixed>
ArrayRECV<nVarsFixed> DNDS::Euler::JacobianValue< nVarsFixed >::offDiagBlock

Off-diagonal blocks for full Jacobian (sparse, adjacency-based).

Definition at line 796 of file Euler.hpp.


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