ARTS 2.5.10 (git: 2f1c442c)
m_propmat.cc
Go to the documentation of this file.
1
2
3#include "agenda_class.h"
4#include "auto_md.h"
5#include "debug.h"
6#include "energylevelmap.h"
7#include "jacobian.h"
8#include "propagationmatrix.h"
9#include "species_tags.h"
10
11void propmat_clearskyAddScaledSpecies( // Workspace reference:
12 Workspace& ws,
13 // WS Output:
14 PropagationMatrix& propmat_clearsky,
15 StokesVector& nlte_source,
16 // WS Input:
17 const ArrayOfRetrievalQuantity& jacobian_quantities,
18 const ArrayOfSpeciesTag& select_abs_species,
19 const Vector& f_grid,
20 const Vector& rtp_mag,
21 const Vector& rtp_los,
22 const Numeric& rtp_pressure,
23 const Numeric& rtp_temperature,
24 const EnergyLevelMap& rtp_nlte,
25 const Vector& rtp_vmr,
26 const Agenda& propmat_clearsky_agenda,
27 // WS Generic Input:
28 const ArrayOfSpeciesTag& target,
29 const Numeric& scale,
30 // Verbosity object:
31 const Verbosity&) {
32 ARTS_USER_ERROR_IF(jacobian_quantities.nelem(), "Cannot use with derivatives")
33
34 if (select_abs_species not_eq target) {
36 select_abs_species.nelem(),
37 "Non-empty select_abs_species (lookup table calculations set select_abs_species)")
38
40 StokesVector sv;
41 ArrayOfPropagationMatrix dpropmat_clearsky_dx;
42 ArrayOfStokesVector dnlte_source_dx;
43
45 pm,
46 sv,
47 dpropmat_clearsky_dx,
48 dnlte_source_dx,
49 jacobian_quantities,
50 target,
51 f_grid,
52 rtp_mag,
53 rtp_los,
54 rtp_pressure,
55 rtp_temperature,
56 rtp_nlte,
57 rtp_vmr,
58 propmat_clearsky_agenda);
59
60 ARTS_USER_ERROR_IF(propmat_clearsky.Data().shape() not_eq pm.Data().shape(), "Mismatching sizes")
61 ARTS_USER_ERROR_IF(nlte_source.Data().shape() not_eq sv.Data().shape(), "Mismatching sizes")
62
63 propmat_clearsky += scale * pm;
64 nlte_source += scale * sv;
65 }
66}
Declarations for agendas.
void propmat_clearsky_agendaExecute(Workspace &ws, PropagationMatrix &propmat_clearsky, StokesVector &nlte_source, ArrayOfPropagationMatrix &dpropmat_clearsky_dx, ArrayOfStokesVector &dnlte_source_dx, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfSpeciesTag &select_abs_species, const Vector &f_grid, const Vector &rtp_mag, const Vector &rtp_los, const Numeric rtp_pressure, const Numeric rtp_temperature, const EnergyLevelMap &rtp_nlte, const Vector &rtp_vmr, const Agenda &input_agenda)
Definition: auto_md.cc:25803
The Agenda class.
Definition: agenda_class.h:69
This can be used to make arrays out of anything.
Definition: array.h:48
Index nelem() const ARTS_NOEXCEPT
Definition: array.h:92
Shape< 4 > shape() const
Definition: matpackIV.h:155
Tensor4 & Data()
Get full view to data.
Stokes vector is as Propagation matrix but only has 4 possible values.
The Vector class.
Definition: matpackI.h:910
Workspace class.
Definition: workspace_ng.h:53
Helper macros for debugging.
#define ARTS_USER_ERROR_IF(condition,...)
Definition: debug.h:153
Class to map energy levels.
Routines for setting up the jacobian.
void propmat_clearskyAddScaledSpecies(Workspace &ws, PropagationMatrix &propmat_clearsky, StokesVector &nlte_source, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfSpeciesTag &select_abs_species, const Vector &f_grid, const Vector &rtp_mag, const Vector &rtp_los, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const EnergyLevelMap &rtp_nlte, const Vector &rtp_vmr, const Agenda &propmat_clearsky_agenda, const ArrayOfSpeciesTag &target, const Numeric &scale, const Verbosity &)
File contains ways to manipulate the propagation matrix.
Definition: m_propmat.cc:11
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
Stuff related to the propagation matrix.