From 35a176f9b1901c8e59b040116d93a79071e2bd51 Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de> Date: Tue, 20 Jun 2023 14:26:00 +0200 Subject: [PATCH] forbid external, fronting and z-field --- Resample/Slice/Slice.cpp | 4 ++++ Resample/Slice/SliceStack.cpp | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/Resample/Slice/Slice.cpp b/Resample/Slice/Slice.cpp index 9f08bb049c9..b1dd2f50b3d 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 fab03b77527..612b7621d3f 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(); -- GitLab