BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ScalarRTCoefficients Class Reference
Inheritance diagram for ScalarRTCoefficients:
Collaboration diagram for ScalarRTCoefficients:

Public Member Functions

 ScalarRTCoefficients ()
 
virtual ~ScalarRTCoefficients ()
 
virtual ScalarRTCoefficientsclone () const
 
virtual Eigen::Vector2cd T1plus () const
 
virtual Eigen::Vector2cd R1plus () const
 
virtual Eigen::Vector2cd T2plus () const
 
virtual Eigen::Vector2cd R2plus () const
 
virtual Eigen::Vector2cd T1min () const
 
virtual Eigen::Vector2cd R1min () const
 
virtual Eigen::Vector2cd T2min () const
 
virtual Eigen::Vector2cd R2min () const
 
virtual Eigen::Vector2cd getKz () const
 
virtual complex_t getScalarT () const
 
virtual complex_t getScalarR () const
 
virtual complex_t getScalarKz () const
 
virtual Eigen::Matrix2cd getReflectionMatrix () const
 

Public Attributes

complex_t kz
 
Eigen::Vector2cd t_r
 

Private Attributes

Eigen::Vector2cd m_plus
 
Eigen::Vector2cd m_min
 

Detailed Description

Specular reflection and transmission coefficients in a layer in case of scalar interactions between the layers and the scattered particle.

Definition at line 24 of file ScalarRTCoefficients.h.

Constructor & Destructor Documentation

◆ ScalarRTCoefficients()

ScalarRTCoefficients::ScalarRTCoefficients ( )
inline

Definition at line 71 of file ScalarRTCoefficients.h.

71  : kz(0)
72 {
73  m_plus(0) = 1.0;
74  m_plus(1) = 0.0;
75  m_min(0) = 0.0;
76  m_min(1) = 1.0;
77  t_r << complex_t(1.0, 0.0), complex_t(0.0, 0.0);
78 }
std::complex< double > complex_t
Definition: Complex.h:20
Eigen::Vector2cd t_r
Transmission and reflection coefficient.
complex_t kz
Signed vertical wavevector component k_z.

References m_min, m_plus, and t_r.

Referenced by clone().

◆ ~ScalarRTCoefficients()

virtual ScalarRTCoefficients::~ScalarRTCoefficients ( )
inlinevirtual

Definition at line 28 of file ScalarRTCoefficients.h.

28 {}

Member Function Documentation

◆ clone()

ScalarRTCoefficients * ScalarRTCoefficients::clone ( ) const
inlinevirtual

Implements ILayerRTCoefficients.

Definition at line 80 of file ScalarRTCoefficients.h.

81 {
82  return new ScalarRTCoefficients(*this);
83 }

References ScalarRTCoefficients().

Here is the call graph for this function:

◆ T1plus()

Eigen::Vector2cd ScalarRTCoefficients::T1plus ( ) const
inlinevirtual

The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes.

Implements ILayerRTCoefficients.

Definition at line 85 of file ScalarRTCoefficients.h.

86 {
87  return Eigen::Vector2cd::Zero();
88 }

◆ R1plus()

Eigen::Vector2cd ScalarRTCoefficients::R1plus ( ) const
inlinevirtual

Implements ILayerRTCoefficients.

Definition at line 90 of file ScalarRTCoefficients.h.

91 {
92  return Eigen::Vector2cd::Zero();
93 }

◆ T2plus()

Eigen::Vector2cd ScalarRTCoefficients::T2plus ( ) const
inlinevirtual

Implements ILayerRTCoefficients.

Definition at line 95 of file ScalarRTCoefficients.h.

96 {
97  return m_plus * getScalarT();
98 }
virtual complex_t getScalarT() const
Scalar value getters; these throw errors by default as they should only be used when the derived obje...

References getScalarT(), and m_plus.

Here is the call graph for this function:

◆ R2plus()

Eigen::Vector2cd ScalarRTCoefficients::R2plus ( ) const
inlinevirtual

Implements ILayerRTCoefficients.

Definition at line 100 of file ScalarRTCoefficients.h.

101 {
102  return m_plus * getScalarR();
103 }
virtual complex_t getScalarR() const

References getScalarR(), and m_plus.

Here is the call graph for this function:

◆ T1min()

