ARTS  2.4.0(git:4fb77825)
oem::AgendaWrapper Class Reference

Interface to ARTS inversion_iterate_agenda. More...

#include <oem.h>

Public Member Functions

 AgendaWrapper (Workspace *ws, unsigned int measurement_space_dimension, unsigned int state_space_dimension, ::Matrix &arts_jacobian, ::Vector &arts_y, const Agenda *inversion_iterate_agenda)
 Create inversion_iterate_agendaExecute wrapper. More...
 
ArtsVector get_measurement_vector ()
 Return most recently simulated measurement vector. More...
 
 AgendaWrapper (const AgendaWrapper &)=delete
 
 AgendaWrapper (AgendaWrapper &&)=delete
 
AgendaWrapperoperator= (const AgendaWrapper &)=delete
 
AgendaWrapperoperator= (AgendaWrapper &&)=delete
 
MatrixReference Jacobian (const Vector &xi, Vector &yi)
 Evaluate forward model and compute Jacobian. More...
 
Vector evaluate (const Vector &xi)
 Evaluate the ARTS forward model. More...
 

Public Attributes

const unsigned int m = 0
 Dimension of the measurement space. More...
 
const unsigned int n = 0
 Dimension of the state space. More...
 

Private Attributes

const Agendainversion_iterate_agenda_
 Pointer to the inversion_iterate_agenda of the workspace. More...
 
unsigned int iteration_counter_
 
MatrixReference jacobian_
 Reference to the jacobian WSV. More...
 
bool reuse_jacobian_
 Flag whether to reuse Jacobian from previous calculation. More...
 
Workspacews_
 Pointer to current ARTS workspace. More...
 
Vector yi_
 Cached simulation result. More...
 

Detailed Description

Interface to ARTS inversion_iterate_agenda.

This wrapper class implements the invlib-to-ARTS interface to the inversion_iterate_agendaExecute function, which implements the forward model used in the invlib iteration.

Definition at line 462 of file oem.h.

Constructor & Destructor Documentation

◆ AgendaWrapper() [1/3]

oem::AgendaWrapper::AgendaWrapper ( Workspace ws,
unsigned int  measurement_space_dimension,
unsigned int  state_space_dimension,
::Matrix arts_jacobian,
::Vector arts_y,
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
[in]wsPointer to the current ARTS workspace.
[in]measurment_space_dimensionDimension of the measurement space
[in]arts_jacobianReference to the jacobian WSV of the workspace.
[in]arts_yReference to the arts y WSV.
[in]inversion_iterate_agendaPointer to the x argument of the agenda execution function.

Definition at line 483 of file oem.h.

◆ AgendaWrapper() [2/3]

oem::AgendaWrapper::AgendaWrapper ( const AgendaWrapper )
delete

◆ AgendaWrapper() [3/3]

oem::AgendaWrapper::AgendaWrapper ( AgendaWrapper &&  )
delete

Member Function Documentation

◆ evaluate()

Vector oem::AgendaWrapper::evaluate ( const Vector xi)
inline

Evaluate the ARTS forward model.

Call the ARTS forward model defined by inversion_iterate_agenda and return resulting observation vector.

Parameters
[in]xiThe current state vector of the OEM iteration.
Returns
The observation vector y contained in the yf WSV after executing the inversion_iterate_agenda.

Definition at line 543 of file oem.h.

References inversion_iterate_agenda_, inversion_iterate_agendaExecute(), iteration_counter_, reuse_jacobian_, ws_, and yi_.

◆ get_measurement_vector()

ArtsVector oem::AgendaWrapper::get_measurement_vector ( )
inline

Return most recently simulated measurement vector.

Returns
The simulated observation vector.

Definition at line 503 of file oem.h.

References yi_.

◆ Jacobian()

MatrixReference oem::AgendaWrapper::Jacobian ( const Vector xi,
Vector 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 521 of file oem.h.

References inversion_iterate_agenda_, inversion_iterate_agendaExecute(), iteration_counter_, jacobian_, reuse_jacobian_, ws_, and yi_.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

Member Data Documentation

◆ inversion_iterate_agenda_

const Agenda* oem::AgendaWrapper::inversion_iterate_agenda_
private

Pointer to the inversion_iterate_agenda of the workspace.

Definition at line 561 of file oem.h.

Referenced by evaluate(), and Jacobian().

◆ iteration_counter_

unsigned int oem::AgendaWrapper::iteration_counter_
private

Definition at line 562 of file oem.h.

Referenced by evaluate(), and Jacobian().

◆ jacobian_

MatrixReference oem::AgendaWrapper::jacobian_
private

Reference to the jacobian WSV.

Definition at line 564 of file oem.h.

Referenced by Jacobian().

◆ m

const unsigned int oem::AgendaWrapper::m = 0

Dimension of the measurement space.

Definition at line 465 of file oem.h.

◆ n

const unsigned int oem::AgendaWrapper::n = 0

Dimension of the state space.

Definition at line 467 of file oem.h.

◆ reuse_jacobian_

bool oem::AgendaWrapper::reuse_jacobian_
private

Flag whether to reuse Jacobian from previous calculation.

Definition at line 566 of file oem.h.

Referenced by evaluate(), and Jacobian().

◆ ws_

Workspace* oem::AgendaWrapper::ws_
private

Pointer to current ARTS workspace.

Definition at line 568 of file oem.h.

Referenced by evaluate(), and Jacobian().

◆ yi_

Vector oem::AgendaWrapper::yi_
private

Cached simulation result.

Definition at line 570 of file oem.h.

Referenced by evaluate(), get_measurement_vector(), and Jacobian().


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