BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
ScalarFlux Class Reference

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 ScalarFlux.h.

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

Public Member Functions

 ScalarFlux (complex_t kz, Spinor TR)
 
Spinor getKz () const override
 Returns z-part of the two wavevector eigenmodes. More...
 
complex_t getScalarKz () const
 
complex_t getScalarR () const
 
complex_t getScalarT () const
 
Spinor R1min () const override
 
Spinor R1plus () const override
 
Spinor R2min () const override
 
Spinor R2plus () const override
 
Spinor T1min () const override
 
Spinor T1plus () const override
 The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes. More...
 
Spinor T2min () const override
 
Spinor T2plus () const override
 

Private Attributes

const complex_t m_kz
 Signed vertical wavevector component k_z. More...
 
const Spinor m_min
 
const Spinor m_plus
 
const Spinor m_TR
 Transmission and reflection coefficient. More...
 

Constructor & Destructor Documentation

◆ ScalarFlux()

ScalarFlux::ScalarFlux ( complex_t  kz,
Spinor  TR 
)

Definition at line 19 of file ScalarFlux.cpp.

20  : m_kz(kz)
21  , m_TR(std::move(TR))
22  , m_plus(1, 0)
23  , m_min(0, 1)
24 {
25 }
const complex_t m_kz
Signed vertical wavevector component k_z.
Definition: ScalarFlux.h:52
const Spinor m_min
Definition: ScalarFlux.h:62
const Spinor m_plus
Definition: ScalarFlux.h:61
const Spinor m_TR
Transmission and reflection coefficient.
Definition: ScalarFlux.h:59

Member Function Documentation

◆ getKz()

Spinor ScalarFlux::getKz ( ) const
overridevirtual

Returns z-part of the two wavevector eigenmodes.

Implements IFlux.

Definition at line 67 of file ScalarFlux.cpp.

68 {
69  return (m_plus + m_min) * m_kz;
70 }

References m_kz, m_min, and m_plus.

◆ getScalarKz()

complex_t ScalarFlux::getScalarKz ( ) const
inline

Definition at line 49 of file ScalarFlux.h.

49 { return m_kz; }

References m_kz.

◆ getScalarR()

complex_t ScalarFlux::getScalarR ( ) const

Definition at line 72 of file ScalarFlux.cpp.

73 {
74  return m_TR.v;
75 }
complex_t v
Definition: Spinor.h:31

References m_TR, and Spinor::v.

Referenced by R1min(), and R2plus().

◆ getScalarT()

complex_t ScalarFlux::getScalarT ( ) const

Definition at line 77 of file ScalarFlux.cpp.

78 {
79  return m_TR.u;
80 }
complex_t u
Definition: Spinor.h:31

References m_TR, and Spinor::u.

Referenced by T1min(), and T2plus().

◆ R1min()

Spinor ScalarFlux::R1min ( ) const
overridevirtual

Implements IFlux.

Definition at line 52 of file ScalarFlux.cpp.

53 {
54  return m_min * getScalarR();
55 }
complex_t getScalarR() const
Definition: ScalarFlux.cpp:72

References getScalarR(), and m_min.

Here is the call graph for this function:

◆ R1plus()

Spinor ScalarFlux::R1plus ( ) const
overridevirtual

Implements IFlux.

Definition at line 32 of file ScalarFlux.cpp.

33 {
34  return Spinor::Zero();
35 }
static Spinor Zero()
Definition: Spinor.cpp:23

References Spinor::Zero().

Here is the call graph for this function:

◆ R2min()

Spinor ScalarFlux::R2min ( ) const
overridevirtual

Implements IFlux.

Definition at line 62 of file ScalarFlux.cpp.

63 {
64  return Spinor::Zero();
65 }

References Spinor::Zero().

Here is the call graph for this function:

◆ R2plus()

Spinor ScalarFlux::R2plus ( ) const
overridevirtual

Implements IFlux.

Definition at line 42 of file ScalarFlux.cpp.

43 {
44  return m_plus * getScalarR();
45 }

References getScalarR(), and m_plus.

Here is the call graph for this function:

◆ T1min()

Spinor ScalarFlux::T1min ( ) const
overridevirtual

Implements IFlux.

Definition at line 47 of file ScalarFlux.cpp.

48 {
49  return m_min * getScalarT();
50 }
complex_t getScalarT() const
Definition: ScalarFlux.cpp:77

References getScalarT(), and m_min.

Here is the call graph for this function:

◆ T1plus()

Spinor ScalarFlux::T1plus ( ) const
overridevirtual

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

Implements IFlux.

Definition at line 27 of file ScalarFlux.cpp.

28 {
29  return Spinor::Zero();
30 }

References Spinor::Zero().

Here is the call graph for this function:

◆ T2min()

Spinor ScalarFlux::T2min ( ) const
overridevirtual

Implements IFlux.

Definition at line 57 of file ScalarFlux.cpp.

58 {
59  return Spinor::Zero();
60 }

References Spinor::Zero().

Here is the call graph for this function:

◆ T2plus()

Spinor ScalarFlux::T2plus ( ) const
overridevirtual

Implements IFlux.

Definition at line 37 of file ScalarFlux.cpp.

38 {
39  return m_plus * getScalarT();
40 }

References getScalarT(), and m_plus.

Here is the call graph for this function:

Member Data Documentation

◆ m_kz

const complex_t ScalarFlux::m_kz
private

Signed vertical wavevector component k_z.

Definition at line 52 of file ScalarFlux.h.

Referenced by getKz(), and getScalarKz().

◆ m_min

const Spinor ScalarFlux::m_min
private

Definition at line 62 of file ScalarFlux.h.

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

◆ m_plus

const Spinor ScalarFlux::m_plus
private

Definition at line 61 of file ScalarFlux.h.

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

◆ m_TR

const Spinor ScalarFlux::m_TR
private

Transmission and reflection coefficient.

In the manual called A^{-} = m_TR(0) and A^{+} = m_TR(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 59 of file ScalarFlux.h.

Referenced by getScalarR(), and getScalarT().


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