BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
Units Namespace Reference

Description

Constants and functions for physical unit conversions.

In user code, quantities that have a physical dimension should always be given in the form value * unit, e.g. 0.529 * angstrom for a length, or 45 * deg for an angle.

Internally, BornAgain has length, angle, magnetic field units of nanometer, radians, Tesla. Therefore, in principle, the multipliers nm, rad, tesla could be ommited from code. However, to make code more readable, and to prevent misunderstandings, we recommend that physical dimension be always made clear by multiplying values with an appropriate constant, even if this expands to 1.

Functions

double deg2rad (double angle)
 
double rad2deg (double angle)
 

Variables

static constexpr double angstrom = 1.e-1 * nanometer
 
static constexpr double deg = (3.1415926535897932 / 180.0) * rad
 
static constexpr double gauss = 1e-4
 
static constexpr double micrometer = 1.e+3 * nanometer
 
static constexpr double millimeter = 1.e+6 * nanometer
 
static constexpr double nanometer = 1.
 Internal unit for lengths. More...
 
static constexpr double nm = nanometer
 
static constexpr double nm2 = nanometer * nanometer
 
static constexpr double rad = 1.
 Radian, internal unit for angles. More...
 
static constexpr double tesla = 1.
 Internal unit for magnetic fields. More...
 

Function Documentation

◆ deg2rad()

double Units::deg2rad ( double  angle)
inline

Definition at line 58 of file Units.h.

59 {
60  return angle * deg;
61 }
static constexpr double deg
Definition: Units.h:46

References deg.

Referenced by FormFactorComponents::FormFactorComponents(), and ExemplarySamples::createRotatedPyramids().

◆ rad2deg()

double Units::rad2deg ( double  angle)
inline

Variable Documentation

◆ angstrom

◆ deg

◆ gauss

constexpr double Units::gauss = 1e-4
staticconstexpr

Definition at line 50 of file Units.h.

Referenced by MisesGaussPeakShape::peakDistribution().

◆ micrometer

constexpr double Units::micrometer = 1.e+3 * nanometer
staticconstexpr

◆ millimeter

constexpr double Units::millimeter = 1.e+6 * nanometer
staticconstexpr

Definition at line 36 of file Units.h.

◆ nanometer

constexpr double Units::nanometer = 1.
staticconstexpr

Internal unit for lengths.

Definition at line 33 of file Units.h.

◆ nm

constexpr double Units::nm = nanometer
staticconstexpr

Definition at line 39 of file Units.h.

◆ nm2

constexpr double Units::nm2 = nanometer * nanometer
staticconstexpr

Definition at line 42 of file Units.h.

◆ rad

constexpr double Units::rad = 1.
staticconstexpr

Radian, internal unit for angles.

Definition at line 45 of file Units.h.

Referenced by Compute::Kz::computeReducedKz().

◆ tesla

constexpr double Units::tesla = 1.
staticconstexpr

Internal unit for magnetic fields.

Definition at line 49 of file Units.h.