BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ScalarRTCoefficients Class Reference

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

Inheritance diagram for ScalarRTCoefficients:
[legend]
Collaboration diagram for ScalarRTCoefficients:
[legend]

Public Member Functions

 ScalarRTCoefficients ()
 
virtual ~ScalarRTCoefficients ()
 
virtual ScalarRTCoefficientsclone () const
 
virtual Eigen::Vector2cd getKz () const
 Returns z-part of the two wavevector eigenmodes. More...
 
virtual Eigen::Matrix2cd getReflectionMatrix () const
 
virtual complex_t getScalarKz () const
 
virtual complex_t getScalarR () const
 
virtual complex_t getScalarT () const
 Scalar value getters; these throw errors by default as they should only be used when the derived object is really scalar. More...
 
virtual Eigen::Vector2cd R1min () const
 
virtual Eigen::Vector2cd R1plus () const
 
virtual Eigen::Vector2cd R2min () const
 
virtual Eigen::Vector2cd R2plus () const
 
virtual Eigen::Vector2cd T1min () const
 
virtual Eigen::Vector2cd T1plus () const
 The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes. More...
 
virtual Eigen::Vector2cd T2min () const
 
virtual Eigen::Vector2cd T2plus () const
 

Public Attributes

complex_t kz
 Signed vertical wavevector component k_z. More...
 
Eigen::Vector2cd t_r
 Transmission and reflection coefficient. More...
 

Private Attributes

Eigen::Vector2cd m_min
 
Eigen::Vector2cd m_plus
 

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 29 of file ScalarRTCoefficients.h.

Constructor & Destructor Documentation

◆ ScalarRTCoefficients()

ScalarRTCoefficients::ScalarRTCoefficients ( )
inline

Definition at line 79 of file ScalarRTCoefficients.h.

79  : kz(0)
80 {
81  m_plus(0) = 1.0;
82  m_plus(1) = 0.0;
83  m_min(0) = 0.0;
84  m_min(1) = 1.0;
85  t_r << complex_t(1.0, 0.0), complex_t(0.0, 0.0);
86 }
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 32 of file ScalarRTCoefficients.h.

32 {}

Member Function Documentation

◆ clone()

ScalarRTCoefficients * ScalarRTCoefficients::clone ( ) const
inlinevirtual

Implements ILayerRTCoefficients.

Definition at line 88 of file ScalarRTCoefficients.h.

89 {
90  return new ScalarRTCoefficients(*this);
91 }

References ScalarRTCoefficients().

Here is the call graph for this function:

◆ getKz()

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

Returns z-part of the two wavevector eigenmodes.

Implements ILayerRTCoefficients.

Definition at line 133 of file ScalarRTCoefficients.h.

134 {
135  return (m_plus + m_min) * kz;
136 }

References kz, m_min, and m_plus.

◆ getReflectionMatrix()

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

Reimplemented in MatrixRTCoefficients, and MatrixRTCoefficients_v2.

Definition at line 67 of file ILayerRTCoefficients.h.

68  {
69  throw std::runtime_error("Only defined for Matrix coefficeints");
70  }

◆ getScalarKz()

virtual complex_t ScalarRTCoefficients::getScalarKz ( ) const
inlinevirtual

Reimplemented from ILayerRTCoefficients.

Definition at line 53 of file ScalarRTCoefficients.h.

53 { return kz; }

References kz.

◆ getScalarR()

complex_t ScalarRTCoefficients::getScalarR ( ) const
inlinevirtual

Reimplemented from ILayerRTCoefficients.

Definition at line 138 of file ScalarRTCoefficients.h.

139 {
140  return t_r(1);
141 }

References t_r.

Referenced by R1min(), and R2plus().

◆ 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 143 of file ScalarRTCoefficients.h.

144 {
145  return t_r(0);
146 }

References t_r.

Referenced by T1min(), and T2plus().

◆ R1min()

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

Implements ILayerRTCoefficients.

Definition at line 118 of file ScalarRTCoefficients.h.

119 {
120  return m_min * getScalarR();
121 }
virtual complex_t getScalarR() const

References getScalarR(), and m_min.

Here is the call graph for this function:

◆ R1plus()

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

Implements ILayerRTCoefficients.

Definition at line 98 of file ScalarRTCoefficients.h.

99 {
100  return Eigen::Vector2cd::Zero();
101 }

◆ R2min()

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

Implements ILayerRTCoefficients.

Definition at line 128 of file ScalarRTCoefficients.h.

129 {
130  return Eigen::Vector2cd::Zero();
131 }

◆ R2plus()

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

Implements ILayerRTCoefficients.

Definition at line 108 of file ScalarRTCoefficients.h.

109 {
110  return m_plus * getScalarR();
111 }

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 113 of file ScalarRTCoefficients.h.

114 {
115  return m_min * getScalarT();
116 }
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_min.

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 93 of file ScalarRTCoefficients.h.

94 {
95  return Eigen::Vector2cd::Zero();
96 }

◆ T2min()

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

Implements ILayerRTCoefficients.

Definition at line 123 of file ScalarRTCoefficients.h.

124 {
125  return Eigen::Vector2cd::Zero();
126 }

◆ T2plus()

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

Implements ILayerRTCoefficients.

Definition at line 103 of file ScalarRTCoefficients.h.

104 {
105  return m_plus * getScalarT();
106 }

References getScalarT(), and m_plus.

Here is the call graph for this function:

Member Data Documentation

◆ kz

complex_t ScalarRTCoefficients::kz

Signed vertical wavevector component k_z.

Definition at line 56 of file ScalarRTCoefficients.h.

Referenced by getKz(), and getScalarKz().

◆ m_min

Eigen::Vector2cd ScalarRTCoefficients::m_min
private

Definition at line 68 of file ScalarRTCoefficients.h.

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

◆ m_plus

Eigen::Vector2cd ScalarRTCoefficients::m_plus
private

Definition at line 67 of file ScalarRTCoefficients.h.

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

◆ 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 64 of file ScalarRTCoefficients.h.

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


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