BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Units.h
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Base/Const/Units.h
6 //! @brief Defines some unit conversion factors and other constants in namespace Units.
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************** //
14 
15 #ifndef BORNAGAIN_BASE_CONST_UNITS_H
16 #define BORNAGAIN_BASE_CONST_UNITS_H
17 
18 //! Constants and functions for physical unit conversions.
19 
20 namespace Units
21 {
22 
23 // Length
24 static constexpr double nanometer = 1.;
25 static constexpr double angstrom = 1.e-1 * nanometer;
26 static constexpr double micrometer = 1.e+3 * nanometer;
27 static constexpr double millimeter = 1.e+6 * nanometer;
28 static constexpr double meter = 1.e+9 * nanometer;
29 
30 // Symbols for length
31 static constexpr double nm = nanometer;
32 
33 // Area (cross-section)
34 static constexpr double nm2 = nanometer * nanometer;
35 static constexpr double barn = nanometer * nanometer * 1e-10;
36 
37 // Angle
38 static constexpr double radian = 1.;
39 static constexpr double milliradian = 1.e-3 * radian;
40 static constexpr double degree = (3.1415926535897932 / 180.0) * radian;
41 static constexpr double steradian = 1.;
42 
43 inline double rad2deg(double angle)
44 {
45  return angle / degree;
46 }
47 inline double deg2rad(double angle)
48 {
49  return angle * degree;
50 }
51 
52 // Symbols for (solid) angle
53 static constexpr double rad = radian;
54 static constexpr double mrad = milliradian;
55 static constexpr double sr = steradian;
56 static constexpr double deg = degree;
57 
58 // Magnetic field
59 static constexpr double tesla = 1.;
60 static constexpr double gauss = 1e-4;
61 
62 } // namespace Units
63 
64 #endif // BORNAGAIN_BASE_CONST_UNITS_H
Constants and functions for physical unit conversions.
Definition: Units.h:21
static constexpr double rad
Definition: Units.h:53
static constexpr double radian
Definition: Units.h:38
double deg2rad(double angle)
Definition: Units.h:47
static constexpr double deg
Definition: Units.h:56
static constexpr double micrometer
Definition: Units.h:26
static constexpr double nm
Definition: Units.h:31
static constexpr double gauss
Definition: Units.h:60
static constexpr double steradian
Definition: Units.h:41
static constexpr double milliradian
Definition: Units.h:39
static constexpr double nm2
Definition: Units.h:34
static constexpr double millimeter
Definition: Units.h:27
double rad2deg(double angle)
Definition: Units.h:43
static constexpr double angstrom
Definition: Units.h:25
static constexpr double sr
Definition: Units.h:55
static constexpr double degree
Definition: Units.h:40
static constexpr double nanometer
Definition: Units.h:24
static constexpr double meter
Definition: Units.h:28
static constexpr double tesla
Definition: Units.h:59
static constexpr double barn
Definition: Units.h:35
static constexpr double mrad
Definition: Units.h:54