SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::operators::LinearizedSystemView< Layout, Blocks > Class Template Referencefinal

Borrow an accepted collection of physical blocks and its independently ordered system layout. More...

#include <linearized_system_view.hpp>

Public Types

using LayoutType = std::remove_cvref_t<Layout>
 
using BlockSources = std::remove_cvref_t<Blocks>
 

Public Member Functions

 LinearizedSystemView (const LayoutType &layout, const BlockSources &blocks)
 Both owners must outlive the view and remain at this accepted linearization while it is used.
 
 LinearizedSystemView (const LayoutType &&, const BlockSources &)=delete
 A borrowed system cannot retain temporary coordinate metadata.
 
 LinearizedSystemView (const LayoutType &, const BlockSources &&)=delete
 A borrowed system cannot retain temporary block sources.
 
template<typename Rows, typename Values>
requires utils::dependencies::BindingsWithBinding<typename BlockSources::Bindings, PhysicalBlock<Rows, Values>>
const auto & block () const
 Access a declared physical coupling; absent blocks are compile-time errors.
 
const LayoutType & layout () const noexcept
 Access the shared coordinate description without taking ownership.
 
const BlockSources & blocks () const noexcept
 Supply accepted block sources to ordinary dependency preparation.
 

Private Attributes

const LayoutType & m_layout
 
const BlockSources & m_blocks
 

Detailed Description

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
class serif::operators::LinearizedSystemView< Layout, Blocks >

Borrow an accepted collection of physical blocks and its independently ordered system layout.

Member Typedef Documentation

◆ BlockSources

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
using serif::operators::LinearizedSystemView< Layout, Blocks >::BlockSources = std::remove_cvref_t<Blocks>

◆ LayoutType

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
using serif::operators::LinearizedSystemView< Layout, Blocks >::LayoutType = std::remove_cvref_t<Layout>

Constructor & Destructor Documentation

◆ LinearizedSystemView() [1/3]

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
serif::operators::LinearizedSystemView< Layout, Blocks >::LinearizedSystemView ( const LayoutType & layout,
const BlockSources & blocks )
inline

Both owners must outlive the view and remain at this accepted linearization while it is used.

◆ LinearizedSystemView() [2/3]

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
serif::operators::LinearizedSystemView< Layout, Blocks >::LinearizedSystemView ( const LayoutType && ,
const BlockSources &  )
delete

A borrowed system cannot retain temporary coordinate metadata.

◆ LinearizedSystemView() [3/3]

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
serif::operators::LinearizedSystemView< Layout, Blocks >::LinearizedSystemView ( const LayoutType & ,
const BlockSources &&  )
delete

A borrowed system cannot retain temporary block sources.

Member Function Documentation

◆ block()

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
template<typename Rows, typename Values>
requires utils::dependencies::BindingsWithBinding<typename BlockSources::Bindings, PhysicalBlock<Rows, Values>>
const auto & serif::operators::LinearizedSystemView< Layout, Blocks >::block ( ) const
inlinenodiscard

Access a declared physical coupling; absent blocks are compile-time errors.

◆ blocks()

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
const BlockSources & serif::operators::LinearizedSystemView< Layout, Blocks >::blocks ( ) const
inlinenodiscardnoexcept

Supply accepted block sources to ordinary dependency preparation.

◆ layout()

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
const LayoutType & serif::operators::LinearizedSystemView< Layout, Blocks >::layout ( ) const
inlinenodiscardnoexcept

Access the shared coordinate description without taking ownership.

Member Data Documentation

◆ m_blocks

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
const BlockSources& serif::operators::LinearizedSystemView< Layout, Blocks >::m_blocks
private

◆ m_layout

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
const LayoutType& serif::operators::LinearizedSystemView< Layout, Blocks >::m_layout
private

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