diff --git a/Core/Material/MaterialBySLDImpl.cpp b/Core/Material/MaterialBySLDImpl.cpp index 1e2ba3c376a080958b9d19c724a062f6d87b8a7e..76fef2b64e22b6a0f7a2bb4063c0a63a39a7e5ff 100644 --- a/Core/Material/MaterialBySLDImpl.cpp +++ b/Core/Material/MaterialBySLDImpl.cpp @@ -30,7 +30,9 @@ MaterialBySLDImpl::MaterialBySLDImpl(const std::string& name, double sld_real, d kvector_t magnetization) : MagneticMaterialImpl(name, magnetization) , m_sld_real(sld_real) - , m_sld_imag(sld_imag) + , m_sld_imag(sld_imag < 0. ? + throw std::runtime_error("The imaginary part of the SLD must be greater or equal zero") : + sld_imag) {} MaterialBySLDImpl* MaterialBySLDImpl::clone() const diff --git a/Core/Material/RefractiveMaterialImpl.cpp b/Core/Material/RefractiveMaterialImpl.cpp index 958dbca50fe736add4efa37b9c3723523187e3b5..d8ebbd75ed78b33710b7a54c95e4517c29bdeb9e 100644 --- a/Core/Material/RefractiveMaterialImpl.cpp +++ b/Core/Material/RefractiveMaterialImpl.cpp @@ -19,7 +19,9 @@ RefractiveMaterialImpl::RefractiveMaterialImpl(const std::string& name, double d kvector_t magnetization) : MagneticMaterialImpl(name, magnetization) , m_delta(delta) - , m_beta(beta) + , m_beta(beta < 0. ? + throw std::runtime_error("The imaginary part of the refractive index must be greater or equal zero") : + beta) {} RefractiveMaterialImpl* RefractiveMaterialImpl::clone() const