ARTS  2.3.1285(git:92a29ea9-dirty)
oem Namespace Reference

Classes

class  AgendaWrapper
 Interface to ARTS inversion_iterate_agenda. More...
 
class  AgendaWrapperMPI
 Interface for distributed ARTS forward model. More...
 
class  ArtsLog
 OEM log output. More...
 
class  NormalizingSolver
 Normalizing solver. More...
 
struct  OptimizerLog
 Log customization for different optimization methods. More...
 
struct  OptimizerLog< invlib::GaussNewton< RealType, Solver > >
 Log customization for GN method. More...
 
struct  OptimizerLog< invlib::LevenbergMarquardt< RealType, DampingMatrix, Solver > >
 Log customization for LM method. More...
 

Typedefs

using Vector = invlib::Vector< ArtsVector >
 invlib wrapper type for ARTS vectors. More...
 
using Matrix = invlib::Matrix< ArtsMatrix >
 invlib wrapper type for ARTS matrices. More...
 
using MatrixReference = invlib::Matrix< ArtsMatrixReference<::Matrix > >
 invlib wrapper type for ARTS matrices to be passed by reference. More...
 
using CovarianceMatrix = invlib::Matrix< ArtsCovarianceMatrixWrapper >
 invlib wrapper type for ARTS the ARTS covariance class. More...
 
using Identity = invlib::MatrixIdentity< Matrix >
 
template<typename ForwardModel >
using OEM_STANDARD = invlib::MAP< ForwardModel, Matrix, CovarianceMatrix, CovarianceMatrix, Vector, Formulation::STANDARD, invlib::Rodgers531 >
 OEM standard form. More...
 
template<typename ForwardModel >
using OEM_NFORM = invlib::MAP< ForwardModel, Matrix, CovarianceMatrix, CovarianceMatrix, Vector, Formulation::NFORM >
 OEM n form. More...
 
template<typename ForwardModel >
using OEM_MFORM = invlib::MAP< ForwardModel, Matrix, CovarianceMatrix, CovarianceMatrix, Vector, Formulation::MFORM >
 OEM m form. More...
 
using Std = NormalizingSolver< Matrix, invlib::Standard >
 The invlib standard solver. More...
 
using CG = NormalizingSolver< Matrix, invlib::ConjugateGradient<> >
 The invlib CG solver. More...
 
using GN = invlib::GaussNewton< Numeric, Std >
 OEM Gauss-Newton optimization using normed ARTS QR solver. More...
 
using GN_CG = invlib::GaussNewton< Numeric, CG >
 Gauss-Newton (GN) optimization using normed CG solver. More...
 
using LM = invlib::LevenbergMarquardt< Numeric, CovarianceMatrix, Std >
 Levenberg-Marquardt (LM) optimization using normed ARTS QR solver. More...
 
using LM_CG = invlib::LevenbergMarquardt< Numeric, CovarianceMatrix, CG >
 Levenberg-Marquardt (LM) optimization using normed CG solver. More...
 
using MPIMatrix = invlib::Matrix< invlib::MPIMatrix< invlib::Timer< ArtsMatrix > >>
 MPI-distributed matrix type based on ARTS built-in dense matrices. More...
 
using MPICovarianceMatrix = invlib::Matrix< invlib::MPIMatrix< invlib::Timer< ArtsCovarianceMatrixWrapper > >>
 MPI-distributed covariance matrix type. More...
 
using MPIVector = invlib::Vector< invlib::MPIVector< invlib::Timer< ArtsVector > >>
 MPI-distributed vector type. More...
 
template<typename ForwardModel >
using OEM_STANDARD_MPI = invlib::MAP< ForwardModel, OEMMatrix, MPICovarianceMatrix, MPICovarianceMatrix, OEMVector, Formulation::STANDARD >
 Distributed OEM standard form. More...
 
using LM_MPI = invlib::LevenbergMarquardt< Numeric, MPISparse, CG >
 Distributed Levenberg-Marquardt optimization. More...
 

Functions

template<typename E >
std::vector< std::string > handle_nested_exception (const E &e, int level=0)
 Handle exception encountered within invlib. More...
 

Typedef Documentation

◆ CG

using oem::CG = typedef NormalizingSolver<Matrix, invlib::ConjugateGradient<> >

The invlib CG solver.

The invlib Conjugate Grdient (CG) solver. The solver only performs matrix-vector multiplication and is therefore better suited for large linear systems.

Definition at line 166 of file oem.h.

◆ CovarianceMatrix

using oem::CovarianceMatrix = typedef invlib::Matrix<ArtsCovarianceMatrixWrapper>

invlib wrapper type for ARTS the ARTS covariance class.

Definition at line 38 of file oem.h.

◆ GN

using oem::GN = typedef invlib::GaussNewton<Numeric, Std>

OEM Gauss-Newton optimization using normed ARTS QR solver.

Definition at line 169 of file oem.h.

◆ GN_CG

using oem::GN_CG = typedef invlib::GaussNewton<Numeric, CG>

