BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
ScalarFlux.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file Resample/Flux/ScalarFlux.cpp
6 //! @brief Implements class ScalarFlux.
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
16 
17 #include <utility>
18 
19 ScalarFlux::ScalarFlux(complex_t kz, Spinor TR)
20  : m_kz(kz)
21  , m_TR(std::move(TR))
22  , m_plus(1, 0)
23  , m_min(0, 1)
24 {
25 }
26 
28 {
29  return Spinor::Zero();
30 }
31 
33 {
34  return Spinor::Zero();
35 }
36 
38 {
39  return m_plus * getScalarT();
40 }
41 
43 {
44  return m_plus * getScalarR();
45 }
46 
48 {
49  return m_min * getScalarT();
50 }
51 
53 {
54  return m_min * getScalarR();
55 }
56 
58 {
59  return Spinor::Zero();
60 }
61 
63 {
64  return Spinor::Zero();
65 }
66 
68 {
69  return (m_plus + m_min) * m_kz;
70 }
71 
72 complex_t ScalarFlux::getScalarR() const
73 {
74  return m_TR.v;
75 }
76 
77 complex_t ScalarFlux::getScalarT() const
78 {
79  return m_TR.u;
80 }
Defines class ScalarFlux.
Spinor R1plus() const override
Definition: ScalarFlux.cpp:32
Spinor T1plus() const override
The following functions return the transmitted and reflected amplitudes for different incoming beam p...
Definition: ScalarFlux.cpp:27
const complex_t m_kz
Signed vertical wavevector component k_z.
Definition: ScalarFlux.h:52
Spinor T1min() const override
Definition: ScalarFlux.cpp:47
ScalarFlux(complex_t kz, Spinor TR)
Definition: ScalarFlux.cpp:19
Spinor R1min() const override
Definition: ScalarFlux.cpp:52
Spinor R2min() const override
Definition: ScalarFlux.cpp:62
const Spinor m_min
Definition: ScalarFlux.h:62
Spinor T2plus() const override
Definition: ScalarFlux.cpp:37
const Spinor m_plus
Definition: ScalarFlux.h:61
Spinor T2min() const override
Definition: ScalarFlux.cpp:57
const Spinor m_TR
Transmission and reflection coefficient.
Definition: ScalarFlux.h:59
complex_t getScalarR() const
Definition: ScalarFlux.cpp:72
complex_t getScalarT() const
Definition: ScalarFlux.cpp:77
Spinor R2plus() const override
Definition: ScalarFlux.cpp:42
Spinor getKz() const override
Returns z-part of the two wavevector eigenmodes.
Definition: ScalarFlux.cpp:67
Definition: Spinor.h:20
complex_t v
Definition: Spinor.h:31
static Spinor Zero()
Definition: Spinor.cpp:23
complex_t u
Definition: Spinor.h:31