15 #ifndef BORNAGAIN_CORE_RT_SCALARRTCOEFFICIENTS_H
16 #define BORNAGAIN_CORE_RT_SCALARRTCOEFFICIENTS_H
34 virtual Eigen::Vector2cd
T1plus()
const;
35 virtual Eigen::Vector2cd R1plus()
const;
36 virtual Eigen::Vector2cd T2plus()
const;
37 virtual Eigen::Vector2cd R2plus()
const;
38 virtual Eigen::Vector2cd T1min()
const;
39 virtual Eigen::Vector2cd R1min()
const;
40 virtual Eigen::Vector2cd T2min()
const;
41 virtual Eigen::Vector2cd R2min()
const;
43 virtual Eigen::Vector2cd
getKz()
const;
48 virtual complex_t getScalarR()
const;
49 virtual complex_t getScalarKz()
const {
return kz; }
63 Eigen::Vector2cd m_plus;
64 Eigen::Vector2cd m_min;
71 inline ScalarRTCoefficients::ScalarRTCoefficients() : kz(0)
77 t_r << complex_t(1.0, 0.0), complex_t(0.0, 0.0);
87 return Eigen::Vector2cd::Zero();
90 inline Eigen::Vector2cd ScalarRTCoefficients::R1plus()
const
92 return Eigen::Vector2cd::Zero();
95 inline Eigen::Vector2cd ScalarRTCoefficients::T2plus()
const
100 inline Eigen::Vector2cd ScalarRTCoefficients::R2plus()
const
102 return m_plus * getScalarR();
105 inline Eigen::Vector2cd ScalarRTCoefficients::T1min()
const
110 inline Eigen::Vector2cd ScalarRTCoefficients::R1min()
const
112 return m_min * getScalarR();
115 inline Eigen::Vector2cd ScalarRTCoefficients::T2min()
const
117 return Eigen::Vector2cd::Zero();
120 inline Eigen::Vector2cd ScalarRTCoefficients::R2min()
const
122 return Eigen::Vector2cd::Zero();
127 return (m_plus + m_min) *
kz;
130 inline complex_t ScalarRTCoefficients::getScalarR()
const
Defines and implements class ILayerRTCoefficients.
Interface to access reflection/transmission coefficients.
Specular reflection and transmission coefficients in a layer in case of scalar interactions between t...
Eigen::Vector2cd t_r
Transmission and reflection coefficient.
complex_t kz
Signed vertical wavevector component k_z.
virtual Eigen::Vector2cd getKz() const
Returns z-part of the two wavevector eigenmodes.
virtual complex_t getScalarT() const
Scalar value getters; these throw errors by default as they should only be used when the derived obje...
virtual Eigen::Vector2cd T1plus() const
The following functions return the transmitted and reflected amplitudes for different incoming beam p...