76 return ( 180-
abs(rte_los[0]) +
abs(specular_los[0]) ) / 2;
113 const Index& stokes_dim,
115 const Agenda& blackbody_radiation_agenda )
117 assert( surface_rmatrix.
nrows() == stokes_dim );
118 assert( surface_rmatrix.
ncols() == stokes_dim );
119 assert( surface_emission.
nelem() == stokes_dim );
123 surface_rmatrix = 0.0;
124 surface_emission = 0.0;
128 blackbody_radiation_agenda );
132 const Numeric rmean = ( rv + rh ) / 2;
134 surface_rmatrix(0,0) = rmean;
135 surface_emission[0] = B[0] * ( 1 - rmean );
139 const Numeric rdiff = ( rv - rh ) / 2;
141 surface_rmatrix(1,0) = rdiff;
142 surface_rmatrix(0,1) = rdiff;
143 surface_rmatrix(1,1) = rmean;
144 surface_emission[1] = -B[0] * rdiff;
148 const Complex a = Rh * conj(Rv);
149 const Complex b = Rv * conj(Rh);
152 surface_rmatrix(2,2) = c;
156 const Numeric d = imag( a - b ) / 2.0;
158 surface_rmatrix(2,3) = d;
159 surface_rmatrix(3,2) = -d;
160 surface_rmatrix(3,3) = c;
INDEX Index
The type to use for all integer numbers and indices.
A class implementing complex numbers for ARTS.
Numeric calc_incang(ConstVectorView rte_los, ConstVectorView specular_los)
calc_incang
Index nelem() const
Returns the number of elements.
This file contains the declaration and partly the implementation of the workspace class...
Index ncols() const
Returns the number of columns.
std::complex< Numeric > Complex
NUMERIC Numeric
The type to use for all floating point numbers.
void blackbody_radiation_agendaExecute(Workspace &ws, Vector &blackbody_radiation, const Numeric rtp_temperature, const Vector &f_grid, const Agenda &input_agenda)
A constant view of a Vector.
Index nrows() const
Returns the number of rows.
void surface_specular_R_and_b(Workspace &ws, MatrixView surface_rmatrix, VectorView surface_emission, const Complex &Rv, const Complex &Rh, const Numeric &f, const Index &stokes_dim, const Numeric &surface_skin_t, const Agenda &blackbody_radiation_agenda)
surface_specular_R_and_b