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

Classes

class  DirectLU
 
class  DirectLUPattern
 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...
 

Functions

template<utils::errors::SERiFErrorCode Code, typename... Arguments>
std::unexpected< Failure > failure (const std::string_view message, Arguments... arguments)
 Keep preparation failures typed while using the common SERiF diagnostic formatter.
 
std::expected< void, Failure > check_square (const ::mfem::Operator *operation)
 Validate a nonempty square inverse input without dereferencing a missing operator.
 
bool vectors_overlap (const ::mfem::Vector &first, const ::mfem::Vector &second)
 Detect exact or partial overlap without comparing unrelated pointers with built-in ordering.
 
void copy_coordinates (const ::mfem::Vector &input, ::mfem::Vector &output)
 Copy equal-sized host coordinates safely even when their buffers overlap.
 
void require_application_size (const ::mfem::Operator &operation, const ::mfem::Vector &input, const ::mfem::Vector &output)
 Guard caller-owned vector dimensions before a fixed-size, allocation-stable action.
 
std::expected< Inverse, Failure > try_coupled_inverse (Inverse first, Inverse second, TwoBlockCouplings couplings, strategies::coupling::CouplingOrder order, OperatorHandle first_response)
 Supply a prepared first-inverse response to the second unknowns when that inverse is fixed linear.
 
const char * direct_lu_backend () noexcept
 The compiled backend: "accelerate", "umfpack" or "none".
 
bool direct_lu_available () noexcept
 True when the compiled backend can factor on this machine (Accelerate also needs macOS 15.5 at run time).
 

Function Documentation

◆ check_square()

std::expected< void, Failure > serif::solver::preconditioner::backend::mfem::detail::check_square ( const ::mfem::Operator * operation)
nodiscard

Validate a nonempty square inverse input without dereferencing a missing operator.

◆ copy_coordinates()

void serif::solver::preconditioner::backend::mfem::detail::copy_coordinates ( const ::mfem::Vector & input,
::mfem::Vector & output )

Copy equal-sized host coordinates safely even when their buffers overlap.

◆ direct_lu_available()

bool serif::solver::preconditioner::backend::mfem::detail::direct_lu_available ( )
nodiscardnoexcept

True when the compiled backend can factor on this machine (Accelerate also needs macOS 15.5 at run time).

◆ direct_lu_backend()

const char * serif::solver::preconditioner::backend::mfem::detail::direct_lu_backend ( )
nodiscardnoexcept

The compiled backend: "accelerate", "umfpack" or "none".

◆ failure()

template<utils::errors::SERiFErrorCode Code, typename... Arguments>
std::unexpected< Failure > serif::solver::preconditioner::backend::mfem::detail::failure ( const std::string_view message,
Arguments... arguments )
nodiscard

Keep preparation failures typed while using the common SERiF diagnostic formatter.

◆ require_application_size()

void serif::solver::preconditioner::backend::mfem::detail::require_application_size ( const ::mfem::Operator & operation,
const ::mfem::Vector & input,
const ::mfem::Vector & output )

Guard caller-owned vector dimensions before a fixed-size, allocation-stable action.

◆ try_coupled_inverse()

std::expected< Inverse, Failure > serif::solver::preconditioner::backend::mfem::detail::try_coupled_inverse ( Inverse first,
Inverse second,
TwoBlockCouplings couplings,
strategies::coupling::CouplingOrder order,
OperatorHandle first_response )
nodiscard

Supply a prepared first-inverse response to the second unknowns when that inverse is fixed linear.

◆ vectors_overlap()

bool serif::solver::preconditioner::backend::mfem::detail::vectors_overlap ( const ::mfem::Vector & first,
const ::mfem::Vector & second )
nodiscard

Detect exact or partial overlap without comparing unrelated pointers with built-in ordering.