ARTS 2.5.11 (git: 6827797f)
|
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. | |
RadiationVector (RadiationVector &&rv) noexcept=default | |
Construct a new Radiation Vector object. | |
RadiationVector (const RadiationVector &rv)=default | |
Construct a new Radiation Vector object. | |
RadiationVector & | operator= (const RadiationVector &rv)=default |
Assign old radiation vector to this. | |
RadiationVector & | operator= (RadiationVector &&rv) noexcept=default |
Assign old radiation vector to this. | |
RadiationVector & | operator+= (const RadiationVector &rv) |
Addition operator. | |
void | leftMul (const TransmissionMatrix &T) |
Multiply radiation vector from the left. | |
void | SetZero (size_t i) |
Set Radiation Vector to Zero at position. | |
void | SetZero () |
const Eigen::Vector4d & | Vec4 (size_t i) const |
Return Vector at position. | |
const Eigen::Vector3d & | Vec3 (size_t i) const |
Return Vector at position. | |
const Eigen::Vector2d & | Vec2 (size_t i) const |
Return Vector at position. | |
const Eigen::Matrix< double, 1, 1 > & | Vec1 (size_t i) const |
Return Vector at position. | |
Eigen::VectorXd | Vec (size_t i) const |
Return Vector at position by copy. | |
Eigen::Vector4d & | Vec4 (size_t i) |
Return Vector at position. | |
Eigen::Vector3d & | Vec3 (size_t i) |
Return Vector at position. | |
Eigen::Vector2d & | Vec2 (size_t i) |
Return Vector at position. | |
Eigen::Matrix< double, 1, 1 > & | Vec1 (size_t i) |
Return Vector at position. | |
void | rem_avg (const RadiationVector &O1, const RadiationVector &O2) |
Remove the average of two other RadiationVector from *this. | |
void | add_avg (const RadiationVector &O1, const RadiationVector &O2) |
Add the average of two other RadiationVector to *this. | |
void | add_weighted (const TransmissionMatrix &T, const RadiationVector &far, const RadiationVector &close, const ConstMatrixView &Kfar, const ConstMatrixView &Kclose, const Numeric r) |
Add the weighted source of two RadiationVector to *this. | |
void | addDerivEmission (const TransmissionMatrix &PiT, const TransmissionMatrix &dT, const TransmissionMatrix &T, const RadiationVector &ImJ, const RadiationVector &dJ) |
Add the emission derivative to this. | |
void | addWeightedDerivEmission (const TransmissionMatrix &PiT, const TransmissionMatrix &dT, const TransmissionMatrix &T, const RadiationVector &I, const RadiationVector &far, const RadiationVector &close, const RadiationVector &d, bool isfar) |
Add the emission derivative to this. | |
void | addDerivTransmission (const TransmissionMatrix &PiT, const TransmissionMatrix &dT, const RadiationVector &I) |
Add the transmission derivative to this. | |
void | addMultiplied (const TransmissionMatrix &A, const RadiationVector &x) |
Add multiply. | |
void | setDerivReflection (const RadiationVector &I, const TransmissionMatrix &PiT, const TransmissionMatrix &Z, const TransmissionMatrix &dZ) |
Sets *this to the reflection derivative. | |
void | setBackscatterTransmission (const RadiationVector &I0, const TransmissionMatrix &Tr, const TransmissionMatrix &Tf, const TransmissionMatrix &Z) |
Set this to backscatter transmission. | |
void | setBackscatterTransmissionDerivative (const RadiationVector &I0, const TransmissionMatrix &Tr, const TransmissionMatrix &Tf, const TransmissionMatrix &dZ) |
Set this to backscatter transmission scatter derivative. | |
RadiationVector & | operator= (const ConstMatrixView &M) |
Set *this from matrix. | |
const Numeric & | operator() (const Index i, const Index j) const |
Access operator. | |
Numeric & | operator() (const Index i, const Index j) |
Access operator. | |
operator Matrix () const | |
Convert *this to Matrix class. | |
void | setSource (const StokesVector &a, const ConstVectorView &B, const StokesVector &S, Index i) |
Set this to source vector at position. | |
Index | Frequencies () const |
Get frequency count. | |
Public Attributes | |
Index | stokes_dim |
std::vector< Eigen::Vector4d > | R4 |
std::vector< Eigen::Vector3d > | R3 |
std::vector< Eigen::Vector2d > | R2 |
std::vector< Eigen::Matrix< double, 1, 1 > > | R1 |
Friends | |
std::ostream & | operator<< (std::ostream &os, const RadiationVector &rv) |
Output operator. | |
std::istream & | operator>> (std::istream &data, RadiationVector &rv) |
Input operator. | |
Radiation Vector for Stokes dimension 1-4.
Definition at line 480 of file transmissionmatrix.h.
RadiationVector::RadiationVector | ( | Index | nf = 0 , |
Index | stokes = 1 |
||
) |
Construct a new Radiation Vector object.
[in] | nf | Number of frequencies |
[in] | stokes | Stokes dimension |
Definition at line 186 of file transmissionmatrix.cc.
References ARTS_ASSERT.
|
defaultnoexcept |
Construct a new Radiation Vector object.
[in] | rv | Old Radiation Vector to move from |
|
default |
Construct a new Radiation Vector object.
[in] | rv | Old Vector to copy from |
void RadiationVector::add_avg | ( | const RadiationVector & | O1, |
const RadiationVector & | O2 | ||
) |
Add the average of two other RadiationVector to *this.
[in] | O1 | Input 1 |
[in] | O2 | Input 2 |
Definition at line 273 of file transmissionmatrix.cc.
References R1, R2, R3, and R4.
Referenced by update_radiation_vector().
void RadiationVector::add_weighted | ( | const TransmissionMatrix & | T, |
const RadiationVector & | far, | ||
const RadiationVector & | close, | ||
const ConstMatrixView & | Kfar, | ||
const ConstMatrixView & | Kclose, | ||
const Numeric | r | ||
) |
Add the weighted source of two RadiationVector to *this.
[in] | T | The transmission matrix |
[in] | far | Input 1 |
[in] | close | Input 2 |
Definition at line 285 of file transmissionmatrix.cc.
References R1, R2, R3, R4, TransmissionMatrix::second_order_integration_source(), and TransmissionMatrix::TraMat().
Referenced by update_radiation_vector().
void RadiationVector::addDerivEmission | ( | const TransmissionMatrix & | PiT, |
const TransmissionMatrix & | dT, | ||
const TransmissionMatrix & | T, | ||
const RadiationVector & | ImJ, | ||
const RadiationVector & | dJ | ||
) |
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 329 of file transmissionmatrix.cc.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
void RadiationVector::addDerivTransmission | ( | const TransmissionMatrix & | PiT, |
const TransmissionMatrix & | dT, | ||
const RadiationVector & | I | ||
) |
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 378 of file transmissionmatrix.cc.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
void RadiationVector::addMultiplied | ( | const TransmissionMatrix & | A, |
const RadiationVector & | x | ||
) |
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 391 of file transmissionmatrix.cc.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
void RadiationVector::addWeightedDerivEmission | ( | const TransmissionMatrix & | PiT, |
const TransmissionMatrix & | dT, | ||
const TransmissionMatrix & | T, | ||
const RadiationVector & | I, | ||
const RadiationVector & | far, | ||
const RadiationVector & | close, | ||
const RadiationVector & | d, | ||
bool | isfar | ||
) |
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 348 of file transmissionmatrix.cc.
References d, TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, R4, and TransmissionMatrix::second_order_integration_dsource().
Index RadiationVector::Frequencies | ( | ) | const |
Get frequency count.
Definition at line 549 of file transmissionmatrix.cc.
References R1, R2, R3, R4, and stokes_dim.
Referenced by operator=(), SetZero(), stepwise_source(), and xml_write_to_stream().
void RadiationVector::leftMul | ( | const TransmissionMatrix & | T | ) |
Multiply radiation vector from the left.
[in] | T | Tranmission Vector |
Definition at line 220 of file transmissionmatrix.cc.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
Referenced by get_scattered_sunsource(), and update_radiation_vector().
RadiationVector::operator Matrix | ( | ) | const |
Numeric & RadiationVector::operator() | ( | const Index | i, |
const Index | j | ||
) |
Access operator.
[in] | i | Position in outer vector |
[in] | j | Position in inner vector |
Definition at line 207 of file transmissionmatrix.cc.
References R1, R2, R3, R4, and stokes_dim.
const Numeric & RadiationVector::operator() | ( | const Index | i, |
const Index | j | ||
) | const |
Access operator.
[in] | i | Position in outer vector |
[in] | j | Position in inner vector |
Definition at line 480 of file transmissionmatrix.cc.
References R1, R2, R3, R4, and stokes_dim.
RadiationVector & RadiationVector::operator+= | ( | const RadiationVector & | rv | ) |
Addition operator.
[in] | rv | Addition by rv |
Definition at line 466 of file transmissionmatrix.cc.
RadiationVector & RadiationVector::operator= | ( | const ConstMatrixView & | M | ) |
Set *this from matrix.
[in] | M | Matrix |
Definition at line 443 of file transmissionmatrix.cc.
References ARTS_ASSERT, Frequencies(), R1, R2, R3, R4, and stokes_dim.
|
default |
Assign old radiation vector to this.
[in] | rv | old vetor to copy |
|
defaultnoexcept |
Assign old radiation vector to this.
[in] | rv | old vetor to move from |
void RadiationVector::rem_avg | ( | const RadiationVector & | O1, |
const RadiationVector & | O2 | ||
) |
Remove the average of two other RadiationVector from *this.
[in] | O1 | Input 1 |
[in] | O2 | Input 2 |
Definition at line 261 of file transmissionmatrix.cc.
References R1, R2, R3, and R4.
Referenced by update_radiation_vector().
void RadiationVector::setBackscatterTransmission | ( | const RadiationVector & | I0, |
const TransmissionMatrix & | Tr, | ||
const TransmissionMatrix & | Tf, | ||
const TransmissionMatrix & | Z | ||
) |
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 414 of file transmissionmatrix.cc.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
void RadiationVector::setBackscatterTransmissionDerivative | ( | const RadiationVector & | I0, |
const TransmissionMatrix & | Tr, | ||
const TransmissionMatrix & | Tf, | ||
const TransmissionMatrix & | dZ | ||
) |
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 428 of file transmissionmatrix.cc.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
void RadiationVector::setDerivReflection | ( | const RadiationVector & | I, |
const TransmissionMatrix & | PiT, | ||
const TransmissionMatrix & | Z, | ||
const TransmissionMatrix & | dZ | ||
) |
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 399 of file transmissionmatrix.cc.
References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.
void RadiationVector::setSource | ( | const StokesVector & | a, |
const ConstVectorView & | B, | ||
const StokesVector & | S, | ||
Index | i | ||
) |
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 505 of file transmissionmatrix.cc.
References a, ARTS_ASSERT, R1, R2, R3, R4, and stokes_dim.
Referenced by stepwise_source().
void RadiationVector::SetZero | ( | ) |
Definition at line 244 of file transmissionmatrix.cc.
References Frequencies(), and SetZero().
Referenced by SetZero().
void RadiationVector::SetZero | ( | size_t | i | ) |
Set Radiation Vector to Zero at position.
[in] | i | position |
Definition at line 227 of file transmissionmatrix.cc.
References R1, R2, R3, R4, and stokes_dim.
Referenced by stepwise_source().
Eigen::VectorXd RadiationVector::Vec | ( | size_t | i | ) | const |
Return Vector at position by copy.
[in] | i | position |
Definition at line 248 of file transmissionmatrix.cc.
References stokes_dim, Vec1(), Vec2(), Vec3(), and Vec4().
Referenced by iyRadarSingleScat().
Eigen::Matrix< double, 1, 1 > & RadiationVector::Vec1 | ( | size_t | i | ) |
Return Vector at position.
[in] | i | position |
Definition at line 205 of file transmissionmatrix.cc.
References R1.
const Eigen::Matrix< double, 1, 1 > & RadiationVector::Vec1 | ( | size_t | i | ) | const |
Return Vector at position.
[in] | i | position |
Definition at line 198 of file transmissionmatrix.cc.
References R1.
Referenced by stepwise_source(), and Vec().
Eigen::Vector2d & RadiationVector::Vec2 | ( | size_t | i | ) |
Return Vector at position.
[in] | i | position |
Definition at line 204 of file transmissionmatrix.cc.
References R2.
const Eigen::Vector2d & RadiationVector::Vec2 | ( | size_t | i | ) | const |
Return Vector at position.
[in] | i | position |
Definition at line 197 of file transmissionmatrix.cc.
References R2.
Referenced by stepwise_source(), and Vec().
Eigen::Vector3d & RadiationVector::Vec3 | ( | size_t | i | ) |
Return Vector at position.
[in] | i | position |
Definition at line 203 of file transmissionmatrix.cc.
References R3.
const Eigen::Vector3d & RadiationVector::Vec3 | ( | size_t | i | ) | const |
Return Vector at position.
[in] | i | position |
Definition at line 196 of file transmissionmatrix.cc.
References R3.
Referenced by stepwise_source(), and Vec().
Eigen::Vector4d & RadiationVector::Vec4 | ( | size_t | i | ) |
Return Vector at position.
[in] | i | position |
Definition at line 202 of file transmissionmatrix.cc.
References R4.
const Eigen::Vector4d & RadiationVector::Vec4 | ( | size_t | i | ) | const |
Return Vector at position.
[in] | i | position |
Definition at line 195 of file transmissionmatrix.cc.
References R4.
Referenced by stepwise_source(), and Vec().
|
friend |
Output operator.
Definition at line 2274 of file transmissionmatrix.cc.
|
friend |
Input operator.
Definition at line 2297 of file transmissionmatrix.cc.
std::vector<Eigen::Matrix<double, 1, 1> > RadiationVector::R1 |
Definition at line 485 of file transmissionmatrix.h.
Referenced by add_avg(), add_weighted(), addDerivEmission(), addDerivTransmission(), addMultiplied(), addWeightedDerivEmission(), Frequencies(), leftMul(), operator()(), operator+=(), operator=(), rem_avg(), setBackscatterTransmission(), setBackscatterTransmissionDerivative(), setDerivReflection(), setSource(), SetZero(), and Vec1().
std::vector<Eigen::Vector2d> RadiationVector::R2 |
Definition at line 484 of file transmissionmatrix.h.
Referenced by add_avg(), add_weighted(), addDerivEmission(), addDerivTransmission(), addMultiplied(), addWeightedDerivEmission(), Frequencies(), leftMul(), operator()(), operator+=(), operator=(), rem_avg(), setBackscatterTransmission(), setBackscatterTransmissionDerivative(), setDerivReflection(), setSource(), SetZero(), and Vec2().
std::vector<Eigen::Vector3d> RadiationVector::R3 |
Definition at line 483 of file transmissionmatrix.h.
Referenced by add_avg(), add_weighted(), addDerivEmission(), addDerivTransmission(), addMultiplied(), addWeightedDerivEmission(), Frequencies(), leftMul(), operator()(), operator+=(), operator=(), rem_avg(), setBackscatterTransmission(), setBackscatterTransmissionDerivative(), setDerivReflection(), setSource(), SetZero(), and Vec3().
std::vector<Eigen::Vector4d> RadiationVector::R4 |
Definition at line 482 of file transmissionmatrix.h.
Referenced by add_avg(), add_weighted(), addDerivEmission(), addDerivTransmission(), addMultiplied(), addWeightedDerivEmission(), Frequencies(), leftMul(), operator()(), operator+=(), operator=(), rem_avg(), setBackscatterTransmission(), setBackscatterTransmissionDerivative(), setDerivReflection(), setSource(), SetZero(), and Vec4().
Index RadiationVector::stokes_dim |
Definition at line 481 of file transmissionmatrix.h.
Referenced by Frequencies(), operator()(), operator=(), setSource(), SetZero(), stepwise_source(), Vec(), and xml_write_to_stream().