BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FitStatus Class Reference

Contains status of the fitting (running, interupted etc) and all intermediate information which has to be collected during the fit. More...

Collaboration diagram for FitStatus:
[legend]

Public Member Functions

 FitStatus (const FitObjective *fit_objective)
 
 ~FitStatus ()
 
void addObserver (int every_nth, fit_observer_t)
 
void finalize (const mumufit::MinimizerResult &result)
 Should be explicitely called on last iteration to notify all observers. More...
 
void initPrint (int every_nth)
 
bool isCompleted () const
 
bool isInterrupted () const
 
IterationInfo iterationInfo () const
 
mumufit::MinimizerResult minimizerResult () const
 
void setInterrupted ()
 
void update (const mumufit::Parameters &params, double chi2)
 

Private Types

enum  EFitStatus {
  IDLE , RUNNING , COMPLETED , FAILED ,
  INTERRUPTED
}
 

Private Attributes

const FitObjectivem_fit_objective
 
EFitStatus m_fit_status
 
IterationInfo m_iterationInfo
 
std::unique_ptr< mumufit::MinimizerResultm_minimizer_result
 
FitObserver< FitObjectivem_observers
 
std::unique_ptr< FitPrintServicem_print_service
 

Detailed Description

Contains status of the fitting (running, interupted etc) and all intermediate information which has to be collected during the fit.

Owned by FitObjective.

Definition at line 38 of file FitStatus.h.

Member Enumeration Documentation

◆ EFitStatus

enum FitStatus::EFitStatus
private
Enumerator
IDLE 
RUNNING 
COMPLETED 
FAILED 
INTERRUPTED 

Definition at line 61 of file FitStatus.h.

Constructor & Destructor Documentation

◆ FitStatus()

FitStatus::FitStatus ( const FitObjective fit_objective)

Definition at line 20 of file FitStatus.cpp.

21  : m_fit_status(IDLE), m_fit_objective(fit_objective)
22 {
23 }
EFitStatus m_fit_status
Definition: FitStatus.h:62
const FitObjective * m_fit_objective
Definition: FitStatus.h:65

◆ ~FitStatus()

FitStatus::~FitStatus ( )
default

Member Function Documentation

◆ addObserver()

void FitStatus::addObserver ( int  every_nth,
fit_observer_t  observer 
)

Definition at line 63 of file FitStatus.cpp.

64 {
65  m_observers.addObserver(every_nth, observer);
66 }
void addObserver(int every_nth, observer_t observer)
Adds observer to the list.
Definition: FitObserver.h:67
FitObserver< FitObjective > m_observers
Definition: FitStatus.h:63

References FitObserver< T >::addObserver(), and m_observers.

Referenced by initPrint().

Here is the call graph for this function:

◆ finalize()

void FitStatus::finalize ( const mumufit::MinimizerResult result)

Should be explicitely called on last iteration to notify all observers.

Definition at line 82 of file FitStatus.cpp.

83 {
87 }
void notify_all(const T &data)
Definition: FitObserver.h:82
std::unique_ptr< mumufit::MinimizerResult > m_minimizer_result
Definition: FitStatus.h:67
Result of minimization round.

References COMPLETED, m_fit_objective, m_fit_status, m_minimizer_result, m_observers, and FitObserver< T >::notify_all().

Here is the call graph for this function:

◆ initPrint()

void FitStatus::initPrint ( int  every_nth)

Definition at line 52 of file FitStatus.cpp.

53 {
55 
56  FitObserver<FitObjective>::observer_t callback = [&](const FitObjective& objective) {
57  m_print_service->print(objective);
58  };
59 
60  addObserver(every_nth, callback);
61 }
Holds vector of SimDataPairs (experimental data and simulation results) for use in fitting.
Definition: FitObjective.h:33
Contains collection of observers and call them at specified intervals.
Definition: FitObserver.h:30
Prints fit statistics to standard output during minimizer iterations.
void addObserver(int every_nth, fit_observer_t)
Definition: FitStatus.cpp:63
std::unique_ptr< FitPrintService > m_print_service
Definition: FitStatus.h:64

References addObserver(), and m_print_service.

Here is the call graph for this function:

◆ isCompleted()

bool FitStatus::isCompleted ( ) const

Definition at line 37 of file FitStatus.cpp.

38 {
39  return m_fit_status == COMPLETED;
40 }

References COMPLETED, and m_fit_status.

◆ isInterrupted()

bool FitStatus::isInterrupted ( ) const

Definition at line 32 of file FitStatus.cpp.

33 {
34  return m_fit_status == INTERRUPTED;
35 }

References INTERRUPTED, and m_fit_status.

Referenced by update().

◆ iterationInfo()

IterationInfo FitStatus::iterationInfo ( ) const

Definition at line 68 of file FitStatus.cpp.

69 {
70  return m_iterationInfo;
71 }
IterationInfo m_iterationInfo
Definition: FitStatus.h:66

References m_iterationInfo.

◆ minimizerResult()

mumufit::MinimizerResult FitStatus::minimizerResult ( ) const

Definition at line 73 of file FitStatus.cpp.

74 {
75  if (!m_minimizer_result)
76  throw std::runtime_error("FitStatus::minimizerResult() -> Minimizer result wasn't set. "
77  "Make sure that FitObjective::finalize() was called.");
78 
80 }

References m_minimizer_result.

◆ setInterrupted()

void FitStatus::setInterrupted ( )

Definition at line 27 of file FitStatus.cpp.

28 {
30 }

References INTERRUPTED, and m_fit_status.

◆ update()

void FitStatus::update ( const mumufit::Parameters params,
double  chi2 
)

Definition at line 42 of file FitStatus.cpp.

43 {
44  if (!isInterrupted())
46 
47  m_iterationInfo.update(params, chi2);
48 
50 }
void notify(const T &data)
Notifies all observers at their personally specified intervals.
Definition: FitObserver.h:72
bool isInterrupted() const
Definition: FitStatus.cpp:32
void update(const mumufit::Parameters &params, double chi2)

References isInterrupted(), m_fit_objective, m_fit_status, m_iterationInfo, m_observers, FitObserver< T >::notify(), RUNNING, and IterationInfo::update().

Here is the call graph for this function:

Member Data Documentation

◆ m_fit_objective

const FitObjective* FitStatus::m_fit_objective
private

Definition at line 65 of file FitStatus.h.

Referenced by finalize(), and update().

◆ m_fit_status

EFitStatus FitStatus::m_fit_status
private

Definition at line 62 of file FitStatus.h.

Referenced by finalize(), isCompleted(), isInterrupted(), setInterrupted(), and update().

◆ m_iterationInfo

IterationInfo FitStatus::m_iterationInfo
private

Definition at line 66 of file FitStatus.h.

Referenced by iterationInfo(), and update().

◆ m_minimizer_result

std::unique_ptr<mumufit::MinimizerResult> FitStatus::m_minimizer_result
private

Definition at line 67 of file FitStatus.h.

Referenced by finalize(), and minimizerResult().

◆ m_observers

FitObserver<FitObjective> FitStatus::m_observers
private

Definition at line 63 of file FitStatus.h.

Referenced by addObserver(), finalize(), and update().

◆ m_print_service

std::unique_ptr<FitPrintService> FitStatus::m_print_service
private

Definition at line 64 of file FitStatus.h.

Referenced by initPrint().


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