SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
traits.hpp File Reference

File containing the traits for the eos module. These traits are used to determine if a type is an equation of state model and if it supports a given relation or partial derivative. More...

Include dependency graph for traits.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::eos::models::ImplementsRelation_t< EOS, RelationT >
 A trait to determine if a type is an equation of state model. This is the default false specialization. More...
 
struct  serif::eos::models::ImplementsRelationCatalog_t< EOS, Output, Inputs >
 A specialization of the ImplementsRelation_t trait for a relation. This is used to determine if an EOS type implements a given relation. More...
 
struct  serif::eos::models::ImplementsRelationCatalog_t< EOS, relations::RelationCatalog< Relations... > >
 A specialization of the ImplementsRelationCatalog_t trait for a relation catalog. This is used to determine if an EOS type implements all relations in a given relation catalog. More...
 
struct  serif::eos::models::IsEquationOfStateModel_t< EOSCandidate, typename >
 A trait to determine if a type is an equation of state model. This is the default false specialization. More...
 
struct  serif::eos::models::IsEquationOfStateModel_t< EOSCandidate, std::void_t< typename std::remove_cvref_t< EOSCandidate >::Relations > >
 A specialization of the IsEquationOfStateModel_t trait for a type that has a Relations type alias. A candidate is an equation of state model if it has a valid relation catalog and implements all relations in that catalog. More...
 
struct  serif::eos::models::ImplementsPartialDerivative_t< EOS, RelationT, InputQuantity >
 A trait to determine if a type implements a partial derivative for a given relation and input quantity. This is the default false specialization. More...
 
struct  serif::eos::models::ImplementsSecondPartialDerivative_t< EOS, RelationT, FirstInput, SecondInput >
 A second partial is available only for two actual inputs of the relation. More...
 

Namespaces

namespace  serif
 
namespace  serif::eos
 
namespace  serif::eos::models
 

Variables

template<typename EOSCandidate>
constexpr bool serif::eos::models::is_equation_of_state_model_v = IsEquationOfStateModel_t<std::remove_cvref_t<EOSCandidate>>::value
 A specialization of the ImplementsPartialDerivative_t trait for a relation and input quantity. This is used to determine if an EOS type implements a partial derivative for a given relation and input quantity.
 
template<typename EOS, typename RelationT>
constexpr bool serif::eos::models::supports_relation_v = is_equation_of_state_model_v<EOS> && ImplementsRelation_t<std::remove_cvref_t<EOS>, std::remove_cvref_t<RelationT>>::value
 Require an analytic implementation with the exact physical return type.
 
template<typename EOS, typename RelationT, typename InputQuantity>
constexpr bool serif::eos::models::supports_partial_derivative_v = is_equation_of_state_model_v<EOS> && ImplementsPartialDerivative_t<std::remove_cvref_t<EOS>, std::remove_cvref_t<RelationT>, InputQuantity>::value
 A variable template to determine if an EOS type supports a partial derivative for a given relation and input quantity.
 

Detailed Description

File containing the traits for the eos module. These traits are used to determine if a type is an equation of state model and if it supports a given relation or partial derivative.

Author
Emily M. Boudreaux