ARTS 2.5.11 (git: 6827797f)
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.
 
 RadiationVector (RadiationVector &&rv) noexcept=default
 Construct a new Radiation Vector object.
 
 RadiationVector (const RadiationVector &rv)=default
 Construct a new Radiation Vector object.
 
RadiationVectoroperator= (const RadiationVector &rv)=default
 Assign old radiation vector to this.
 
RadiationVectoroperator= (RadiationVector &&rv) noexcept=default
 Assign old radiation vector to this.
 
RadiationVectoroperator+= (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.
 
RadiationVectoroperator= (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.
 

Detailed Description

Radiation Vector for Stokes dimension 1-4.

Definition at line 480 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 186 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 273 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 285 of file transmissionmatrix.cc.

References 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 329 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 378 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 391 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 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().

◆ Frequencies()

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().

◆ leftMul()

void RadiationVector::leftMul ( const TransmissionMatrix T)

Multiply radiation vector from the left.

Parameters
[in]TTranmission 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().

◆ operator Matrix()

RadiationVector::operator Matrix ( ) const

Convert *this to Matrix class.

Returns
Matrix

Definition at line 493 of file transmissionmatrix.cc.

◆ 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 207 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 480 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 466 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 443 of file transmissionmatrix.cc.

References ARTS_ASSERT, Frequencies(), 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 261 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 414 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 428 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 399 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 505 of file transmissionmatrix.cc.

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

Referenced by stepwise_source().

◆ SetZero() [1/2]

void RadiationVector::SetZero ( )

Definition at line 244 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 227 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 248 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 205 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 198 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 204 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 197 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 203 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 196 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 202 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 195 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 2274 of file transmissionmatrix.cc.

◆ operator>>

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

Input operator.

Definition at line 2297 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: