Skip to content
Snippets Groups Projects
Commit 4820c83d authored by Mikhail Svechnikov's avatar Mikhail Svechnikov
Browse files

move comments out of furnctions

parent 81bbfdc3
No related branches found
No related tags found
1 merge request!1591Show SLD units (#558)
...@@ -28,10 +28,10 @@ inline double getWlPrefactor(double wavelength) ...@@ -28,10 +28,10 @@ inline double getWlPrefactor(double wavelength)
} // namespace } // namespace
// SLD units are nm^-2
MaterialBySLDImpl::MaterialBySLDImpl(const std::string& name, double sld_real, double sld_imag, MaterialBySLDImpl::MaterialBySLDImpl(const std::string& name, double sld_real, double sld_imag,
R3 magnetization) R3 magnetization)
: IMaterialImpl(name, magnetization) : IMaterialImpl(name, magnetization)
// accepts SLD in nm^-2
, m_sld_real(sld_real) , m_sld_real(sld_real)
, m_sld_imag(sld_imag < 0. ? throw std::runtime_error( , m_sld_imag(sld_imag < 0. ? throw std::runtime_error(
"The imaginary part of the SLD must be nonnegative" "The imaginary part of the SLD must be nonnegative"
...@@ -55,23 +55,23 @@ complex_t MaterialBySLDImpl::refractiveIndex2(double wavelength) const ...@@ -55,23 +55,23 @@ complex_t MaterialBySLDImpl::refractiveIndex2(double wavelength) const
return 1.0 - getWlPrefactor(wavelength) * sld(); return 1.0 - getWlPrefactor(wavelength) * sld();
} }
// Returns underlying material SLD in AA^-2
complex_t MaterialBySLDImpl::materialData() const complex_t MaterialBySLDImpl::materialData() const
{ {
// returns SLD in A^-2
return complex_t(m_sld_real * square_angstroms, m_sld_imag * square_angstroms); return complex_t(m_sld_real * square_angstroms, m_sld_imag * square_angstroms);
} }
// Returns (pi/lambda^2 - sld), sld in nm^-2
complex_t MaterialBySLDImpl::scalarSubtrSLD(double lambda0) const complex_t MaterialBySLDImpl::scalarSubtrSLD(double lambda0) const
{ {
// returns subtracted SLD in nm^-2
if (std::isnan(lambda0)) if (std::isnan(lambda0))
throw std::runtime_error("wavelength not set"); throw std::runtime_error("wavelength not set");
return 1.0 / getWlPrefactor(lambda0) - sld(); return 1.0 / getWlPrefactor(lambda0) - sld();
} }
//! Prints object SLD (in \f$ AA^{-2} \f$) and magnetization
std::string MaterialBySLDImpl::print() const std::string MaterialBySLDImpl::print() const
{ {
// prints SLD in nm^-2
std::stringstream s; std::stringstream s;
s << "MaterialBySLD:" << matName() << "<" << this << ">{ " s << "MaterialBySLD:" << matName() << "<" << this << ">{ "
<< "sld_real=" << m_sld_real << ", sld_imag = " << m_sld_imag << "sld_real=" << m_sld_real << ", sld_imag = " << m_sld_imag
...@@ -79,8 +79,8 @@ std::string MaterialBySLDImpl::print() const ...@@ -79,8 +79,8 @@ std::string MaterialBySLDImpl::print() const
return s.str(); return s.str();
} }
//! Returns the scattering length density in \f$ nm^{-2} \f$
complex_t MaterialBySLDImpl::sld() const complex_t MaterialBySLDImpl::sld() const
{ {
// returns SLD in nm^-2
return complex_t(m_sld_real, -m_sld_imag); return complex_t(m_sld_real, -m_sld_imag);
} }
...@@ -36,7 +36,7 @@ public: ...@@ -36,7 +36,7 @@ public:
//! Returns squared refractive index //! Returns squared refractive index
complex_t refractiveIndex2(double wavelength) const override; complex_t refractiveIndex2(double wavelength) const override;
//! Returns underlying material data //! Returns underlying material SLD in AA^-2
complex_t materialData() const override; complex_t materialData() const override;
//! Returns type of material implementation //! Returns type of material implementation
...@@ -46,14 +46,14 @@ public: ...@@ -46,14 +46,14 @@ public:
//! density //! density
complex_t scalarSubtrSLD(double lambda0) const override; complex_t scalarSubtrSLD(double lambda0) const override;
//! Prints object data //! Prints object SLD (in \f$ AA^{-2} \f$) and magnetization
std::string print() const override; std::string print() const override;
private: private:
//! Constructs a wavelength-independent material with a given complex-valued //! Constructs a wavelength-independent material with a given complex-valued
//! scattering length density (SLD). SLD units are \f$ nm^{-2} \f$. //! scattering length density (SLD). SLD units are \f$ nm^{-2} \f$.
MaterialBySLDImpl(const std::string& name, double sld_real, double sld_imag, R3 magnetization); MaterialBySLDImpl(const std::string& name, double sld_real, double sld_imag, R3 magnetization);
//! Returns the scattering length density //! Returns the scattering length density in \f$ nm^{-2} \f$
complex_t sld() const; complex_t sld() const;
const double m_sld_real; //!< complex-valued scattering length density const double m_sld_real; //!< complex-valued scattering length density
......
...@@ -36,9 +36,9 @@ Material Vacuum() ...@@ -36,9 +36,9 @@ Material Vacuum()
return RefractiveMaterial("vacuum", 0.0, 0.0, R3{}); return RefractiveMaterial("vacuum", 0.0, 0.0, R3{});
} }
// accepts SLD in AA^-2
Material MaterialBySLD(const std::string& name, double sld_real, double sld_imag, R3 magnetization) Material MaterialBySLD(const std::string& name, double sld_real, double sld_imag, R3 magnetization)
{ {
// accepts SLD in A^-2
constexpr double inv_sq_angstroms = 1.0 / (Units::angstrom * Units::angstrom); constexpr double inv_sq_angstroms = 1.0 / (Units::angstrom * Units::angstrom);
std::unique_ptr<MaterialBySLDImpl> mat_impl(new MaterialBySLDImpl( std::unique_ptr<MaterialBySLDImpl> mat_impl(new MaterialBySLDImpl(
name, sld_real * inv_sq_angstroms, sld_imag * inv_sq_angstroms, magnetization)); name, sld_real * inv_sq_angstroms, sld_imag * inv_sq_angstroms, magnetization));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment