SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
dimensions Directory Reference
Directory dependency graph for dimensions:

Files

 dimensions.hpp
 File containing prue dimensions. Note that this is not intended to be (nor does it have the capability to be) a general dimensional analysis library. There is no understanding here that, for example, a dimension of length^2 is an area. Rather, the purpose of this is to force developers to be explicit about what values they are passing to what functions. Further, most of this system is built to be compile time constant. This means that the compiler can still apply many optimizations. Note that the dimensions here do not contain a value, rather these are just the concept of a dimension. To store a value you must use a Quantity and QuantityValue.
 
 partial.hpp
 Compile time tools to represent a partial derivative of one quantity wrt. another quantity. Note that this system is not responsible for computing partials or in fact derivatives of any kind. Rather, it is responsible for forcing the developer — or compiler at least — to ask for a specific, explicit, partial and have to spell out what that is. That in turn gives the compiler enough information to do a lot of downstream things. A motivating example would be automatic verification of the provided EOS against all partials that might be needed to ensure they are all exported by the EOS.
 
 quantities.hpp
 This file contains the code to associate numeric data to a dimension. We call this a Quantity and a QuantityValue.
 
 type_alias.hpp
 This file contains type aliases for the dimensions and quantities used in the discretization. This is solely useful in so far as it means we do not need to type out the longer QuantityValue<Dimension> type for each of the dimensions and quantities used in the discretization. This is a convenience file that is used to make the code more readable and maintainable.