BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
MinimizerTestPlan Class Referenceabstract

Description

Defines objective function to fit, expected minimum, initial fit parameters and expected values of fit parameters at minimum.

Definition at line 47 of file MinimizerTestPlan.h.

Collaboration diagram for MinimizerTestPlan:
[legend]

Public Member Functions

 MinimizerTestPlan ()=default
 
 MinimizerTestPlan (std::vector< ParameterReference > parameter_references)
 
virtual ~MinimizerTestPlan ()
 
void addParameter (const mumufit::Parameter &param, double expected_value, double tolerance=0.01)
 
virtual bool checkMinimizer (mumufit::Minimizer &minimizer) const =0
 Runs minimization and check minimization result. More...
 

Protected Member Functions

std::vector< double > expectedValues () const
 Return vector of expected parameter values. More...
 
mumufit::Parameters parameters () const
 Returns fit parameters which will be used as initial one for the minimization. More...
 
bool valuesAsExpected (const std::vector< double > &values) const
 Returns true if given values coincide with expected fit parameter values. More...
 

Protected Attributes

std::vector< ParameterReferencem_parameter_references
 

Constructor & Destructor Documentation

◆ MinimizerTestPlan() [1/2]

MinimizerTestPlan::MinimizerTestPlan ( )
default

◆ MinimizerTestPlan() [2/2]

MinimizerTestPlan::MinimizerTestPlan ( std::vector< ParameterReference parameter_references)
inlineexplicit

Definition at line 50 of file MinimizerTestPlan.h.

51  : m_parameter_references(std::move(parameter_references))
52  {
53  }
std::vector< ParameterReference > m_parameter_references

◆ ~MinimizerTestPlan()

MinimizerTestPlan::~MinimizerTestPlan ( )
virtualdefault

Member Function Documentation

◆ addParameter()

void MinimizerTestPlan::addParameter ( const mumufit::Parameter param,
double  expected_value,
double  tolerance = 0.01 
)

Definition at line 40 of file MinimizerTestPlan.cpp.

42 {
43  m_parameter_references.push_back({param, expected_value, tolerance});
44 }

◆ checkMinimizer()

virtual bool MinimizerTestPlan::checkMinimizer ( mumufit::Minimizer minimizer) const
pure virtual

Runs minimization and check minimization result.

◆ expectedValues()

std::vector< double > MinimizerTestPlan::expectedValues ( ) const
protected

Return vector of expected parameter values.

Definition at line 59 of file MinimizerTestPlan.cpp.

60 {
61  std::vector<double> result;
63  result.push_back(ref.expected_value);
64 
65  return result;
66 }
Defines initial settings of single fit parameter and the final value which has to be found in the cou...

◆ parameters()

Parameters MinimizerTestPlan::parameters ( ) const
protected

Returns fit parameters which will be used as initial one for the minimization.

Definition at line 48 of file MinimizerTestPlan.cpp.

49 {
50  Parameters result;
51  for (const auto& ref : m_parameter_references)
52  result.add(ref.parameter);
53 
54  return result;
55 }
A collection of fit parameters.
Definition: Parameters.h:26
void add(const Parameter &par)
Definition: Parameters.cpp:22

References mumufit::Parameters::add().

Here is the call graph for this function:

◆ valuesAsExpected()

bool MinimizerTestPlan::valuesAsExpected ( const std::vector< double > &  values) const
protected

Returns true if given values coincide with expected fit parameter values.

Definition at line 70 of file MinimizerTestPlan.cpp.

71 {
72  bool success = true;
73 
74  if (m_parameter_references.size() != values.size())
75  throw std::runtime_error("FunctionTestPlan::valuesAsExpected() -> Error. Sizes differ.");
76 
77  for (size_t i = 0; i < values.size(); ++i) {
79  double diff = relativeDifference(values[i], ref.expected_value);
80 
81  bool ok = diff <= ref.tolerance;
82 
83  std::cout << ref.parameter.name() << " found:" << values[i]
84  << " expected:" << ref.expected_value << " diff:" << diff << " "
85  << (ok ? "OK" : "FAILED") << std::endl;
86 
87  success &= ok;
88  }
89 
90  return success;
91 }
std::string name() const
Definition: Parameter.cpp:53
double relativeDifference(double a, double b)
Returns the safe relative difference, which is 2(|a-b|)/(|a|+|b|) except in special cases.
Definition: Numeric.cpp:29
const mumufit::Parameter parameter
initial parameter settings
const double tolerance
tolerance on found value wrt expected value
const double expected_value
expected value to find in the fit

References ParameterReference::expected_value, mumufit::Parameter::name(), ParameterReference::parameter, Numeric::relativeDifference(), and ParameterReference::tolerance.

Here is the call graph for this function:

Member Data Documentation

◆ m_parameter_references

std::vector<ParameterReference> MinimizerTestPlan::m_parameter_references
protected

Definition at line 68 of file MinimizerTestPlan.h.


The documentation for this class was generated from the following files: