ARTS 2.5.9 (git: 825fa5f2)
RadiationVector Struct Reference

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=default
 Construct a new Radiation Vector object. More...
 
 RadiationVector (const RadiationVector &rv)=default
 Construct a new Radiation Vector object. More...
 
RadiationVectoroperator= (const RadiationVector &rv)=default
 Assign old radiation vector to this. More...
 
RadiationVectoroperator= (RadiationVector &&rv) noexcept=default
 Assign old radiation vector to this. More...
 
RadiationVectoroperator+= (const RadiationVector &rv)
 Addition operator. 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...
 
void SetZero ()
 
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 &far, const RadiationVector &close, const ConstMatrixView &Kfar, const ConstMatrixView &Kclose, const Numeric r)
 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 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. 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...
 
RadiationVectoroperator= (const ConstMatrixView &M)
 Set *this from matrix. More...
 
const Numericoperator() (const Index i, const Index j) const
 Access operator. More...
 
Numericoperator() (const Index i, const Index j)
 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 Frequencies () const
 Get frequency count. More...
 

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. More...
 
std::istream & operator>> (std::istream &data, RadiationVector &rv)
 Input operator. More...
 

Detailed Description

Radiation Vector for Stokes dimension 1-4.

Definition at line 498 of file transmissionmatrix.h.

Constructor & Destructor Documentation

◆ RadiationVector() [1/3]

RadiationVector::RadiationVector ( Index  nf = 0,
Index  stokes = 1 
)

Construct a new Radiation Vector object.

Parameters
[in]nfNumber of frequencies
[in]stokesStokes dimension

Definition at line 204 of file transmissionmatrix.cc.

References ARTS_ASSERT.

◆ RadiationVector() [2/3]

RadiationVector::RadiationVector ( RadiationVector &&  rv)
defaultnoexcept

Construct a new Radiation Vector object.

Parameters
[in]rvOld Radiation Vector to move from

◆ RadiationVector() [3/3]

RadiationVector::RadiationVector ( const RadiationVector rv)
default

Construct a new Radiation Vector object.

Parameters
[in]rvOld Vector to copy from

Member Function Documentation

◆ add_avg()

void RadiationVector::add_avg ( const RadiationVector O1,
const RadiationVector O2 
)

Add the average of two other RadiationVector to *this.

Parameters
[in]O1Input 1
[in]O2Input 2

Definition at line 291 of file transmissionmatrix.cc.

References R1, R2, R3, and R4.

Referenced by update_radiation_vector().

◆ add_weighted()

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.

Parameters
[in]TThe transmission matrix
[in]farInput 1
[in]closeInput 2

Definition at line 303 of file transmissionmatrix.cc.

References joker, R1, R2, R3, R4, TransmissionMatrix::second_order_integration_source(), and TransmissionMatrix::TraMat().

Referenced by update_radiation_vector().

◆ addDerivEmission()

void RadiationVector::addDerivEmission ( const TransmissionMatrix PiT,
const TransmissionMatrix dT,
const TransmissionMatrix T,
const RadiationVector ImJ,
const RadiationVector dJ 
)

Add the emission derivative to this.

Parameters
[in]PiTAccumulated transmission to space
[in]dTDerivative of transmission matrix
[in]TTransmission matrix
[in]ImJIntensity minus the emission vector
[in]dJDerivative of the emission vector

Definition at line 347 of file transmissionmatrix.cc.

References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.

◆ addDerivTransmission()

void RadiationVector::addDerivTransmission ( const TransmissionMatrix PiT,
const TransmissionMatrix dT,
const RadiationVector I 
)

Add the transmission derivative to this.

Parameters
[in]PiTAccumulated transmission to space
[in]dTDerivative of transmission matrix
[in]IIntensity vector

Definition at line 396 of file transmissionmatrix.cc.

References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.

◆ addMultiplied()

void RadiationVector::addMultiplied ( const TransmissionMatrix A,
const RadiationVector x 
)

Add multiply.

Performs essentially this += A * x

Assumes this and x are not aliases

Parameters
[in]ADerivative of transmission matrix
[in]xIntensity vector

Definition at line 409 of file transmissionmatrix.cc.

References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.

◆ addWeightedDerivEmission()

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.

Parameters
[in]PiTAccumulated transmission to space
[in]dTDerivative of transmission matrix
[in]TTransmission matrix
[in]ImJIntensity minus the emission vector
[in]dJDerivative of the emission vector

Definition at line 366 of file transmissionmatrix.cc.

References d, TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, R4, and TransmissionMatrix::second_order_integration_dsource().

