BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
DecouplingApproximationStrategy.h
Go to the documentation of this file.
1
// ************************************************************************************************
2
//
3
// BornAgain: simulate and fit reflection and scattering
4
//
5
//! @file Resample/Interparticle/DecouplingApproximationStrategy.h
6
//! @brief Defines class DecouplingApproximationStrategy.
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
15
#ifdef SWIG
16
#error no need to expose this header to Swig
17
#endif
18
19
#ifndef USER_API
20
#ifndef BORNAGAIN_RESAMPLE_INTERPARTICLE_DECOUPLINGAPPROXIMATIONSTRATEGY_H
21
#define BORNAGAIN_RESAMPLE_INTERPARTICLE_DECOUPLINGAPPROXIMATIONSTRATEGY_H
22
23
#include "
Resample/Interparticle/IInterparticleStrategy.h
"
24
25
class
DiffuseElement
;
26
27
//! Strategy class to compute the total scattering from a particle layout
28
//! in the decoupling approximation.
29
30
class
DecouplingApproximationStrategy
:
public
IInterparticleStrategy
{
31
public
:
32
DecouplingApproximationStrategy
(
33
const
std::vector<std::unique_ptr<const CoherentFFSum>>& weighted_formfactors,
34
const
IInterference
* iff,
SimulationOptions
sim_params,
bool
polarized);
35
36
private
:
37
double
scalarCalculation
(
const
DiffuseElement
& ele)
const override
;
38
double
polarizedCalculation
(
const
DiffuseElement
& ele)
const override
;
39
40
const
std::unique_ptr<IInterference>
m_iff
;
41
};
42
43
#endif
// BORNAGAIN_RESAMPLE_INTERPARTICLE_DECOUPLINGAPPROXIMATIONSTRATEGY_H
44
#endif
// USER_API
IInterparticleStrategy.h
Defines interface IInterparticleStrategy.
DecouplingApproximationStrategy
Strategy class to compute the total scattering from a particle layout in the decoupling approximation...
Definition:
DecouplingApproximationStrategy.h:30
DecouplingApproximationStrategy::polarizedCalculation
double polarizedCalculation(const DiffuseElement &ele) const override
This is the polarized version.
Definition:
DecouplingApproximationStrategy.cpp:52
DecouplingApproximationStrategy::m_iff
const std::unique_ptr< IInterference > m_iff
Definition:
DecouplingApproximationStrategy.h:40
DecouplingApproximationStrategy::scalarCalculation
double scalarCalculation(const DiffuseElement &ele) const override
Returns the total incoherent and coherent scattering intensity for given kf and for one particle layo...
Definition:
DecouplingApproximationStrategy.cpp:33
DecouplingApproximationStrategy::DecouplingApproximationStrategy
DecouplingApproximationStrategy(const std::vector< std::unique_ptr< const CoherentFFSum >> &weighted_formfactors, const IInterference *iff, SimulationOptions sim_params, bool polarized)
Definition:
DecouplingApproximationStrategy.cpp:21
DiffuseElement
Data stucture containing both input and output of a single detector cell.
Definition:
DiffuseElement.h:37
IInterference
Abstract base class of interference functions.
Definition:
IInterference.h:24
IInterparticleStrategy
Abstract base class of DecouplingApproximationStrategy, SSCAStrategy. Provides function 'evaluate' th...
Definition:
IInterparticleStrategy.h:41
SimulationOptions
Collect the different options for simulation.SimulationOptions.
Definition:
SimulationOptions.h:27
Resample
Interparticle
DecouplingApproximationStrategy.h
Generated by
1.9.1