20 complex_t ripples::factor_x_box(complex_t q,
double r)
25 complex_t ripples::factor_x_Gauss(complex_t q,
double r)
27 return r * exp(-q * r / 8.0);
30 complex_t ripples::factor_x_Lorentz(complex_t q,
double r)
32 return r / (1.0 + (q * r) * (q * r));
38 const complex_t qyWdiv2 = width * qy / 2.0;
39 const complex_t qzHdiv2 = height * qz / 2.0;
48 complex_t factor = width / M_PI;
53 return factor * M_PI_2 * height;
54 complex_t aaa = qy * width / (M_TWOPI);
55 complex_t aaa2 = aaa * aaa;
57 return factor * M_PI_4 * height;
62 const complex_t ay = qy * width / M_TWOPI;
63 const complex_t az = qz * (height / 2);
65 const auto integrand = [&](
double u) -> complex_t {
66 return sin(u) *
exp_I(az * std::cos(u)) * (ay == 0. ? u : sin(ay * u) / ay);
69 return factor * integral *
exp_I(az) * (height / 2);
77 const complex_t factor = height * width;
78 const complex_t qyW2 = qy * width * 0.5;
79 const complex_t qyd = qy * asymmetry;
80 const complex_t qzH = qz * height;
81 const complex_t a = qzH + qyd;
83 const double a_scale = std::abs(a);
84 const double w_scale = std::abs(qyW2);
86 if (w_scale < 1.e-5) {
95 const complex_t gamma_p = (a + qyW2) * 0.5;
96 const complex_t gamma_m = (a - qyW2) * 0.5;
99 result =
mul_I(
exp_I(-qyd) * result / (qyW2 * 2.));
101 return factor * result;
complex_t mul_I(complex_t z)
Returns product I*z, where I is the imaginary unit.
complex_t exp_I(complex_t z)
Returns exp(I*z), where I is the imaginary unit.
Defines classes RealIntegrator, ComplexIntegrator.
Defines M_PI and some more mathematical constants.
Defines namespace MathFunctions.
Declares computations in namespace ripples.
To integrate a complex function of a real variable.
double sinc(double x)
sinc function:
complex_t profile_yz_cosine(complex_t qy, complex_t qz, double width, double height)
Complex form factor of triangular ripple.
complex_t profile_yz_bar(complex_t qy, complex_t qz, double width, double height)
Complex form factor of rectangular ripple (bar).
complex_t profile_yz_triangular(complex_t qy, complex_t qz, double width, double height, double asymmetry)
Complex form factor of triangular ripple.