Reactions  0.1.2
Handling reaction trees and decays
Classes | Namespaces | Typedefs | Functions | Variables
units.hpp File Reference

Definition of units. More...

#include "reactions/exceptions.hpp"
#include "reactions/pow_enum.hpp"
#include <string>
#include <type_traits>
Include dependency graph for units.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  reactions::units::none
 Represent the abscence of units. More...
 
struct  reactions::units::reference< Units, U >
 Use the template argument as a reference to determine scale factors. More...
 
struct  reactions::units::reference< energy_units, U >
 Use the template argument as a reference to determine scale factors. More...
 
struct  reactions::units::reference< time_units, U >
 Use the template argument as a reference to determine scale factors. More...
 
struct  reactions::units::is_type_affected_by_units< T >
 Whether a type can be affected by units. More...
 
struct  reactions::units::has_units< Field, Subfield >
 Whether a subfield must be modified due to the presence of units. More...
 
struct  reactions::units::has_units< Field >
 Whether a subfield must be modified due to the presence of units. More...
 
struct  reactions::units::return_type< Field, Subfield >
 The return type after taking into account the possible units. More...
 
struct  reactions::units::accessor_t< Field, Subfield >
 Object to access fields. More...
 
struct  reactions::units::accessor_t< Field >
 Object to access fields. More...
 
struct  reactions::units::accessor_t< Field, Subfield, S... >
 Object to access fields. More...
 
struct  reactions::units::accessor_with_units_t< Field, Subfield >
 Object to access fields and process the units. More...
 

Namespaces

 reactions
 Main namespace of the Reactions package.
 
 reactions::units
 Contain functions to determine the scale factors for the given units Units are handled by multiplying values returned by the elements of the reactions by a factor that depends on the unit used as a reference.
 

Typedefs

template<class Field , class... Subfield>
using reactions::units::return_type_t = typename return_type< Field, Subfield... >::type
 The return type after taking into account the possible units. More...
 

Functions

 reactions::REACTIONS_POW_ENUM_WITH_UNKNOWN (energy_units, eV, keV, MeV, GeV, TeV, PeV)
 Energy units. More...
 
 reactions::REACTIONS_POW_ENUM_WITH_UNKNOWN (time_units, ys, zs, as, fs, ps, ns, us, ms, sec, min, hour, day, year, ky, My, Gy, Ty, Py, Ey, Zy, Yy)
 Time units. More...
 
auto reactions::units::scale_factor_for (energy_units u)
 Compute the scale factor for the given unit. More...
 
auto reactions::units::scale_factor_for (time_units u)
 Compute the scale factor for the given unit. More...
 

Variables

template<class T >
static constexpr auto reactions::units::is_type_affected_by_units_v
 Whether a type can be affected by units. More...
 
template<class Field , class... Subfield>
static constexpr auto reactions::units::has_units_v = has_units<Field, Subfield...>::value
 Whether a subfield must be modified due to the presence of units. More...
 
template<class Field , class... Subfield>
static constexpr accessor_t< Field, Subfield... > reactions::units::accessor
 Static object to access the fields of a tuple-like object. More...
 
template<class Field , class... Subfield>
static constexpr accessor_with_units_t< Field, Subfield... > reactions::units::accessor_with_units
 Static object to access the fields of a tuple-like object. More...
 

Detailed Description

Definition of units.