diff --git a/Resample/Slice/Slice.cpp b/Resample/Slice/Slice.cpp index 9f08bb049c99ef5a6b501de6adb2bab7f73419f2..b1dd2f50b3dc34f8805b63ee3891963d78240e3c 100644 --- a/Resample/Slice/Slice.cpp +++ b/Resample/Slice/Slice.cpp @@ -82,6 +82,10 @@ SpinMatrix Slice::polarizedReducedPotential(R3 k, double n_ref) const void Slice::initBField(R3 h_field, double h_z) { + // Temporary disable setting z-magnetization in all layers (see issue #653) + if(m_material.magnetization().z() != 0) + throw std::runtime_error("Processing z-magnetization is not implemented yet."); + static constexpr double Magnetic_Permeability = 4e-7 * pi; m_B_field = Magnetic_Permeability * (h_field + m_material.magnetization()); m_B_field.setZ(Magnetic_Permeability * h_z); diff --git a/Resample/Slice/SliceStack.cpp b/Resample/Slice/SliceStack.cpp index fab03b77527c7cc478215c16618cfd2d401abb71..612b7621d3f7bc0870fa5690c96d5223e2f31a08 100644 --- a/Resample/Slice/SliceStack.cpp +++ b/Resample/Slice/SliceStack.cpp @@ -50,6 +50,14 @@ void SliceStack::addNSlices(size_t n, double thickness, const Material& material SliceStack SliceStack::setBField(const R3& externalField) { + // Temporary disable setting non-zero magnetization in fronting medium (see issue #653) + if(this->at(0).material().magnetization() != R3()) + throw std::runtime_error("Processing fronting magnetization is not implemented yet."); + + // Temporary disable setting non-zero external field (see issue #653) + if(externalField != R3()) + throw std::runtime_error("Processing external field is not implemented yet."); + if (this->empty()) return *this; const double M_z0 = this->at(0).material().magnetization().z();