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

forbid external, fronting and z-field

parent 2b65c8be
No related branches found
No related tags found
1 merge request!1705Not allow users to set external field, magnetization in fronting media and z-magnetization in layers
......@@ -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);
......
......@@ -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();
......
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