diff --git a/Core/Material/WavelengthIndependentMaterial.cpp b/Core/Material/MaterialBySLDImpl.cpp similarity index 58% rename from Core/Material/WavelengthIndependentMaterial.cpp rename to Core/Material/MaterialBySLDImpl.cpp index 7fe8b7164bb107b188a748a0380a9df103d75478..61718346d057dd64fc6f5b40d6f279fae7461ee0 100644 --- a/Core/Material/WavelengthIndependentMaterial.cpp +++ b/Core/Material/MaterialBySLDImpl.cpp @@ -1,4 +1,4 @@ -#include "WavelengthIndependentMaterial.h" +#include "MaterialBySLDImpl.h" #include "WavevectorInfo.h" namespace @@ -16,41 +16,41 @@ inline double getWlPrefactor(double wavelength) } } -WavelengthIndependentMaterial::WavelengthIndependentMaterial(const std::string& name, double sld, +MaterialBySLDImpl::MaterialBySLDImpl(const std::string& name, double sld, double abs_term, kvector_t magnetization) : MagneticMaterialImpl(name, magnetization), m_sld(sld), m_abs_term(abs_term) {} -WavelengthIndependentMaterial* WavelengthIndependentMaterial::clone() const +MaterialBySLDImpl* MaterialBySLDImpl::clone() const { - return new WavelengthIndependentMaterial(*this); + return new MaterialBySLDImpl(*this); } -complex_t WavelengthIndependentMaterial::refractiveIndex(double wavelength) const +complex_t MaterialBySLDImpl::refractiveIndex(double wavelength) const { return std::sqrt(refractiveIndex2(wavelength)); } -complex_t WavelengthIndependentMaterial::refractiveIndex2(double wavelength) const +complex_t MaterialBySLDImpl::refractiveIndex2(double wavelength) const { return 1.0 - getWlPrefactor(wavelength) * getSLD(m_sld, m_abs_term); } -complex_t WavelengthIndependentMaterial::materialData() const +complex_t MaterialBySLDImpl::materialData() const { return complex_t(m_sld, m_abs_term); } -complex_t WavelengthIndependentMaterial::scalarSubtrSLD(const WavevectorInfo& wavevectors) const +complex_t MaterialBySLDImpl::scalarSubtrSLD(const WavevectorInfo& wavevectors) const { double wavelength = wavevectors.getWavelength(); return 1.0 / getWlPrefactor(wavelength) - getSLD(m_sld, m_abs_term); } -void WavelengthIndependentMaterial::print(std::ostream& ostr) const +void MaterialBySLDImpl::print(std::ostream& ostr) const { - ostr << "WavelengthIndependentMaterial:" << getName() << "<" << this << ">{ " + ostr << "MaterialBySLD:" << getName() << "<" << this << ">{ " << "sld=" << m_sld << ", absorp_term=" << m_abs_term << ", B=" << magnetization() << "}"; } diff --git a/Core/Material/WavelengthIndependentMaterial.h b/Core/Material/MaterialBySLDImpl.h similarity index 78% rename from Core/Material/WavelengthIndependentMaterial.h rename to Core/Material/MaterialBySLDImpl.h index 6776bea7199201a148973a5f427e766909a01523..8b32e10c90ac78c0a4b47f2f795e11cbfe980ae6 100644 --- a/Core/Material/WavelengthIndependentMaterial.h +++ b/Core/Material/MaterialBySLDImpl.h @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Core/Material/WavelengthIndependentMaterial.h -//! @brief Defines class WavelengthIndependentMaterial. +//! @file Core/Material/MaterialBySLDImpl.h +//! @brief Defines class MaterialBySLDImpl. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -13,8 +13,8 @@ // // ************************************************************************** // -#ifndef WAVELENGTHINDEPENDENTMATERIAL_H_ -#define WAVELENGTHINDEPENDENTMATERIAL_H_ +#ifndef MATERIALBYSLDIMPL_H_ +#define MATERIALBYSLDIMPL_H_ #include "MagneticMaterialImpl.h" #include "Material.h" @@ -22,15 +22,15 @@ //! Material implementation based on wavelength-independent data (valid for a range of wavelengths) //! @ingroup materials -class BA_CORE_API_ WavelengthIndependentMaterial : public MagneticMaterialImpl +class BA_CORE_API_ MaterialBySLDImpl : public MagneticMaterialImpl { public: friend BA_CORE_API_ Material MaterialBySLD(const std::string&, double, double, kvector_t); - virtual ~WavelengthIndependentMaterial() = default; + virtual ~MaterialBySLDImpl() = default; //! Returns pointer to a copy of material - virtual WavelengthIndependentMaterial* clone() const override; + virtual MaterialBySLDImpl* clone() const override; //! Returns refractive index virtual complex_t refractiveIndex(double wavelength) const override; @@ -54,7 +54,7 @@ public: virtual void print(std::ostream &ostr) const override; private: - WavelengthIndependentMaterial(const std::string& name, double sld, double abs_term, + MaterialBySLDImpl(const std::string& name, double sld, double abs_term, kvector_t magnetization); double m_sld; //!< product of number density and coherent scattering length @@ -63,4 +63,4 @@ private: //!< absorption cross-section normalized to wavelength }; -#endif /* WAVELENGTHINDEPENDENTMATERIAL_H_ */ +#endif /* MATERIALBYSLDIMPL_H_ */ diff --git a/Core/Material/MaterialFactoryFuncs.cpp b/Core/Material/MaterialFactoryFuncs.cpp index 4bf3bfa82cabe06fa4b72c043e5e946d162be700..56e85fef74010191cda1976d4e0ef4011588fb56 100644 --- a/Core/Material/MaterialFactoryFuncs.cpp +++ b/Core/Material/MaterialFactoryFuncs.cpp @@ -1,6 +1,6 @@ #include "MaterialFactoryFuncs.h" -#include "RefractiveCoefMaterial.h" -#include "WavelengthIndependentMaterial.h" +#include "MaterialBySLDImpl.h" +#include "RefractiveMaterialImpl.h" Material HomogeneousMaterial(const std::string& name, complex_t refractive_index, kvector_t magnetization) @@ -13,8 +13,8 @@ Material HomogeneousMaterial(const std::string& name, complex_t refractive_index Material HomogeneousMaterial(const std::string& name, double delta, double beta, kvector_t magnetization) { - std::unique_ptr<RefractiveCoefMaterial> mat_impl( - new RefractiveCoefMaterial(name, delta, beta, magnetization)); + std::unique_ptr<RefractiveMaterialImpl> mat_impl( + new RefractiveMaterialImpl(name, delta, beta, magnetization)); return Material(std::move(mat_impl)); } @@ -26,8 +26,8 @@ Material HomogeneousMaterial() Material MaterialBySLD(const std::string& name, double sld, double abs_term, kvector_t magnetization) { - std::unique_ptr<WavelengthIndependentMaterial> mat_impl( - new WavelengthIndependentMaterial(name, sld, abs_term, magnetization)); + std::unique_ptr<MaterialBySLDImpl> mat_impl( + new MaterialBySLDImpl(name, sld, abs_term, magnetization)); return Material(std::move(mat_impl)); } diff --git a/Core/Material/RefractiveCoefMaterial.cpp b/Core/Material/RefractiveMaterialImpl.cpp similarity index 54% rename from Core/Material/RefractiveCoefMaterial.cpp rename to Core/Material/RefractiveMaterialImpl.cpp index fa5a0d8f01f45351682f3c7e6dc20e79a5f0d1f2..0779488d9c6e340a9a22e2373a12d89134625b05 100644 --- a/Core/Material/RefractiveCoefMaterial.cpp +++ b/Core/Material/RefractiveMaterialImpl.cpp @@ -1,44 +1,44 @@ -#include "RefractiveCoefMaterial.h" +#include "RefractiveMaterialImpl.h" #include "WavevectorInfo.h" -RefractiveCoefMaterial::RefractiveCoefMaterial(const std::string& name, double delta, double beta, +RefractiveMaterialImpl::RefractiveMaterialImpl(const std::string& name, double delta, double beta, kvector_t magnetization) : MagneticMaterialImpl(name, magnetization) , m_delta(delta) , m_beta(beta) {} -RefractiveCoefMaterial* RefractiveCoefMaterial::clone() const +RefractiveMaterialImpl* RefractiveMaterialImpl::clone() const { - return new RefractiveCoefMaterial(*this); + return new RefractiveMaterialImpl(*this); } -complex_t RefractiveCoefMaterial::refractiveIndex(double) const +complex_t RefractiveMaterialImpl::refractiveIndex(double) const { return complex_t(1.0 - m_delta, m_beta); } -complex_t RefractiveCoefMaterial::refractiveIndex2(double) const +complex_t RefractiveMaterialImpl::refractiveIndex2(double) const { complex_t result(1.0 - m_delta, m_beta); return result * result; } -complex_t RefractiveCoefMaterial::materialData() const +complex_t RefractiveMaterialImpl::materialData() const { return complex_t(m_delta, m_beta); } -complex_t RefractiveCoefMaterial::scalarSubtrSLD(const WavevectorInfo& wavevectors) const +complex_t RefractiveMaterialImpl::scalarSubtrSLD(const WavevectorInfo& wavevectors) const { double wavelength = wavevectors.getWavelength(); double prefactor = M_PI/wavelength/wavelength; return prefactor * refractiveIndex2(wavelength); } -void RefractiveCoefMaterial::print(std::ostream& ostr) const +void RefractiveMaterialImpl::print(std::ostream& ostr) const { - ostr << "RefractiveCoefMaterial:" << getName() << "<" << this << ">{ " + ostr << "RefractiveMaterial:" << getName() << "<" << this << ">{ " << "delta=" << m_delta << ", beta=" << m_beta << ", B=" << magnetization() << "}"; } diff --git a/Core/Material/RefractiveCoefMaterial.h b/Core/Material/RefractiveMaterialImpl.h similarity index 84% rename from Core/Material/RefractiveCoefMaterial.h rename to Core/Material/RefractiveMaterialImpl.h index 6a3b9765980054fd627b3dbb741ad9f6d2c74008..868543197ff82f933c8a51911f54e523cb2b5e7e 100644 --- a/Core/Material/RefractiveCoefMaterial.h +++ b/Core/Material/RefractiveMaterialImpl.h @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Core/Material/RefractiveCoefMaterial.h -//! @brief Defines class RefractiveCoefMaterial. +//! @file Core/Material/RefractiveMaterialImpl.h +//! @brief Defines class RefractiveMaterialImpl. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -13,8 +13,8 @@ // // ************************************************************************** // -#ifndef REFRACTIVECOEFMATERIAL_H_ -#define REFRACTIVECOEFMATERIAL_H_ +#ifndef REFRACTIVEMATERIALIMPL_H_ +#define REFRACTIVEMATERIALIMPL_H_ #include "MagneticMaterialImpl.h" #include "Material.h" @@ -22,16 +22,16 @@ //! Material implementation based on refractive coefficiencts (valid for one wavelength value only) //! @ingroup materials -class BA_CORE_API_ RefractiveCoefMaterial : public MagneticMaterialImpl +class BA_CORE_API_ RefractiveMaterialImpl : public MagneticMaterialImpl { public: friend BA_CORE_API_ Material HomogeneousMaterial(const std::string&, double, double, kvector_t); - virtual ~RefractiveCoefMaterial() = default; + virtual ~RefractiveMaterialImpl() = default; //! Returns pointer to a copy of material - virtual RefractiveCoefMaterial* clone() const override; + virtual RefractiveMaterialImpl* clone() const override; //! Returns refractive index //! For this particular implementation returned value does not depend @@ -62,11 +62,11 @@ public: virtual void print(std::ostream &ostr) const override; private: - RefractiveCoefMaterial(const std::string& name, double delta, double beta, + RefractiveMaterialImpl(const std::string& name, double delta, double beta, kvector_t magnetization); double m_delta; //!< \f$\delta\f$ coefficient for refractive index \f$n = 1 - \delta + i \beta\f$ double m_beta; //!< \f$\beta\f$ coefficient for refractive index \f$n = 1 - \delta + i \beta\f$ }; -#endif /* REFRACTIVECOEFMATERIAL_H_ */ +#endif /* REFRACTIVEMATERIALIMPL_H_ */ diff --git a/Tests/UnitTests/Core/Other/MaterialTest.h b/Tests/UnitTests/Core/Other/MaterialTest.h index d7fc1fd16f3eca0ee8fade5f62b1225f2ac6bf57..cf8a08c2f4013fee8b12778937c753affeb4180e 100644 --- a/Tests/UnitTests/Core/Other/MaterialTest.h +++ b/Tests/UnitTests/Core/Other/MaterialTest.h @@ -1,6 +1,6 @@ #include "MaterialFactoryFuncs.h" -#include "WavelengthIndependentMaterial.h" -#include "RefractiveCoefMaterial.h" +#include "MaterialBySLDImpl.h" +#include "RefractiveMaterialImpl.h" #include "WavevectorInfo.h" #include "Rotations.h" #include "Units.h"