SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::solver::preconditioner::backend::mfem::detail::DirectLUPattern Class Referencefinal

Symbolic analysis (fill-reducing ordering) of one sparsity pattern, shared by the numeric factorizations of every matrix with that pattern. Implemented by the backend chosen with the sparse_direct Meson option (direct_lu_accelerate.cpp, direct_lu_umfpack.cpp or direct_lu_none.cpp). More...

#include <direct_lu.hpp>

Collaboration diagram for serif::solver::preconditioner::backend::mfem::detail::DirectLUPattern:
[legend]

Classes

struct  State
 

Public Member Functions

 ~DirectLUPattern ()
 
 DirectLUPattern (const DirectLUPattern &)=delete
 
DirectLUPattern & operator= (const DirectLUPattern &)=delete
 
bool matches (int size, const long *column_starts, const int *row_indices) const
 True when a matrix has exactly this size, column starts and row indices.
 

Static Public Member Functions

static std::shared_ptr< const DirectLUPattern > analyze (int size, const long *column_starts, const int *row_indices, const double *values, int &status)
 Analyze a square matrix in compressed columns; the arrays are copied. Empty on failure, with a backend status.
 

Private Member Functions

 DirectLUPattern (std::unique_ptr< State > state)
 

Private Attributes

std::unique_ptr< State > m_state
 

Friends

class DirectLU
 

Detailed Description

Symbolic analysis (fill-reducing ordering) of one sparsity pattern, shared by the numeric factorizations of every matrix with that pattern. Implemented by the backend chosen with the sparse_direct Meson option (direct_lu_accelerate.cpp, direct_lu_umfpack.cpp or direct_lu_none.cpp).

Note
No backend type appears here: Accelerate's headers are not valid C++26 and are confined to a C++20 translation unit. A numeric factorization from a reused analysis equals a fresh factorization bit for bit (measured for both backends on potential blocks from different Newton states).

Constructor & Destructor Documentation

◆ ~DirectLUPattern()

serif::solver::preconditioner::backend::mfem::detail::DirectLUPattern::~DirectLUPattern ( )
default

◆ DirectLUPattern() [1/2]

serif::solver::preconditioner::backend::mfem::detail::DirectLUPattern::DirectLUPattern ( const DirectLUPattern & )
delete

◆ DirectLUPattern() [2/2]

serif::solver::preconditioner::backend::mfem::detail::DirectLUPattern::DirectLUPattern ( std::unique_ptr< State > state)
explicitprivate

Member Function Documentation

◆ analyze()

std::shared_ptr< const DirectLUPattern > serif::solver::preconditioner::backend::mfem::detail::DirectLUPattern::analyze ( int size,
const long * column_starts,
const int * row_indices,
const double * values,
int & status )
staticnodiscard

Analyze a square matrix in compressed columns; the arrays are copied. Empty on failure, with a backend status.

◆ matches()

bool serif::solver::preconditioner::backend::mfem::detail::DirectLUPattern::matches ( int size,
const long * column_starts,
const int * row_indices ) const
nodiscard

True when a matrix has exactly this size, column starts and row indices.

◆ operator=()

DirectLUPattern & serif::solver::preconditioner::backend::mfem::detail::DirectLUPattern::operator= ( const DirectLUPattern & )
delete

Friends And Related Symbol Documentation

◆ DirectLU

friend class DirectLU
friend

Member Data Documentation

◆ m_state

std::unique_ptr<State> serif::solver::preconditioner::backend::mfem::detail::DirectLUPattern::m_state
private

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