◆ Frequencies()

Index RadiationVector::Frequencies ( ) const

Get frequency count.

Definition at line 567 of file transmissionmatrix.cc.

References R1, R2, R3, R4, and stokes_dim.

Referenced by operator=(), SetZero(), stepwise_source(), and xml_write_to_stream().

◆ leftMul()

void RadiationVector::leftMul ( const TransmissionMatrix T)

Multiply radiation vector from the left.

Parameters
[in]TTranmission Vector

Definition at line 238 of file transmissionmatrix.cc.

References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.

Referenced by get_scattered_starsource(), and update_radiation_vector().

◆ operator Matrix()

RadiationVector::operator Matrix ( ) const

Convert *this to Matrix class.

Returns
Matrix

Definition at line 511 of file transmissionmatrix.cc.

References M.

◆ operator()() [1/2]

Numeric & RadiationVector::operator() ( const Index  i,
const Index  j 
)

Access operator.

Parameters
[in]iPosition in outer vector
[in]jPosition in inner vector
Returns
Numeric&

Definition at line 225 of file transmissionmatrix.cc.

References R1, R2, R3, R4, and stokes_dim.

◆ operator()() [2/2]

const Numeric & RadiationVector::operator() ( const Index  i,
const Index  j 
) const

Access operator.

Parameters
[in]iPosition in outer vector
[in]jPosition in inner vector
Returns
const Numeric&

Definition at line 498 of file transmissionmatrix.cc.

References R1, R2, R3, R4, and stokes_dim.

◆ operator+=()

RadiationVector & RadiationVector::operator+= ( const RadiationVector rv)

Addition operator.

Parameters
[in]rvAddition by rv
Returns
RadiationVector& *this

Definition at line 484 of file transmissionmatrix.cc.

References R1, R2, R3, and R4.

◆ operator=() [1/3]

RadiationVector & RadiationVector::operator= ( const ConstMatrixView M)

Set *this from matrix.

Parameters
[in]MMatrix
Returns
RadiationVector& *this

Definition at line 461 of file transmissionmatrix.cc.

References ARTS_ASSERT, Frequencies(), M, R1, R2, R3, R4, and stokes_dim.

◆ operator=() [2/3]

RadiationVector & RadiationVector::operator= ( const RadiationVector rv)
default

Assign old radiation vector to this.

Parameters
[in]rvold vetor to copy
Returns
RadiationVector& *this

◆ operator=() [3/3]

RadiationVector & RadiationVector::operator= ( RadiationVector &&  rv)
defaultnoexcept

Assign old radiation vector to this.

Parameters
[in]rvold vetor to move from
Returns
RadiationVector& *this

◆ rem_avg()

void RadiationVector::rem_avg ( const RadiationVector O1,
const RadiationVector O2 
)

Remove the average of two other RadiationVector from *this.

Parameters
[in]O1Input 1
[in]O2Input 2

Definition at line 279 of file transmissionmatrix.cc.

References R1, R2, R3, and R4.

Referenced by update_radiation_vector().

◆ setBackscatterTransmission()

void RadiationVector::setBackscatterTransmission ( const RadiationVector I0,
const TransmissionMatrix Tr,
const TransmissionMatrix Tf,
const TransmissionMatrix Z 
)

Set this to backscatter transmission.

Parameters
[in]I0Incoming intensity vector
[in]TrReflection transmission
[in]TfForward transmission
[in]ZReflection matrix

Definition at line 432 of file transmissionmatrix.cc.

References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.

◆ setBackscatterTransmissionDerivative()

void RadiationVector::setBackscatterTransmissionDerivative ( const RadiationVector I0,
const TransmissionMatrix Tr,
const TransmissionMatrix Tf,
const TransmissionMatrix dZ 
)

Set this to backscatter transmission scatter derivative.

Parameters
[in]I0Incoming intensity vector
[in]TrReflection transmission
[in]TfForward transmission
[in]dZReflection matrix derivative

Definition at line 446 of file transmissionmatrix.cc.

References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.

◆ setDerivReflection()

void RadiationVector::setDerivReflection ( const RadiationVector I,
const TransmissionMatrix PiT,
const TransmissionMatrix Z,
const TransmissionMatrix dZ 
)

Sets *this to the reflection derivative.

Parameters
[in]IIntensity vector
[in]PiTAccumulated transmission to space
[in]ZReflection matrix
[in]dZDerivative of reflection matrix

Definition at line 417 of file transmissionmatrix.cc.

