19 Eigen::Vector2cd waveVector(
const Eigen::Matrix4cd& frob_matrix,
 
   20                             const Eigen::Vector4cd& boundary_cond);
 
   23 MatrixRTCoefficients_v2::MatrixRTCoefficients_v2(
double kz_sign, Eigen::Vector2cd eigenvalues,
 
   25     : m_kz_sign(kz_sign), m_lambda(std::move(eigenvalues)), m_b(std::move(b))
 
   31 MatrixRTCoefficients_v2::~MatrixRTCoefficients_v2() = 
default;
 
   40     const Eigen::Vector2cd result = waveVector(T1, m_w_plus);
 
   41     if (m_lambda(0) == 0.0 && result == Eigen::Vector2cd::Zero())
 
   46 Eigen::Vector2cd MatrixRTCoefficients_v2::R1plus()
 const 
   48     if (m_lambda(0) == 0.0 && waveVector(T1, m_w_plus) == Eigen::Vector2cd::Zero())
 
   50     return waveVector(R1, m_w_plus);
 
   53 Eigen::Vector2cd MatrixRTCoefficients_v2::T2plus()
 const 
   55     const Eigen::Vector2cd result = waveVector(T2, m_w_plus);
 
   56     if (m_lambda(1) == 0.0 && result == Eigen::Vector2cd::Zero())
 
   61 Eigen::Vector2cd MatrixRTCoefficients_v2::R2plus()
 const 
   63     if (m_lambda(1) == 0.0 && waveVector(T2, m_w_plus) == Eigen::Vector2cd::Zero())
 
   65     return waveVector(R2, m_w_plus);
 
   68 Eigen::Vector2cd MatrixRTCoefficients_v2::T1min()
 const 
   70     const Eigen::Vector2cd result = waveVector(T1, m_w_min);
 
   71     if (m_lambda(0) == 0.0 && result == Eigen::Vector2cd::Zero())
 
   76 Eigen::Vector2cd MatrixRTCoefficients_v2::R1min()
 const 
   78     if (m_lambda(0) == 0.0 && waveVector(T1, m_w_min) == Eigen::Vector2cd::Zero())
 
   80     return waveVector(R1, m_w_min);
 
   83 Eigen::Vector2cd MatrixRTCoefficients_v2::T2min()
 const 
   85     const Eigen::Vector2cd result = waveVector(T2, m_w_min);
 
   86     if (m_lambda(1) == 0.0 && result == Eigen::Vector2cd::Zero())
 
   91 Eigen::Vector2cd MatrixRTCoefficients_v2::R2min()
 const 
   93     if (m_lambda(1) == 0.0 && waveVector(T2, m_w_min) == Eigen::Vector2cd::Zero())
 
   95     return waveVector(R2, m_w_min);
 
  100     return -I * m_kz_sign * m_lambda;
 
  103 Eigen::Matrix2cd MatrixRTCoefficients_v2::getReflectionMatrix()
 const 
  106     R.col(0) = R1plus() + R2plus();
 
  107     R.col(1) = R1min() + R2min();
 
  114 Eigen::Vector2cd waveVector(
const Eigen::Matrix4cd& frob_matrix,
 
  115                             const Eigen::Vector4cd& boundary_cond)
 
  117     Eigen::Matrix<complex_t, 4, 1> m = frob_matrix * boundary_cond;
 
Defines class MatrixRTCoefficients_v2.
 
Specular reflection and transmission coefficients in a layer in case of magnetic interactions between...
 
Eigen::Vector2cd getKz() const override
Returns z-part of the two wavevector eigenmodes.
 
Eigen::Vector2cd T1plus() const override
The following functions return the transmitted and reflected amplitudes for different incoming beam p...