Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
sparse_lu.h File Reference

Static-pattern sparse LU of the reactor's Newton matrix for large mechanisms, with the dense rank-one part of the Jacobian (third bodies and pressure-dependent rates) by Sherman-Morrison. More...

#include <algorithm>
#include <array>
#include <cstdint>
#include <type_traits>
#include <vector>
#include <Kokkos_Core.hpp>
#include "kinetics.h"
#include "lanes.h"
#include "mechanism.h"

Go to the source code of this file.

Classes

struct  chemistry::SparseLUPattern< MemorySpace >
 The pattern of a reactor Jacobian in (Y_1 .. Y_Ns, T) without its rank-one part, an elimination order, the fill of its LU factors and the operations of a factorization without pivoting, on the device. More...
 
struct  chemistry::SparseLU< MemorySpace >
 The linear solver of integrate() for SparseLUPattern: factor() gathers diagonal I - J_s from the compact Jacobian and factors it, then z = A_s^-1 u and beta = 1 - v . z; solve() is A_s^-1 b plus the Sherman-Morrison correction z (v . A_s^-1 b) / beta. More...
 

Namespaces

namespace  chemistry
 

Functions

template<typename MemorySpace = Kokkos::DefaultExecutionSpace::memory_space>
SparseLUPattern< MemorySpace > chemistry::make_sparse_lu_pattern (const Mechanism &mechanism)
 Build the pattern for a mechanism's reactor Jacobian (see SparseLUPattern).
 

Detailed Description

Static-pattern sparse LU of the reactor's Newton matrix for large mechanisms, with the dense rank-one part of the Jacobian (third bodies and pressure-dependent rates) by Sherman-Morrison.

Author
Matthew Bonanni (mbona.nosp@m.nni0.nosp@m.01@gm.nosp@m.ail..nosp@m.com)
Version
0.3
Date
2026-10-03