References TransmissionMatrix::Mat1(), TransmissionMatrix::Mat2(), TransmissionMatrix::Mat3(), TransmissionMatrix::Mat4(), R1, R2, R3, and R4.

◆ setSource()

void RadiationVector::setSource ( const StokesVector a,
const ConstVectorView B,
const StokesVector S,
Index  i 
)

Set this to source vector at position.

Parameters
[in]aAbsorption vector
[in]BPlanck vector
[in]SScattering source vector
[in]iPosition

Definition at line 523 of file transmissionmatrix.cc.

References a, ARTS_ASSERT, 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().

◆ SetZero() [1/2]

void RadiationVector::SetZero ( )

Definition at line 262 of file transmissionmatrix.cc.

References Frequencies(), and SetZero().

Referenced by SetZero().

◆ SetZero() [2/2]

void RadiationVector::SetZero ( size_t  i)

Set Radiation Vector to Zero at position.

Parameters
[in]iposition

Definition at line 245 of file transmissionmatrix.cc.

References R1, R2, R3, R4, and stokes_dim.

Referenced by stepwise_source().

◆ Vec()

Eigen::VectorXd RadiationVector::Vec ( size_t  i) const

Return Vector at position by copy.

Parameters
[in]iposition
Returns
const Eigen::Matrix<double, 1, 1>& Vector

Definition at line 266 of file transmissionmatrix.cc.

References stokes_dim, Vec1(), Vec2(), Vec3(), and Vec4().

Referenced by iyRadarSingleScat().

◆ Vec1() [1/2]

Eigen::Matrix< double, 1, 1 > & RadiationVector::Vec1 ( size_t  i)

Return Vector at position.

Parameters
[in]iposition
Returns
Eigen::Matrix<double, 1, 1>& Vector

Definition at line 223 of file transmissionmatrix.cc.

References R1.

◆ Vec1() [2/2]

const Eigen::Matrix< double, 1, 1 > & RadiationVector::Vec1 ( size_t  i) const

Return Vector at position.

Parameters
[in]iposition
Returns
const Eigen::Matrix<double, 1, 1>& Vector

Definition at line 216 of file transmissionmatrix.cc.

References R1.

Referenced by stepwise_source(), and Vec().

◆ Vec2() [1/2]

Eigen::Vector2d & RadiationVector::Vec2 ( size_t  i)

Return Vector at position.

Parameters
[in]iposition
Returns
Eigen::Vector2d& Vector

Definition at line 222 of file transmissionmatrix.cc.

References R2.

◆ Vec2() [2/2]

const Eigen::Vector2d & RadiationVector::Vec2 ( size_t  i) const

Return Vector at position.

Parameters
[in]iposition
Returns
const Eigen::Vector2d& Vector

Definition at line 215 of file transmissionmatrix.cc.

References R2.

Referenced by stepwise_source(), and Vec().

◆ Vec3() [1/2]

Eigen::Vector3d & RadiationVector::Vec3 ( size_t  i)

Return Vector at position.

Parameters
[in]iposition
Returns
Eigen::Vector3d& Vector

Definition at line 221 of file transmissionmatrix.cc.

References R3.

◆ Vec3() [2/2]

const Eigen::Vector3d & RadiationVector::Vec3 ( size_t  i) const

Return Vector at position.

Parameters
[in]iposition
Returns
const Eigen::Vector3d& Vector

Definition at line 214 of file transmissionmatrix.cc.

References R3.

Referenced by stepwise_source(), and Vec().

◆ Vec4() [1/2]

Eigen::Vector4d & RadiationVector::Vec4 ( size_t  i)

Return Vector at position.

Parameters
[in]iposition
Returns
Eigen::Vector4d& Vector

Definition at line 220 of file transmissionmatrix.cc.

References R4.

◆ Vec4() [2/2]

const Eigen::Vector4d & RadiationVector::Vec4 ( size_t  i) const

Return Vector at position.

Parameters
[in]iposition
Returns
const Eigen::Vector4d& Vector

Definition at line 213 of file transmissionmatrix.cc.

References R4.

Referenced by stepwise_source(), and Vec().

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const RadiationVector rv 
)
friend

Output operator.

Definition at line 2292 of file transmissionmatrix.cc.

◆ operator>>

std::istream & operator>> ( std::istream &  data,
RadiationVector rv 
)
friend

Input operator.

Definition at line 2315 of file transmissionmatrix.cc.

Member Data Documentation

◆ R1

◆ R2

◆ R3

◆ R4

◆ stokes_dim

Index RadiationVector::stokes_dim

The documentation for this struct was generated from the following files: