BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Fit::Kernel Class Reference
Collaboration diagram for Fit::Kernel:

Public Member Functions

 Kernel ()
 
 ~Kernel ()
 
void setMinimizer (const std::string &minimizerName, const std::string &algorithmName="", const std::string &options="")
 
void setMinimizer (IMinimizer *minimizer)
 
MinimizerResult minimize (fcn_scalar_t fcn, const Parameters &parameters)
 
MinimizerResult minimize (fcn_residual_t fcn, const Parameters &parameters)
 

Private Member Functions

void setParameters (const Parameters &parameters)
 

Private Attributes

Parameters m_parameters
 
std::unique_ptr< IMinimizerm_minimizer
 
WallclockTimer m_timer
 

Detailed Description

A main class to run fitting.

Definition at line 33 of file Kernel.h.

Constructor & Destructor Documentation

◆ Kernel()

Kernel::Kernel ( )

Definition at line 27 of file Kernel.cpp.

28 {
30 }
void setMinimizer(const std::string &minimizerName, const std::string &algorithmName="", const std::string &options="")
Definition: Kernel.cpp:34
const std::string default_minimizer
Definition: Kernel.cpp:23
const std::string default_algorithm
Definition: Kernel.cpp:24

References anonymous_namespace{Kernel.cpp}::default_algorithm, anonymous_namespace{Kernel.cpp}::default_minimizer, and setMinimizer().

Here is the call graph for this function:

◆ ~Kernel()

Kernel::~Kernel ( )
default

Member Function Documentation

◆ setMinimizer() [1/2]

void Kernel::setMinimizer ( const std::string &  minimizerName,
const std::string &  algorithmName = "",
const std::string &  options = "" 
)

Definition at line 34 of file Kernel.cpp.

36 {
37  m_minimizer.reset(MinimizerFactory::createMinimizer(minimizerName, algorithmName, options));
38 }
std::unique_ptr< IMinimizer > m_minimizer
Definition: Kernel.h:51
static IMinimizer * createMinimizer(const std::string &minimizerName, const std::string &algorithmType="", const std::string &optionString="")

References MinimizerFactory::createMinimizer(), and m_minimizer.

Referenced by Kernel().

Here is the call graph for this function:

◆ setMinimizer() [2/2]

void Kernel::setMinimizer ( IMinimizer minimizer)

Definition at line 40 of file Kernel.cpp.

41 {
42  m_minimizer.reset(minimizer);
43 }

References m_minimizer.

◆ minimize() [1/2]

MinimizerResult Kernel::minimize ( fcn_scalar_t  fcn,
const Parameters parameters 
)

Definition at line 45 of file Kernel.cpp.

46 {
47  setParameters(parameters);
48 
49  m_timer.start();
50  if (m_minimizer->requiresResiduals())
51  throw std::runtime_error(
52  "Error in Kernel::minimize: the chosen minimizer requires residuals computation. "
53  "Please use FitObjective::evaluate_residuals with this minimizer.");
54  auto result = m_minimizer->minimize_scalar(fcn, parameters);
55  m_timer.stop();
56 
57  result.setDuration(m_timer.runTime());
58  return result;
59 }
WallclockTimer m_timer
Definition: Kernel.h:52
void setParameters(const Parameters &parameters)
Definition: Kernel.cpp:73
double runTime() const
returns run time in sec.

References m_minimizer, m_timer, WallclockTimer::runTime(), setParameters(), WallclockTimer::start(), and WallclockTimer::stop().

Here is the call graph for this function:

◆ minimize() [2/2]

MinimizerResult Kernel::minimize ( fcn_residual_t  fcn,
const Parameters parameters 
)

Definition at line 61 of file Kernel.cpp.

62 {
63  setParameters(parameters);
64 
65  m_timer.start();
66  auto result = m_minimizer->minimize_residual(fcn, parameters);
67  m_timer.stop();
68 
69  result.setDuration(m_timer.runTime());
70  return result;
71 }

References m_minimizer, m_timer, WallclockTimer::runTime(), setParameters(), WallclockTimer::start(), and WallclockTimer::stop().

Here is the call graph for this function:

◆ setParameters()

void Kernel::setParameters ( const Parameters parameters)
private

Definition at line 73 of file Kernel.cpp.

74 {
75  m_parameters = parameters;
76 }
Parameters m_parameters
Definition: Kernel.h:50

References m_parameters.

Referenced by minimize().

Member Data Documentation

◆ m_parameters

Parameters Fit::Kernel::m_parameters
private

Definition at line 50 of file Kernel.h.

Referenced by setParameters().

◆ m_minimizer

std::unique_ptr<IMinimizer> Fit::Kernel::m_minimizer
private

Definition at line 51 of file Kernel.h.

Referenced by minimize(), and setMinimizer().

◆ m_timer

WallclockTimer Fit::Kernel::m_timer
private

Definition at line 52 of file Kernel.h.

Referenced by minimize().


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