SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
diagonal.hpp File Reference
#include <cstddef>
#include <expected>
#include <span>
#include <string>
#include <vector>
#include "serif/discretization/blocks/base.hpp"
Include dependency graph for diagonal.hpp:
This graph shows which files directly or indirectly include this file:

Classes

class  serif::solver::normalization::DiagonalNormalization
 Own the frozen, independent state and residual transformations used by one solve. More...
 

Namespaces

namespace  serif
 
namespace  serif::solver
 
namespace  serif::solver::normalization
 
namespace  serif::solver::normalization::detail
 

Functions

void serif::solver::normalization::detail::require_normalization_size (std::size_t received, std::size_t expected)
 Require matching coordinate sizes before any output is modified.
 
void serif::solver::normalization::detail::apply_normalization (std::span< const double > factors, std::span< const double > input, std::span< double > output, bool inverse)
 Apply a diagonal in place or to disjoint storage, rejecting partial overlap.
 
std::expected< double, std::string > serif::solver::normalization::make_riesz_factor (discretization::blocks::RepresentedValueKind kind, double metric, double physical_scale)
 Prepare one primal sqrt(metric)/scale or dual 1/(scale sqrt(metric)) factor.
 
std::expected< std::vector< double >, std::string > serif::solver::normalization::make_riesz_factors (discretization::blocks::RepresentedValueKind kind, std::span< const double > metric, double physical_scale)
 Prepare diagonal Riesz factors, reporting which coordinate has invalid data.
 
std::expected< DiagonalNormalization, std::string > serif::solver::normalization::make_diagonal_normalization (std::vector< double > state, std::vector< double > residual)
 Validate and freeze independent coordinate factors, including empty or rectangular systems.