Gauss-Newton (GN) optimization using normed CG solver.

Definition at line 171 of file oem.h.

◆ Identity

Definition at line 39 of file oem.h.

◆ LM

using oem::LM = typedef invlib::LevenbergMarquardt<Numeric, CovarianceMatrix, Std>

Levenberg-Marquardt (LM) optimization using normed ARTS QR solver.

Definition at line 173 of file oem.h.

◆ LM_CG

using oem::LM_CG = typedef invlib::LevenbergMarquardt<Numeric, CovarianceMatrix, CG>

Levenberg-Marquardt (LM) optimization using normed CG solver.

Definition at line 175 of file oem.h.

◆ LM_MPI

using oem::LM_MPI = typedef invlib::LevenbergMarquardt<Numeric, MPISparse, CG>

Distributed Levenberg-Marquardt optimization.

Definition at line 46 of file oem_mpi.h.

◆ Matrix

using oem::Matrix = typedef invlib::Matrix<ArtsMatrix>

invlib wrapper type for ARTS matrices.

Definition at line 34 of file oem.h.

◆ MatrixReference

using oem::MatrixReference = typedef invlib::Matrix<ArtsMatrixReference<::Matrix> >

invlib wrapper type for ARTS matrices to be passed by reference.

Definition at line 36 of file oem.h.

◆ MPICovarianceMatrix

using oem::MPICovarianceMatrix = typedef invlib::Matrix< invlib::MPIMatrix<invlib::Timer<ArtsCovarianceMatrixWrapper> >>

MPI-distributed covariance matrix type.

Definition at line 27 of file oem_mpi.h.

◆ MPIMatrix

using oem::MPIMatrix = typedef invlib::Matrix<invlib::MPIMatrix<invlib::Timer<ArtsMatrix> >>

MPI-distributed matrix type based on ARTS built-in dense matrices.

Definition at line 24 of file oem_mpi.h.

◆ MPIVector

using oem::MPIVector = typedef invlib::Vector<invlib::MPIVector<invlib::Timer<ArtsVector> >>

MPI-distributed vector type.

Definition at line 29 of file oem_mpi.h.

◆ OEM_MFORM

template<typename ForwardModel >
using oem::OEM_MFORM = typedef invlib::MAP<ForwardModel, Matrix, CovarianceMatrix, CovarianceMatrix, Vector, Formulation::MFORM>

OEM m form.

Class template implementing the m-form of the OEM optimization defined according to Chapter 4 in Rodgers (2000).

In this formulation, each iteration requires the solution of a system of linear equations of size m-times-m.

Definition at line 95 of file oem.h.

◆ OEM_NFORM

template<typename ForwardModel >
using oem::OEM_NFORM = typedef invlib::MAP<ForwardModel, Matrix, CovarianceMatrix, CovarianceMatrix, Vector, Formulation::NFORM>

OEM n form.

Class template implementing the n-form of the OEM optimization defined according to Chapter 4 in Rodgers (2000).

In this formulation, each iteration requires the solution of a system of linear equations of size n-times-n.

Definition at line 79 of file oem.h.

◆ OEM_STANDARD

template<typename ForwardModel >
using oem::OEM_STANDARD = typedef invlib::MAP<ForwardModel, Matrix, CovarianceMatrix, CovarianceMatrix, Vector, Formulation::STANDARD, invlib::Rodgers531>

OEM standard form.

Class template implementing the standard form of the OEM optimization defined according to Chapter 4 in Rodgers (2000).

In this formulation, each iteration requires the solution of a system of linear equations of size n-times-n.

Definition at line 63 of file oem.h.

◆ OEM_STANDARD_MPI

template<typename ForwardModel >
using oem::OEM_STANDARD_MPI = typedef invlib::MAP<ForwardModel, OEMMatrix, MPICovarianceMatrix, MPICovarianceMatrix, OEMVector, Formulation::STANDARD>

Distributed OEM standard form.

Distributed OEM using the standard formulation.

Template Parameters
Thetype defining the forward model interface.

Definition at line 43 of file oem_mpi.h.

◆ Std

using oem::Std = typedef NormalizingSolver<Matrix, invlib::Standard>

The invlib standard solver.

This solver uses the built-in ARTS QR solver to solve a given linear system.

Definition at line 158 of file oem.h.

◆ Vector

using oem::Vector = typedef invlib::Vector<ArtsVector>

invlib wrapper type for ARTS vectors.

Definition at line 32 of file oem.h.

Function Documentation

◆ handle_nested_exception()

template<typename E >
std::vector<std::string> oem::handle_nested_exception ( const E &  e,
int  level = 0 
)

Handle exception encountered within invlib.

During OEM iteration invlib executes the ARTS inversion_iterate_agenda multiple times during which error can occur. This function converts nested exceptions to a vector of strings suitable for printing.

Template Parameters
EThe exception type which to handle
Parameters
[in]eThe specific exception type to handle
Thenesting level, should be 0 when called.

Definition at line 425 of file oem.h.