BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Units Namespace Reference

Constants and functions for physical unit conversions. More...

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...
 

Detailed 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.

Function Documentation

◆ deg2rad()

◆ rad2deg()

Variable Documentation

◆ angstrom

◆ deg

constexpr double Units::deg = (3.1415926535897932 / 180.0) * rad
staticconstexpr

Definition at line 46 of file Units.h.

Referenced by SphericalDetectorItem::axesToDomainUnitsFactor(), StandardSimulations::BasicDepthProbe(), StandardSimulations::BasicGISAS(), StandardSimulations::BasicSpecular(), StandardSimulations::BasicSpecularQ(), BoxCompositionRotateXBuilder::buildSample(), BoxCompositionRotateYBuilder::buildSample(), BoxCompositionRotateZBuilder::buildSample(), BoxCompositionRotateZandYBuilder::buildSample(), BoxStackCompositionBuilder::buildSample(), CoreShellBoxRotateZandYBuilder::buildSample(), CustomMorphologyBuilder::buildSample(), FeNiBilayerSpinFlipBuilder::buildSample(), FeNiBilayerSpinFlipTanhBuilder::buildSample(), FeNiBilayerSpinFlipNCBuilder::buildSample(), Lattice1DBuilder::buildSample(), LayersWithAbsorptionBuilder::buildSample(), LayersWithAbsorptionBySLDBuilder::buildSample(), MagneticRotationBuilder::buildSample(), Basic2DParaCrystalBuilder::buildSample(), RotatedPyramidsDistributionBuilder::buildSample(), ConesWithLimitsDistributionBuilder::buildSample(), RotatedPyramidsBuilder::buildSample(), SlicedCompositionBuilder::buildSample(), TransformBoxBuilder::buildSample(), Basic2DLatticeBuilder::buildSample(), RotatedSquareLattice2DBuilder::buildSample(), AnisoPyramidItem::createFormFactor(), ConeItem::createFormFactor(), Cone6Item::createFormFactor(), CuboctahedronItem::createFormFactor(), PyramidItem::createFormFactor(), TetrahedronItem::createFormFactor(), ParticleDistributionItem::createParticleDistribution(), DepthProbeInstrumentItem::createSimulation(), DomainObjectBuilder::createUnitConverter(), deg2rad(), StandardSimulations::ExtraLongWavelengthGISAS(), StandardSimulations::GISASWithMasks(), StandardSimulations::IsGISAXSSimulation1(), StandardSimulations::IsGISAXSSimulation2(), StandardSimulations::MaxiGISAS(), StandardSimulations::MiniGISAS(), StandardSimulations::MiniGISAS_v2(), StandardSimulations::MiniGISASBeamDivergence(), StandardSimulations::MiniGISASFit(), StandardSimulations::MiniGISASSpecularPeak(), StandardSimulations::MiniOffSpecular(), rad2deg(), StandardSimulations::RectDetectorGeneric(), StandardSimulations::RectDetectorPerpToDirectBeam(), StandardSimulations::RectDetectorPerpToReflectedBeam(), StandardSimulations::RectDetectorPerpToReflectedBeamDpos(), StandardSimulations::RectDetectorPerpToSample(), BeamAzimuthalAngleItem::scaleFactor(), BeamInclinationAngleItem::scaleFactor(), SpecularBeamInclinationItem::scaleFactor(), TransformFromDomain::setDetectorMasks(), TransformFromDomain::setDetectorResolution(), TransformFromDomain::setParticleDistributionItem(), TransformFromDomain::setSpecularBeamItem(), StandardSimulations::SpecularDivergentBeam(), StandardSimulations::SpecularWithGaussianBeam(), StandardSimulations::SpecularWithSquareBeam(), and StandardSimulations::SphericalDetWithRoi().

◆ gauss

◆ micrometer

◆ 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.

Referenced by DesignerHelper::nanometerToScreen().

◆ nm

constexpr double Units::nm = nanometer
staticconstexpr

Definition at line 39 of file Units.h.

Referenced by InterferenceFunction1DLatticeItem::InterferenceFunction1DLatticeItem(), InterferenceFunctionHardDiskItem::InterferenceFunctionHardDiskItem(), InterferenceFunctionRadialParaCrystalItem::InterferenceFunctionRadialParaCrystalItem(), StandardSimulations::BasicDepthProbe(), BoxesSquareLattice2DBuilder::buildSample(), CoreShellParticleBuilder::buildSample(), CoreShellBoxRotateZandYBuilder::buildSample(), CustomMorphologyBuilder::buildSample(), Lattice1DBuilder::buildSample(), LayersWithAbsorptionBuilder::buildSample(), LayersWithAbsorptionBySLDBuilder::buildSample(), MagneticSubstrateZeroFieldBuilder::buildSample(), MagneticRotationBuilder::buildSample(), MagneticParticleZeroFieldBuilder::buildSample(), MagneticCylindersBuilder::buildSample(), MagneticSpheresBuilder::buildSample(), MultiLayerWithRoughnessBuilder::buildSample(), MultipleLayoutBuilder::buildSample(), RadialParaCrystalBuilder::buildSample(), Basic2DParaCrystalBuilder::buildSample(), HexParaCrystalBuilder::buildSample(), RectParaCrystalBuilder::buildSample(), ParticleCompositionBuilder::buildSample(), CylindersWithSizeDistributionBuilder::buildSample(), SpheresWithLimitsDistributionBuilder::buildSample(), ConesWithLimitsDistributionBuilder::buildSample(), LinkedBoxDistributionBuilder::buildSample(), HardDiskBuilder::buildSample(), ResonatorBuilder::buildSample(), RotatedPyramidsBuilder::buildSample(), SizeDistributionDAModelBuilder::buildSample(), SizeDistributionLMAModelBuilder::buildSample(), SizeDistributionSSCAModelBuilder::buildSample(), CylindersInSSCABuilder::buildSample(), Basic2DLatticeBuilder::buildSample(), SquareLattice2DBuilder::buildSample(), CenteredSquareLattice2DBuilder::buildSample(), RotatedSquareLattice2DBuilder::buildSample(), FiniteSquareLattice2DBuilder::buildSample(), SuperLatticeBuilder::buildSample(), TwoLayerRoughnessBuilder::buildSample(), StandardSimulations::ExtraLongWavelengthGISAS(), and RealSpace::Geometry::makeMesh().

◆ 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 KzComputation::computeReducedKz().

◆ tesla

constexpr double Units::tesla = 1.
staticconstexpr

Internal unit for magnetic fields.

Definition at line 49 of file Units.h.