Go to the documentation of this file.
8 #endif _ARTS_OEM_MPI_H_
10 #include "invlib/algebra.h"
11 #include "invlib/algebra/precision_matrix.h"
12 #include "invlib/algebra/solvers.h"
13 #include "invlib/interfaces/arts_wrapper.h"
14 #include "invlib/map.h"
15 #include "invlib/mpi/log.h"
16 #include "invlib/mpi/mpi_matrix.h"
17 #include "invlib/mpi/mpi_vector.h"
18 #include "invlib/optimization.h"
19 #include "invlib/profiling/timer.h"
24 using MPIMatrix = invlib::Matrix<invlib::MPIMatrix<invlib::Timer<ArtsMatrix>>>;
27 invlib::MPIMatrix<invlib::Timer<ArtsCovarianceMatrixWrapper>>>;
29 using MPIVector = invlib::Vector<invlib::MPIVector<invlib::Timer<ArtsVector>>>;
37 template <
typename ForwardModel>
43 Formulation::STANDARD>;
46 using LM_MPI = invlib::LevenbergMarquardt<Numeric, MPISparse, CG>;
59 const unsigned int m,
n;
68 m(static_cast<unsigned int>(m_)),
69 n(static_cast<unsigned int>(n_)) {}
121 #endif // _ARTS_OEM_MPI_H_
const Agenda * inversion_iterate_agenda_
Pointer to the inversion_iterate_agenda defining the foward model.
OEMVector evaluate(const OEMVector &xi)
Evaluate forward model.
Workspace * ws_
Pointer to current workspace.
invlib::Matrix< invlib::MPIMatrix< invlib::Timer< ArtsMatrix > >> MPIMatrix
MPI-distributed matrix type based on ARTS built-in dense matrices.
AgendaWrapperMPI(Workspace *ws_, const Agenda *inversion_iterate_agenda, Index m_, Index n_)
invlib::Matrix< ArtsMatrix > Matrix
invlib wrapper type for ARTS matrices.
invlib::Matrix< invlib::MPIMatrix< invlib::Timer< ArtsCovarianceMatrixWrapper > >> MPICovarianceMatrix
MPI-distributed covariance matrix type.
Agenda inversion_iterate_agenda(Workspace &ws) noexcept
void inversion_iterate_agendaExecute(Workspace &ws, Vector &yf, Matrix &jacobian, const Vector &x, const Index jacobian_do, const Index inversion_iteration_counter, const Agenda &input_agenda)
invlib::LevenbergMarquardt< Numeric, MPISparse, CG > LM_MPI
Distributed Levenberg-Marquardt optimization.
OEMMatrix local_jacobian_
Process-local part of the Jacobian.
MPIMatrix Jacobian(const OEMVector &xi, OEMVector &yi)
Compute Jacobian of forward model.
Interface for distributed ARTS forward model.
invlib::MAP< ForwardModel, OEMMatrix, MPICovarianceMatrix, MPICovarianceMatrix, OEMVector, Formulation::STANDARD > OEM_STANDARD_MPI
Distributed OEM standard form.
Matrix jacobian(Workspace &ws) noexcept
INDEX Index
The type to use for all integer numbers and indices.
invlib::Vector< invlib::MPIVector< invlib::Timer< ArtsVector > >> MPIVector
MPI-distributed vector type.