include/meltpooldg/utilities/numbers.hpp Source File

Developer Documentation: include/meltpooldg/utilities/numbers.hpp Source File
Developer Documentation
numbers.hpp
Go to the documentation of this file.
1#pragma once
2
4{
5 // @note We did not use std::numeric_limits<double>::lowest() on purpose.
6 // @p invalid_double should serve as a default value for an optional parameter.
7 // During parsing, the ParameterHandler converts the default value (e.g.
8 // set to invalid_double) to a string via Patterns::Tools::to_string<double>()
9 // and then back to a double value. This entails a loss in the number of decimal
10 // places and thus round-off errors.
11 constexpr double invalid_double = -1e100;
12
13 // Check if a @p number is invalid, if @p number is smaller or equal to
14 // numbers::invalid_double.
15 inline bool
16 is_invalid(const double &number)
17 {
18 return number <= invalid_double;
19 }
20
32 template <typename number>
33 number
34 compute_angle_in_radians(const number angle_deg)
35 {
36 return angle_deg * number(dealii::numbers::PI / 180.0);
37 }
38
40 constexpr double sqrt_pi = std::sqrt(dealii::numbers::PI);
41} // namespace MeltPoolDG::numbers
Definition numbers.hpp:4
number compute_angle_in_radians(const number angle_deg)
Convert an angle from degrees to radians.
Definition numbers.hpp:34
bool is_invalid(const double &number)
Definition numbers.hpp:16
constexpr double sqrt_pi
Square root of pi.
Definition numbers.hpp:40
constexpr double invalid_double
Definition numbers.hpp:11