BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Implements Nevot-Croce roughness for a scaler computation. More...
Public Types | |
using | coefficient_pointer_type = std::unique_ptr< const coefficient_type > |
using | coefficient_type = ScalarRTCoefficients |
using | coeffs_t = std::vector< coefficient_pointer_type > |
Public Member Functions | |
virtual std::variant< complex_t, Eigen::Matrix2cd > | computeTopLayerR (const std::vector< Slice > &slices, const std::vector< complex_t > &kz) const override |
Computes the Fresnel R coefficient for the top layer only Introduced in order to speed up pure reflectivity computations. More... | |
virtual ISpecularStrategy::coeffs_t | Execute (const std::vector< Slice > &slices, const kvector_t &k) const override |
Computes refraction angles and transmission/reflection coefficients for given coherent wave propagation in a multilayer. More... | |
virtual ISpecularStrategy::coeffs_t | Execute (const std::vector< Slice > &slices, const std::vector< complex_t > &kz) const override |
Private Member Functions | |
void | calculateUpFromLayer (std::vector< ScalarRTCoefficients > &coeff, const std::vector< Slice > &slices, const std::vector< complex_t > &kz) const |
std::vector< ScalarRTCoefficients > | computeTR (const std::vector< Slice > &slices, const std::vector< complex_t > &kz) const |
virtual std::pair< complex_t, complex_t > | transition (complex_t kzi, complex_t kzi1, double sigma) const override |
Roughness is modelled by a Gaussian profile, i.e. More... | |
Static Private Member Functions | |
static void | setZeroBelow (std::vector< ScalarRTCoefficients > &coeff, size_t current_layer) |
Implements Nevot-Croce roughness for a scaler computation.
Implements the transition function that includes Nevot-Croce roughness in the computation of the coefficients for coherent wave propagation in a multilayer by applying modified Fresnel coefficients.
Definition at line 35 of file SpecularScalarNCStrategy.h.
|
inherited |
Definition at line 43 of file SpecularScalarStrategy.h.
|
inherited |
Definition at line 42 of file SpecularScalarStrategy.h.
|
inherited |
Definition at line 44 of file SpecularScalarStrategy.h.
|
privateinherited |
Definition at line 116 of file SpecularScalarStrategy.cpp.
References exp_I(), and SpecularScalarStrategy::transition().
Referenced by SpecularScalarStrategy::computeTR().
|
overridevirtualinherited |
Computes the Fresnel R coefficient for the top layer only Introduced in order to speed up pure reflectivity computations.
Implements ISpecularStrategy.
Definition at line 49 of file SpecularScalarStrategy.cpp.
References exp_I(), and SpecularScalarStrategy::transition().
|
privateinherited |
Definition at line 83 of file SpecularScalarStrategy.cpp.
References SpecularScalarStrategy::calculateUpFromLayer().
Referenced by SpecularScalarStrategy::Execute().
|
overridevirtualinherited |
Computes refraction angles and transmission/reflection coefficients for given coherent wave propagation in a multilayer.
Implements ISpecularStrategy.
Definition at line 28 of file SpecularScalarStrategy.cpp.
References KzComputation::computeReducedKz().
|
overridevirtualinherited |
Implements ISpecularStrategy.
Definition at line 35 of file SpecularScalarStrategy.cpp.
References SpecularScalarStrategy::computeTR().
|
staticprivateinherited |
Definition at line 107 of file SpecularScalarStrategy.cpp.
|
overrideprivatevirtual |
Roughness is modelled by a Gaussian profile, i.e.
Nevot-Croce factors for the reflection coefficients. Implementation follows A. Gibaud and G. Vignaud, in X-ray and Neutron Reflectivity, edited by J. Daillant and A. Gibaud, volume 770 of Lecture Notes in Physics (2009)
Implements SpecularScalarStrategy.
Definition at line 18 of file SpecularScalarNCStrategy.cpp.