ARTS
2.4.0(git:4fb77825)
|
Radiation Vector for Stokes dimension 1-4. More...
#include <transmissionmatrix.h>
Public Member Functions | |
RadiationVector (Index nf=0, Index stokes=1) | |
Construct a new Radiation Vector object. More... | |
RadiationVector (RadiationVector &&rv) noexcept | |
Construct a new Radiation Vector object. More... | |
RadiationVector (const RadiationVector &rv)=default | |
Construct a new Radiation Vector object. More... | |
RadiationVector & | operator= (const RadiationVector &rv)=default |
Assign old radiation vector to this. More... | |
RadiationVector & | operator= (RadiationVector &&rv) noexcept |
Assign old radiation vector to this. More... | |
void | leftMul (const TransmissionMatrix &T) |
Multiply radiation vector from the left. More... | |
void | SetZero (size_t i) |
Set Radiation Vector to Zero at position. More... | |
const Eigen::Vector4d & | Vec4 (size_t i) const |
Return Vector at position. More... | |
const Eigen::Vector3d & | Vec3 (size_t i) const |
Return Vector at position. More... | |
const Eigen::Vector2d & | Vec2 (size_t i) const |
Return Vector at position. More... | |
const Eigen::Matrix< double, 1, 1 > & | Vec1 (size_t i) const |
Return Vector at position. More... | |
Eigen::VectorXd | Vec (size_t i) const |
Return Vector at position by copy. More... | |
Eigen::Vector4d & | Vec4 (size_t i) |
Return Vector at position. More... | |
Eigen::Vector3d & | Vec3 (size_t i) |
Return Vector at position. More... | |
Eigen::Vector2d & | Vec2 (size_t i) |
Return Vector at position. More... | |
Eigen::Matrix< double, 1, 1 > & | Vec1 (size_t i) |
Return Vector at position. More... | |
void | rem_avg (const RadiationVector &O1, const RadiationVector &O2) |
Remove the average of two other RadiationVector from *this. More... | |
void | add_avg (const RadiationVector &O1, const RadiationVector &O2) |
Add the average of two other RadiationVector to *this. More... | |
void | add_weighted (const TransmissionMatrix &T, const RadiationVector &close, const RadiationVector &far) |
Add the weighted source of two RadiationVector to *this. More... | |
void | addDerivEmission (const TransmissionMatrix &PiT, const TransmissionMatrix &dT, const TransmissionMatrix &T, const RadiationVector &ImJ, const RadiationVector &dJ) |
Add the emission derivative to this. More... | |
void | addDerivTransmission (const TransmissionMatrix &PiT, const TransmissionMatrix &dT, const RadiationVector &I) |
Add the transmission derivative to this. More... | |
void | addMultiplied (const TransmissionMatrix &A, const RadiationVector &x) |
Add multiply. More... | |
void | setDerivReflection (const RadiationVector &I, const TransmissionMatrix &PiT, const TransmissionMatrix &Z, const TransmissionMatrix &dZ) |
Sets *this to the reflection derivative. More... | |
void | setBackscatterTransmission (const RadiationVector &I0, const TransmissionMatrix &Tr, const TransmissionMatrix &Tf, const TransmissionMatrix &Z) |
Set this to backscatter transmission. More... | |
void | setBackscatterTransmissionDerivative (const RadiationVector &I0, const TransmissionMatrix &Tr, const TransmissionMatrix &Tf, const TransmissionMatrix &dZ) |
Set this to backscatter transmission scatter derivative. More... | |
RadiationVector & | operator= (const ConstMatrixView &M) |
Set *this from matrix. More... | |
const Numeric & | operator() (const Index i, const Index j) const |
Access operator. More... | |
operator Matrix () const | |
Convert *this to Matrix class. More... | |
void | setSource (const StokesVector &a, const ConstVectorView &B, const StokesVector &S, Index i) |
Set this to source vector at position. More... | |
Index | StokesDim () const |
Get Stokes dimension. More... | |
Index | Frequencies () const |
Get frequency count. More... | |
Private Attributes | |
Index | stokes_dim |
std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > | R4 |
std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > | R3 |
std::vector< Eigen::Vector2d, Eigen::aligned_allocator< Eigen::Vector2d > > | R2 |
std::vector< Eigen::Matrix< double, 1, 1 >, Eigen::aligned_allocator< Eigen::Matrix< double, 1, 1 > > > | R1 |
Friends | |
std::ostream & | operator<< (std::ostream &os, const RadiationVector &rv) |
Output operator. More... | |
std::istream & | operator>> (std::istream &data, RadiationVector &rv) |
Input operator. More... | |
Radiation Vector for Stokes dimension 1-4.
Definition at line 395 of file transmissionmatrix.h.
Construct a new Radiation Vector object.
[in] | nf | Number of frequencies |
[in] | stokes | Stokes dimension |
Definition at line 412 of file transmissionmatrix.h.
|
inlinenoexcept |
Construct a new Radiation Vector object.
[in] | rv | Old Radiation Vector to move from |
Definition at line 425 of file transmissionmatrix.h.
|
default |
|
inline |
Add the average of two other RadiationVector to *this.
[in] | O1 | Input 1 |
[in] | O2 | Input 2 |
Definition at line 588 of file transmissionmatrix.h.
References R1, R2, R3, and R4.
Referenced by update_radiation_vector().
|
inline |
Add the weighted source of two RadiationVector to *this.
[in] | T | The transmission matrix |
[in] | close | Input 1 |
[in] | far | Input 2 |
Definition at line 606 of file transmissionmatrix.h.
References TransmissionMatrix::linear_in_tau_weights(), R1, R2, R3, R4, and w().
Referenced by update_radiation_vector().
|
inline |
Add the emission derivative to this.
[in] | PiT | Accumulated transmission to space |
[in] | dT | Derivative of transmission matrix |
[in] | T | Transmission matrix |
[in] | ImJ | Intensity minus the emission vector |
[in] | dJ | Derivative of the emission vector |
Definition at line 633 of file transmissionmatrix.h.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
|
inline |
Add the transmission derivative to this.
[in] | PiT | Accumulated transmission to space |
[in] | dT | Derivative of transmission matrix |
[in] | I | Intensity vector |
Definition at line 659 of file transmissionmatrix.h.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
|
inline |
Add multiply.
Performs essentially this += A * x
Assumes this and x are not aliases
[in] | A | Derivative of transmission matrix |
[in] | x | Intensity vector |
Definition at line 682 of file transmissionmatrix.h.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, R4, and ARTS::Var::x().
|
inline |
Get frequency count.
Definition at line 876 of file transmissionmatrix.h.
References R1, R2, R3, R4, and stokes_dim.
Referenced by operator Matrix(), operator=(), and xml_write_to_stream().
|
inline |
Multiply radiation vector from the left.
[in] | T | Tranmission Vector |
Definition at line 463 of file transmissionmatrix.h.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
Referenced by update_radiation_vector().
|
inline |
Convert *this to Matrix class.
Definition at line 809 of file transmissionmatrix.h.
References Frequencies(), M, R1, R2, R3, R4, and stokes_dim.
Access operator.
[in] | i | Position in outer vector |
[in] | j | Position in inner vector |
Definition at line 792 of file transmissionmatrix.h.
References R1, R2, R3, R4, and stokes_dim.
|
inline |
Set *this from matrix.
[in] | M | Matrix |
Definition at line 763 of file transmissionmatrix.h.
References Frequencies(), M, R1, R2, R3, R4, and stokes_dim.
|
default |
Assign old radiation vector to this.
[in] | rv | old vetor to copy |
|
inlinenoexcept |
Assign old radiation vector to this.
[in] | rv | old vetor to move from |
Definition at line 450 of file transmissionmatrix.h.
References R1, R2, R3, R4, and stokes_dim.
|
inline |
Remove the average of two other RadiationVector from *this.
[in] | O1 | Input 1 |
[in] | O2 | Input 2 |
Definition at line 571 of file transmissionmatrix.h.
References R1, R2, R3, and R4.
Referenced by update_radiation_vector().
|
inline |
Set this to backscatter transmission.
[in] | I0 | Incoming intensity vector |
[in] | Tr | Reflection transmission |
[in] | Tf | Forward transmission |
[in] | Z | Reflection matrix |
Definition at line 723 of file transmissionmatrix.h.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
|
inline |
Set this to backscatter transmission scatter derivative.
[in] | I0 | Incoming intensity vector |
[in] | Tr | Reflection transmission |
[in] | Tf | Forward transmission |
[in] | dZ | Reflection matrix derivative |
Definition at line 744 of file transmissionmatrix.h.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
|
inline |
Sets *this to the reflection derivative.
[in] | I | Intensity vector |
[in] | PiT | Accumulated transmission to space |
[in] | Z | Reflection matrix |
[in] | dZ | Derivative of reflection matrix |
Definition at line 701 of file transmissionmatrix.h.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
|
inline |
Set this to source vector at position.
[in] | a | Absorption vector |
[in] | B | Planck vector |
[in] | S | Scattering source vector |
[in] | i | Position |
Definition at line 828 of file transmissionmatrix.h.
References PropagationMatrix::IsEmpty(), PropagationMatrix::K12(), PropagationMatrix::K13(), PropagationMatrix::K14(), PropagationMatrix::Kjj(), PropagationMatrix::NumberOfAzimuthAngles(), PropagationMatrix::NumberOfZenithAngles(), R1, R2, R3, R4, and stokes_dim.
Referenced by stepwise_source().
|
inline |
Set Radiation Vector to Zero at position.
[in] | i | position |
Definition at line 474 of file transmissionmatrix.h.
References R1, R2, R3, R4, and stokes_dim.
Referenced by stepwise_source().
|
inline |
Get Stokes dimension.
Definition at line 873 of file transmissionmatrix.h.
References stokes_dim.
Referenced by stepwise_source(), and xml_write_to_stream().
|
inline |
Return Vector at position by copy.
[in] | i | position |
Definition at line 524 of file transmissionmatrix.h.
References stokes_dim, Vec1(), Vec2(), Vec3(), and Vec4().
|
inline |
Return Vector at position.
[in] | i | position |
Definition at line 564 of file transmissionmatrix.h.
References R1.
|
inline |
Return Vector at position.
[in] | i | position |
Definition at line 517 of file transmissionmatrix.h.
References R1.
Referenced by stepwise_source(), and Vec().
|
inline |
Return Vector at position.
[in] | i | position |
Definition at line 557 of file transmissionmatrix.h.
References R2.
|
inline |
Return Vector at position.
[in] | i | position |
Definition at line 510 of file transmissionmatrix.h.
References R2.
Referenced by stepwise_source(), and Vec().
|
inline |
Return Vector at position.
[in] | i | position |
Definition at line 550 of file transmissionmatrix.h.
References R3.
|
inline |
Return Vector at position.
[in] | i | position |
Definition at line 503 of file transmissionmatrix.h.
References R3.
Referenced by stepwise_source(), test_transmissionmatrix(), and Vec().
|
inline |
Return Vector at position.
[in] | i | position |
Definition at line 543 of file transmissionmatrix.h.
References R4.
|
inline |
Return Vector at position.
[in] | i | position |
Definition at line 496 of file transmissionmatrix.h.
References R4.
Referenced by stepwise_source(), and Vec().
|
friend |
Output operator.
Definition at line 1824 of file transmissionmatrix.cc.
|
friend |
Input operator.
Definition at line 1860 of file transmissionmatrix.cc.
|
private |
Definition at line 403 of file transmissionmatrix.h.
Referenced by add_avg(), add_weighted(), addDerivEmission(), addDerivTransmission(), addMultiplied(), Frequencies(), leftMul(), operator Matrix(), operator()(), operator=(), rem_avg(), setBackscatterTransmission(), setBackscatterTransmissionDerivative(), setDerivReflection(), setSource(), SetZero(), and Vec1().
|
private |
Definition at line 400 of file transmissionmatrix.h.
Referenced by add_avg(), add_weighted(), addDerivEmission(), addDerivTransmission(), addMultiplied(), Frequencies(), leftMul(), operator Matrix(), operator()(), operator=(), rem_avg(), setBackscatterTransmission(), setBackscatterTransmissionDerivative(), setDerivReflection(), setSource(), SetZero(), and Vec2().
|
private |
Definition at line 399 of file transmissionmatrix.h.
Referenced by add_avg(), add_weighted(), addDerivEmission(), addDerivTransmission(), addMultiplied(), Frequencies(), leftMul(), operator Matrix(), operator()(), operator=(), rem_avg(), setBackscatterTransmission(), setBackscatterTransmissionDerivative(), setDerivReflection(), setSource(), SetZero(), and Vec3().
|
private |
Definition at line 398 of file transmissionmatrix.h.
Referenced by add_avg(), add_weighted(), addDerivEmission(), addDerivTransmission(), addMultiplied(), Frequencies(), leftMul(), operator Matrix(), operator()(), operator=(), rem_avg(), setBackscatterTransmission(), setBackscatterTransmissionDerivative(), setDerivReflection(), setSource(), SetZero(), and Vec4().
|
private |
Definition at line 397 of file transmissionmatrix.h.
Referenced by Frequencies(), operator Matrix(), operator()(), operator=(), setSource(), SetZero(), StokesDim(), and Vec().