|
SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
|
Describe the independently ordered physical state and residual coordinates of a discrete system. More...
#include <system_layout.hpp>
Public Types | |
| using | Values = std::remove_cvref_t<ValuesT> |
| The physical coordinates represented in the state vector. | |
| using | Residuals = std::remove_cvref_t<ResidualsT> |
| The physical coordinates represented in the residual vector. | |
| template<RepresentedValueKind Kind> | |
| using | Coordinates = std::conditional_t<Kind == RepresentedValueKind::value, Values, Residuals> |
| Select the coordinate tag at compile time based on the kind of the represented values selected (e.g. RepresentedValueKind::values or RepresentedValueKind::residuals). | |
Public Member Functions | |
| template<RepresentedValueKind Kind> requires (Kind == RepresentedValueKind::value || Kind == RepresentedValueKind::residual) | |
| std::span< const std::size_t > | sizes () const noexcept |
| Get the sizes of the physical coordinates for the requested kind. | |
| template<RepresentedValueKind Kind, typename Coordinate> requires utils::dependencies::ContainsKey<Coordinate, Coordinates<Kind>> | |
| std::size_t | size () const noexcept |
| Read the coefficient count for a physical coordinate. | |
| template<RepresentedValueKind Kind, typename Coordinate> requires utils::dependencies::ContainsKey<Coordinate, Coordinates<Kind>> | |
| std::size_t | offset () const |
| Locate a coordinate in packed storage, rejecting size overflow before creating a view. Note that this specifically locates the first coefficient of a coordinate, or the offset to where that coordinate's coefficients begin in packed storage. | |
| template<RepresentedValueKind Kind> requires (Kind == RepresentedValueKind::value || Kind == RepresentedValueKind::residual) | |
| std::size_t | total_size () const |
| Count all coefficients of one kind. | |
| bool | operator== (const SystemLayout &) const =default |
| Default equality comparison. | |
Static Public Member Functions | |
| template<RepresentedValueKind Kind, typename Coordinate> requires utils::dependencies::ContainsKey<Coordinate, Coordinates<Kind>> | |
| static consteval std::size_t | index () |
| Locate a physical identity on the requested side of the system. | |
Public Attributes | |
| std::array< std::size_t, utils::dependencies::key_count_v< Values > > | state_sizes |
| The coefficient counts for each physical coordinate in the state vector, in the order of Values. | |
| std::array< std::size_t, utils::dependencies::key_count_v< Residuals > > | residual_sizes |
| The coefficient counts for each physical coordinate in the residual vector, in the order of Residuals. | |
Describe the independently ordered physical state and residual coordinates of a discrete system.
| ValuesT | A KeyList of the physical coordinates represented in the state vector. |
| ResidualsT | A KeyList of the physical coordinates represented in the residual vector. |
| using serif::discretization::blocks::SystemLayout< ValuesT, ResidualsT >::Coordinates = std::conditional_t<Kind == RepresentedValueKind::value, Values, Residuals> |
Select the coordinate tag at compile time based on the kind of the represented values selected (e.g. RepresentedValueKind::values or RepresentedValueKind::residuals).
| Kind | The kind of represented values to select, e.g. RepresentedValueKind::values or RepresentedValueKind::residuals. |
| Requirements |
|---|
|
| using serif::discretization::blocks::SystemLayout< ValuesT, ResidualsT >::Residuals = std::remove_cvref_t<ResidualsT> |
The physical coordinates represented in the residual vector.
| using serif::discretization::blocks::SystemLayout< ValuesT, ResidualsT >::Values = std::remove_cvref_t<ValuesT> |
The physical coordinates represented in the state vector.
|
inlinestaticnodiscardconsteval |
Locate a physical identity on the requested side of the system.
| Kind | The kind of represented values to select, e.g. RepresentedValueKind::values or RepresentedValueKind::residuals. |
| Coordinate | The coordinate type to locate. |
| Requirements |
|---|
|
|
inlinenodiscard |
Locate a coordinate in packed storage, rejecting size overflow before creating a view. Note that this specifically locates the first coefficient of a coordinate, or the offset to where that coordinate's coefficients begin in packed storage.
| Kind | The kind of represented values to select, e.g. RepresentedValueKind::values or RepresentedValueKind::residuals. |
| Coordinate | The coordinate type to locate. |
| Requirements |
|---|
|
|
nodiscarddefault |
Default equality comparison.
|
inlinenodiscardnoexcept |
Read the coefficient count for a physical coordinate.
| Kind | The kind of represented values to select, e.g. RepresentedValueKind::values or RepresentedValueKind::residuals. |
| Coordinate | The coordinate type to locate. |
| Requirements |
|---|
|
|
inlinenodiscardnoexcept |
Get the sizes of the physical coordinates for the requested kind.
| Kind | The kind of represented values to select, e.g. RepresentedValueKind::values or RepresentedValueKind::residuals. |
| Requirements |
|---|
|
|
inlinenodiscard |
Count all coefficients of one kind.
| Kind | The kind of represented values to select, e.g. RepresentedValueKind::values or RepresentedValueKind::residuals. |
| std::array<std::size_t, utils::dependencies::key_count_v<Residuals> > serif::discretization::blocks::SystemLayout< ValuesT, ResidualsT >::residual_sizes |
The coefficient counts for each physical coordinate in the residual vector, in the order of Residuals.
| std::array<std::size_t, utils::dependencies::key_count_v<Values> > serif::discretization::blocks::SystemLayout< ValuesT, ResidualsT >::state_sizes |
The coefficient counts for each physical coordinate in the state vector, in the order of Values.