SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
ordering.hpp File Reference
Include dependency graph for ordering.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::solver::preconditioner::keys::Preconditioner
 
struct  serif::solver::preconditioner::computations::detail::PhysicalSources< utils::dependencies::KeyList< Keys... > >
 

Namespaces

namespace  serif
 
namespace  serif::solver
 
namespace  serif::solver::preconditioner
 
namespace  serif::solver::preconditioner::keys
 
namespace  serif::solver::preconditioner::computations
 
namespace  serif::solver::preconditioner::computations::detail
 

Typedefs

using serif::solver::preconditioner::keys::Layout = discretization::blocks::keys::Layout
 Preconditioning consumes the same coordinate layout as every other numerical service.
 

Functions

template<discretization::blocks::RepresentedValueKind Kind, typename Layout, typename... Coordinates>
std::size_t serif::solver::preconditioner::computations::selected_size (const Layout &layout, utils::dependencies::KeyList< Coordinates... >)
 Count the declared coordinates of a selected physical block.
 
template<typename Key, typename Layout>
std::expected< void, Failure > serif::solver::preconditioner::computations::validate_physical_layout (const Layout &layout, const operators::backend::mfem::LinearizedBlock &block)
 Detect incorrect per-field sizes even when the total packed dimensions happen to agree.
 
template<discretization::blocks::RepresentedValueKind Kind, typename Layout, typename... Coordinates>
std::expected< std::vector< int >, Failure > serif::solver::preconditioner::computations::ordered_indices (const Layout &layout, utils::dependencies::KeyList< Coordinates... >)
 Map each root coefficient to the recipe's explicit subsystem ordering.
 
template<typename Recipe, typename Layout, typename... PhysicalKeys>
auto serif::solver::preconditioner::computations::ordering (utils::dependencies::KeyList< PhysicalKeys... >)
 Bind one inverse to independently ordered state and residual vectors through the common layout.
 

Variables

template<typename Key>
constexpr bool serif::solver::preconditioner::computations::detail::is_physical_block = false
 
template<typename Rows, typename Values>
constexpr bool serif::solver::preconditioner::computations::detail::is_physical_block< operators::PhysicalBlock< Rows, Values > > = true