BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
Bar.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file Sample/HardParticle/Bar.cpp
6 //! @brief Implements classes Bar*.
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 
17 
18 // ************************************************************************************************
19 // class BarGauss
20 // ************************************************************************************************
21 
22 BarGauss::BarGauss(const std::vector<double> P)
24 {
25  checkNodeArgs();
26 }
27 
28 BarGauss::BarGauss(double length, double width, double height)
29  : BarGauss(std::vector<double>{length, width, height})
30 {
31 }
32 
34 {
35  return new BarGauss(m_length, m_width, m_height);
36 }
37 
38 complex_t BarGauss::factor_x(complex_t qx) const
39 {
41 }
42 
43 // ************************************************************************************************
44 // class BarLorentz
45 // ************************************************************************************************
46 
47 BarLorentz::BarLorentz(const std::vector<double> P)
49 {
50  checkNodeArgs();
51 }
52 
53 BarLorentz::BarLorentz(double length, double width, double height)
54  : BarLorentz(std::vector<double>{length, width, height})
55 {
56 }
57 
59 {
60  return new BarLorentz(m_length, m_width, m_height);
61 }
62 
63 complex_t BarLorentz::factor_x(complex_t qx) const
64 {
66 }
Defines classes Bar*.
Declares computations in namespace ripples.
The form factor of an elongated bar, with Gaussian profile in elongation direction.
Definition: Bar.h:22
complex_t factor_x(complex_t qx) const override
Definition: Bar.cpp:38
BarGauss(double length, double width, double height)
Definition: Bar.cpp:28
BarGauss * clone() const override
Returns a clone of this ISampleNode object.
Definition: Bar.cpp:33
The form factor of an elongated, with Lorentz form factor in elongation direction.
Definition: Bar.h:44
BarLorentz * clone() const override
Returns a clone of this ISampleNode object.
Definition: Bar.cpp:58
complex_t factor_x(complex_t qx) const override
Definition: Bar.cpp:63
BarLorentz(double length, double width, double height)
Definition: Bar.cpp:53
void checkNodeArgs() const
Raises exception if a parameter value is invalid.
Definition: INode.cpp:27
Base class for form factors with a rectangular ripple (bar) profile in the yz plane.
double width() const
const double & m_length
const double & m_width
double height() const
double length() const
const double & m_height
complex_t factor_x_Lorentz(complex_t q, double l)
Definition: Ripples.cpp:30
complex_t factor_x_Gauss(complex_t q, double l)
Definition: Ripples.cpp:25