SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::eos Namespace Reference

Namespaces

namespace  models
 
namespace  relations
 

Classes

class  EOSEvaluationError
 An exception class to represent errors that occur during the evaluation of an EOS model. This class inherits from std::domain_error and is used to provide a more specific exception type for EOS evaluation errors. More...
 

Functions

template<dimensions::ThermodynamicQuantityType OutputQ, models::EOSModel EOS, dimensions::QuantityValueType... InputValues>
requires models::EOSSupportingRelation<EOS, relations::Relation<OutputQ, dimensions::QuantityOfT<InputValues>...>>
constexpr dimensions::QuantityValue< OutputQ > evaluate (const EOS &eos, const InputValues... inputValues) noexcept(noexcept(eos.evaluate(relations::Relation< OutputQ, dimensions::QuantityOfT< InputValues >... >{}, inputValues...)))
 Evaluates a relation for a given EOS model. This function is used to evaluate relations for a given EOS model.
 
template<dimensions::ThermodynamicQuantityType OutputQ, dimensions::ThermodynamicQuantityType InputQ, models::EOSModel EOS, dimensions::QuantityValueType... InputValues>
requires models::EOSSupportingPartialDerivative<EOS, relations::Relation<OutputQ, dimensions::QuantityOfT<InputValues>...>, InputQ>
constexpr dimensions::PartialDerivative< OutputQ, InputQ > partial_derivative (const EOS &eos, const InputValues... inputValues) noexcept(noexcept(eos.partial_derivative(relations::Relation< OutputQ, dimensions::QuantityOfT< InputValues >... >{}, dimensions::WithRespectTo< InputQ >{}, inputValues...)))
 Evaluates a partial derivative of a relation for a given EOS model. This function is used to evaluate partial derivatives of relations for a given EOS model.
 
template<dimensions::ThermodynamicQuantityType OutputQ, dimensions::ThermodynamicQuantityType FirstInput, dimensions::ThermodynamicQuantityType SecondInput, models::EOSModel EOS, dimensions::QuantityValueType... InputValues>
requires models::EOSSupportingSecondPartialDerivative<EOS, relations::Relation<OutputQ, dimensions::QuantityOfT<InputValues>...>, FirstInput, SecondInput>
constexpr dimensions::SecondPartialDerivative< OutputQ, FirstInput, SecondInput > second_partial_derivative (const EOS &eos, const InputValues... inputValues) noexcept(noexcept(eos.second_partial_derivative(relations::Relation< OutputQ, dimensions::QuantityOfT< InputValues >... >{}, dimensions::WithRespectTo< FirstInput >{}, dimensions::WithRespectTo< SecondInput >{}, inputValues...)))
 Dispatch an analytic second partial without imposing an EOS-specific state.
 

Function Documentation

◆ evaluate()

template<dimensions::ThermodynamicQuantityType OutputQ, models::EOSModel EOS, dimensions::QuantityValueType... InputValues>
requires models::EOSSupportingRelation<EOS, relations::Relation<OutputQ, dimensions::QuantityOfT<InputValues>...>>
dimensions::QuantityValue< OutputQ > serif::eos::evaluate ( const EOS & eos,
const InputValues... inputValues )
nodiscardconstexprnoexcept

Evaluates a relation for a given EOS model. This function is used to evaluate relations for a given EOS model.

Template Parameters
OutputQThe output quantity type to evaluate.
InputValuesThe input values to use for evaluation.
Parameters
eosThe EOS model instance to use for evaluation.
inputValuesThe input values to use for evaluation.
Returns
The result of the evaluation.
Note
this is generally the function you want to call to evaluate a model as it will automatically dispatch to the correct relation.

◆ partial_derivative()

template<dimensions::ThermodynamicQuantityType OutputQ, dimensions::ThermodynamicQuantityType InputQ, models::EOSModel EOS, dimensions::QuantityValueType... InputValues>
requires models::EOSSupportingPartialDerivative<EOS, relations::Relation<OutputQ, dimensions::QuantityOfT<InputValues>...>, InputQ>
dimensions::PartialDerivative< OutputQ, InputQ > serif::eos::partial_derivative ( const EOS & eos,
const InputValues... inputValues )
nodiscardconstexprnoexcept

Evaluates a partial derivative of a relation for a given EOS model. This function is used to evaluate partial derivatives of relations for a given EOS model.

Template Parameters
OutputQThe output quantity type to evaluate.
InputQThe input quantity type to take the partial derivative with respect to.
InputValuesThe input values to use for evaluation.
Parameters
eosThe EOS model instance to use for evaluation.
inputValuesThe input values to use for evaluation.
Returns
The result of the evaluation.
Note
this is generally the function you want to call to evaluate a model's partial derivative as it will automatically dispatch to the correct relation and partial derivative.

◆ second_partial_derivative()

template<dimensions::ThermodynamicQuantityType OutputQ, dimensions::ThermodynamicQuantityType FirstInput, dimensions::ThermodynamicQuantityType SecondInput, models::EOSModel EOS, dimensions::QuantityValueType... InputValues>
requires models::EOSSupportingSecondPartialDerivative<EOS, relations::Relation<OutputQ, dimensions::QuantityOfT<InputValues>...>, FirstInput, SecondInput>
dimensions::SecondPartialDerivative< OutputQ, FirstInput, SecondInput > serif::eos::second_partial_derivative ( const EOS & eos,
const InputValues... inputValues )
nodiscardconstexprnoexcept

Dispatch an analytic second partial without imposing an EOS-specific state.