Eigen::Vector2cd ScalarRTCoefficients::T1min ( ) const
inlinevirtual

Implements ILayerRTCoefficients.

Definition at line 105 of file ScalarRTCoefficients.h.

106 {
107  return m_min * getScalarT();
108 }

References getScalarT(), and m_min.

Here is the call graph for this function:

◆ R1min()

Eigen::Vector2cd ScalarRTCoefficients::R1min ( ) const
inlinevirtual

Implements ILayerRTCoefficients.

Definition at line 110 of file ScalarRTCoefficients.h.

111 {
112  return m_min * getScalarR();
113 }

References getScalarR(), and m_min.

Here is the call graph for this function:

◆ T2min()

Eigen::Vector2cd ScalarRTCoefficients::T2min ( ) const
inlinevirtual

Implements ILayerRTCoefficients.

Definition at line 115 of file ScalarRTCoefficients.h.

116 {
117  return Eigen::Vector2cd::Zero();
118 }

◆ R2min()

Eigen::Vector2cd ScalarRTCoefficients::R2min ( ) const
inlinevirtual

Implements ILayerRTCoefficients.

Definition at line 120 of file ScalarRTCoefficients.h.

121 {
122  return Eigen::Vector2cd::Zero();
123 }

◆ getKz()

Eigen::Vector2cd ScalarRTCoefficients::getKz ( ) const
inlinevirtual

Returns z-part of the two wavevector eigenmodes.

Implements ILayerRTCoefficients.

Definition at line 125 of file ScalarRTCoefficients.h.

126 {
127  return (m_plus + m_min) * kz;
128 }

References kz, m_min, and m_plus.

◆ getScalarT()

complex_t ScalarRTCoefficients::getScalarT ( ) const
inlinevirtual

Scalar value getters; these throw errors by default as they should only be used when the derived object is really scalar.

Reimplemented from ILayerRTCoefficients.

Definition at line 135 of file ScalarRTCoefficients.h.

136 {
137  return t_r(0);
138 }

References t_r.

Referenced by T1min(), and T2plus().

◆ getScalarR()

complex_t ScalarRTCoefficients::getScalarR ( ) const
inlinevirtual

Reimplemented from ILayerRTCoefficients.

Definition at line 130 of file ScalarRTCoefficients.h.

131 {
132  return t_r(1);
133 }

References t_r.

Referenced by R1min(), and R2plus().

◆ getScalarKz()

virtual complex_t ScalarRTCoefficients::getScalarKz ( ) const
inlinevirtual

Reimplemented from ILayerRTCoefficients.

Definition at line 49 of file ScalarRTCoefficients.h.

49 { return kz; }

References kz.

◆ getReflectionMatrix()

virtual Eigen::Matrix2cd ILayerRTCoefficients::getReflectionMatrix ( ) const
inlinevirtualinherited

Reimplemented in MatrixRTCoefficients_v3, and MatrixRTCoefficients_v2.

Definition at line 64 of file ILayerRTCoefficients.h.

65  {
66  throw Exceptions::NotImplementedException("Only defined for Matrix coefficeints");
67  }

Member Data Documentation

◆ kz

complex_t ScalarRTCoefficients::kz

Signed vertical wavevector component k_z.

Definition at line 52 of file ScalarRTCoefficients.h.

Referenced by getKz(), and getScalarKz().

◆ t_r

Eigen::Vector2cd ScalarRTCoefficients::t_r

Transmission and reflection coefficient.

In the manual called A^{-} = t_r(0) and A^{+} = t_r(1). Values of the transmitted/reflected (=down/up propagating) wavefunction at top boundary of the layer (resp. at the bottom of the top air/vacuum layer).

Definition at line 60 of file ScalarRTCoefficients.h.

Referenced by getScalarR(), getScalarT(), and ScalarRTCoefficients().

◆ m_plus

Eigen::Vector2cd ScalarRTCoefficients::m_plus
private

Definition at line 63 of file ScalarRTCoefficients.h.

Referenced by getKz(), R2plus(), ScalarRTCoefficients(), and T2plus().

◆ m_min

Eigen::Vector2cd ScalarRTCoefficients::m_min
private

Definition at line 64 of file ScalarRTCoefficients.h.

Referenced by getKz(), R1min(), ScalarRTCoefficients(), and T1min().


The documentation for this class was generated from the following file: