Class xlifepp::Malyuzhinets#

class Malyuzhinets#

describes the class providing the computation of Malyuzhinets function involved in wedge diffraction

Public Functions

Malyuzhinets(real_t wa, int_t ng = 2, CalType qr = _laguerreCal, bool adapt = true)#

constructor

complex_t compute(complex_t z) const#

compute Malyuzhinets function at a point z

compute Malyuzhinets function at points zs

std::vector<complex_t> compute(const std::vector<complex_t> &zs, bool parallel = true) const#

compute Malyuzhinets function at points zs

complex_t integral(real_t t0, real_t tf, const complex_t &z) const#

integral at z

integral of the Malyuzhinets integrand on [t0,tf] (or [t0,+inf[ with Laguerre) at z the object and z are passed to mal_integrand through local parameters (no shared state): the function may be called concurrently (OpenMP) on the same object

compute Malyuzhinets function at point z

std::vector<complex_t> integral(real_t t0, real_t tf, const std::vector<complex_t> &zs) const#

integral at zs

std::vector<complex_t> integrand(const std::vector<real_t> &ts, const complex_t &z) const#

integrand at (ts,z)

complex_t integrand(real_t t, const complex_t &z) const#

integrand at (t,z)

inline complex_t operator()(complex_t z) const#

< compute Malyuzhinets function at a point z

inline std::vector<complex_t> operator()(const std::vector<complex_t> &zs, bool parallel = true) const#

< compute Malyuzhinets function at points zs

Public Members

bool adaptive#

true* if local or global adaptive quadrature must be used

real_t eps#

relative tolerance when using adaptive quadrature (default 1E-4)

mutable std::vector<real_t> lagPoints#

to store Laguerre points

mutable std::vector<real_t> lagWeights#

to store Laguerre weights

number_t ngamma#

number of Gamma function (default 2)

number_t nq#

number of quadrature points (default 32)

Parameters pars#

internal parameters

real_t Phi#

wedge angle

CalType quad#

quadrature method (_trapezeCal, _laguerreCal*,_defaultCal),

mutable complex_t z_#

current z