ARTS  2.3.1285(git:92a29ea9-dirty)
AgendaWrapper Class Reference

Wrapper class for forward model. More...

#include <agenda_wrapper.h>

Public Member Functions

 AgendaWrapper (Workspace *ws_, unsigned int m_, unsigned int n_, Matrix &jacobian_, Vector &yi_, const Agenda *inversion_iterate_agenda_)
 Create inversion_iterate_agendaExecute wrapper. More...
 
 AgendaWrapper (const AgendaWrapper &)=delete
 
 AgendaWrapper (AgendaWrapper &&)=delete
 
AgendaWrapperoperator= (const AgendaWrapper &)=delete
 
AgendaWrapperoperator= (AgendaWrapper &&)=delete
 
OEMMatrixReference Jacobian (const OEMVector &xi, OEMVector &yi_)
 Evaluate forward model and compute Jacobian. More...
 
OEMVector evaluate (const OEMVector &xi)
 Evaluate forward model. More...
 

Public Attributes

const unsigned int m
 
const unsigned int n
 
OEMMatrixReference jacobian
 
OEMVector yi
 

Private Attributes

Workspacews
 
const Agendainversion_iterate_agenda
 
bool reuse_jacobian
 
unsigned int iteration_counter
 

Detailed Description

Wrapper class for forward model.

Wrapper class for the inversion_iterate_agendaExecute function to implement the forward model interface used by the non-linear oem function in oem.cc. The object is constructed with the pointers to the variables used as arguments for the function and then simply forwards the calls made to ForwardModel::evaluate() and ForwardModel::evaluate_jacobian() to inversion_iterate_agendaExecute.

Definition at line 24 of file agenda_wrapper.h.

Constructor & Destructor Documentation

◆ AgendaWrapper() [1/3]

AgendaWrapper::AgendaWrapper ( Workspace ws_,
unsigned int  m_,
unsigned int  n_,
Matrix jacobian_,
Vector yi_,
const Agenda inversion_iterate_agenda_ 
)
inline

Create inversion_iterate_agendaExecute wrapper.

Initializes the wrapper object for the inversion_iterate_agendaExecute method. The object forwards the evaluate() and evaluate_jacobian() calls made by the iterative OEM methods to inversion_iterate_agendaExecute using the arguments provided to the constructor.

Parameters
ws_Pointer to the workspace argument of the agenda execution function. function.
inversion_iterate_agenda_Pointer to the x argument of the agenda execution function.

Definition at line 45 of file agenda_wrapper.h.

References operator=().

◆ AgendaWrapper() [2/3]

AgendaWrapper::AgendaWrapper ( const AgendaWrapper )
delete

◆ AgendaWrapper() [3/3]

AgendaWrapper::AgendaWrapper ( AgendaWrapper &&  )
delete

Member Function Documentation

◆ evaluate()

OEMVector AgendaWrapper::evaluate ( const OEMVector &  xi)
inline

Evaluate forward model.

Forwards the call to evaluate that is made by Gauss-Newton and Levenberg-Marquardt OEM methods to the function pointers provided.

Parameters
[out]yThe measurement vector y = K(x) for the current state vector x.
[in]xThe current state vector x.

Definition at line 105 of file agenda_wrapper.h.

References inversion_iterate_agenda, inversion_iterate_agendaExecute(), iteration_counter, reuse_jacobian, ws, and yi.

◆ Jacobian()

OEMMatrixReference AgendaWrapper::Jacobian ( const OEMVector &  xi,
OEMVector &  yi_ 
)
inline

Evaluate forward model and compute Jacobian.

Forwards the call to evaluate_jacobian() and evaluate() that is made by Gauss-Newton and Levenberg-Marquardt OEM methods using the variables pointed to by the pointers provided to the constructor as arguments.

Parameters
[out]yThe measurement vector y = K(x) for the current state vector x as computed by the forward model.
[out]JThe Jacobian Ki=d/dx(K(x)) of the forward model.
[in]xThe current state vector x.

Definition at line 79 of file agenda_wrapper.h.

References inversion_iterate_agenda, inversion_iterate_agendaExecute(), iteration_counter, jacobian, reuse_jacobian, ws, and yi.

◆ operator=() [1/2]

AgendaWrapper& AgendaWrapper::operator= ( const AgendaWrapper )
delete

Referenced by AgendaWrapper().

◆ operator=() [2/2]

AgendaWrapper& AgendaWrapper::operator= ( AgendaWrapper &&  )
delete

Member Data Documentation

◆ inversion_iterate_agenda

const Agenda* AgendaWrapper::inversion_iterate_agenda
private

Definition at line 122 of file agenda_wrapper.h.

Referenced by evaluate(), and Jacobian().

◆ iteration_counter

unsigned int AgendaWrapper::iteration_counter
private

Definition at line 124 of file agenda_wrapper.h.

Referenced by evaluate(), and Jacobian().

◆ jacobian

OEMMatrixReference AgendaWrapper::jacobian

Definition at line 29 of file agenda_wrapper.h.

Referenced by Jacobian().

◆ m

const unsigned int AgendaWrapper::m

Definition at line 28 of file agenda_wrapper.h.

◆ n

const unsigned int AgendaWrapper::n

Definition at line 28 of file agenda_wrapper.h.

◆ reuse_jacobian

bool AgendaWrapper::reuse_jacobian
private

Definition at line 123 of file agenda_wrapper.h.

Referenced by evaluate(), and Jacobian().

◆ ws

Workspace* AgendaWrapper::ws
private

Definition at line 121 of file agenda_wrapper.h.

Referenced by evaluate(), and Jacobian().

◆ yi

OEMVector AgendaWrapper::yi

Definition at line 30 of file agenda_wrapper.h.

Referenced by evaluate(), and Jacobian().


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