From 56445b7b9d0f6e6478a2bc68718c84e66adf3211 Mon Sep 17 00:00:00 2001 From: Dmitry Yurov <d.yurov@fz-juelich.de> Date: Wed, 25 Oct 2017 09:06:50 +0200 Subject: [PATCH] Updated magnetization prefactor definition Redmine: #1858 --- Core/Material/HomogeneousMaterial.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Core/Material/HomogeneousMaterial.cpp b/Core/Material/HomogeneousMaterial.cpp index bb4705e7bc3..8650f6c5050 100644 --- a/Core/Material/HomogeneousMaterial.cpp +++ b/Core/Material/HomogeneousMaterial.cpp @@ -2,14 +2,14 @@ #include "WavevectorInfo.h" #include "Transform3D.h" #include "MaterialUtils.h" +#include "PhysicalConstants.h" -static const double Thomson_Scattering_Length = 2.8179403227e-15; -static const double Bohr_Magneton = 9.274009994e-24; -// The neutron's magnetic moment is Gamma_Neutron times the nuclear magneton -static const double Gamma_Neutron = 1.91304272; -// The factor 1e-18 is here to have unit: m/A*nm^-2 -static const double Magnetization_Prefactor = (Gamma_Neutron*Thomson_Scattering_Length - /2.0/Bohr_Magneton)*1e-18; +using PhysConsts::mu_B; +using PhysConsts::gamma_n; +using PhysConsts::r_e; + // The factor 1e-18 is here to have unit: m/A*nm^-2 +constexpr double magnetization_prefactor + = (gamma_n * r_e / 2.0 / mu_B) * 1e-18; namespace { // Used in experimental calculation of scattering matrix: @@ -86,7 +86,7 @@ Eigen::Matrix2cd HomogeneousMaterial::polarizedSubtrSLD(const WavevectorInfo& wa { cvector_t mag_ortho = OrthogonalToBaseVector(wavevectors.getQ(), m_magnetization); complex_t unit_factor = scalarSubtrSLD(wavevectors); - return MagnetizationCorrection(unit_factor, Magnetization_Prefactor, mag_ortho); + return MagnetizationCorrection(unit_factor, magnetization_prefactor, mag_ortho); } HomogeneousMaterial HomogeneousMaterial::transformedMaterial(const Transform3D& transform) const -- GitLab