ARTS
2.4.0(git:4fb77825)
|
functions used by MCGeneral More...
#include <cfloat>
#include <sstream>
#include "auto_md.h"
#include "geodetic.h"
#include "mc_interp.h"
#include "montecarlo.h"
Go to the source code of this file.
Functions | |
Numeric | ext_I (const Numeric &I, const Numeric &Q, const Numeric &kI, const Numeric &kQ, const Numeric &s) |
ext_I. More... | |
void | brent_zero (Numeric &sb, const Numeric &a, const Numeric &b, const Numeric &t, const Numeric &rn, const Numeric &I, const Numeric &Q, const Numeric &KI, const Numeric &KQ) |
brent_zero. More... | |
void | clear_rt_vars_at_gp (Workspace &ws, MatrixView ext_mat_mono, VectorView abs_vec_mono, Numeric &temperature, const Agenda &propmat_clearsky_agenda, const Numeric &f_mono, const GridPos &gp_p, const GridPos &gp_lat, const GridPos &gp_lon, ConstVectorView p_grid, ConstTensor3View t_field, ConstTensor4View vmr_field) |
clear_rt_vars_at_gp. More... | |
void | cloudy_rt_vars_at_gp (Workspace &ws, MatrixView ext_mat_mono, VectorView abs_vec_mono, VectorView pnd_vec, Numeric &temperature, const Agenda &propmat_clearsky_agenda, const Index stokes_dim, const Index f_index, const Vector &f_grid, const GridPos &gp_p, const GridPos &gp_lat, const GridPos &gp_lon, ConstVectorView p_grid_cloud, ConstTensor3View t_field_cloud, ConstTensor4View vmr_field_cloud, const Tensor4 &pnd_field, const ArrayOfArrayOfSingleScatteringData &scat_data, const ArrayOfIndex &cloudbox_limits, const Vector &rte_los) |
cloudy_rt_vars_at_gp. More... | |
void | cloud_atm_vars_by_gp (VectorView pressure, VectorView temperature, MatrixView vmr, MatrixView pnd, const ArrayOfGridPos &gp_p, const ArrayOfGridPos &gp_lat, const ArrayOfGridPos &gp_lon, const ArrayOfIndex &cloudbox_limits, ConstVectorView p_grid_cloud, ConstTensor3View t_field_cloud, ConstTensor4View vmr_field_cloud, ConstTensor4View pnd_field) |
cloud_atm_vars_by_gp. More... | |
void | get_ppath_transmat (Workspace &ws, MatrixView &trans_mat, const Ppath &ppath, const Agenda &propmat_clearsky_agenda, const Index stokes_dim, const Index f_index, const Vector &f_grid, const Vector &p_grid, const Tensor3 &t_field, const Tensor4 &vmr_field, const ArrayOfIndex &cloudbox_limits, const Tensor4 &pnd_field, const ArrayOfArrayOfSingleScatteringData &scat_data, const Verbosity &verbosity) |
get_ppath_transmat. More... | |
bool | is_anyptype_nonTotRan (const ArrayOfArrayOfSingleScatteringData &scat_data) |
is_anyptype_nonTotRan. More... | |
void | mcPathTraceGeneral (Workspace &ws, MatrixView evol_op, Vector &abs_vec_mono, Numeric &temperature, MatrixView ext_mat_mono, Rng &rng, Vector &rte_pos, Vector &rte_los, Vector &pnd_vec, Numeric &g, Ppath &ppath_step, Index &termination_flag, bool &inside_cloud, const Agenda &ppath_step_agenda, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Numeric &taustep_limit, const Agenda &propmat_clearsky_agenda, const Index stokes_dim, const Index f_index, const Vector &f_grid, const Vector &p_grid, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &z_field, const Vector &refellipsoid, const Matrix &z_surface, const Tensor3 &t_field, const Tensor4 &vmr_field, const ArrayOfIndex &cloudbox_limits, const Tensor4 &pnd_field, const ArrayOfArrayOfSingleScatteringData &scat_data, const Verbosity &verbosity) |
mcPathTraceGeneral. More... | |
void | mcPathTraceRadar (Workspace &ws, MatrixView evol_op, Vector &abs_vec_mono, Numeric &temperature, MatrixView ext_mat_mono, Rng &rng, Vector &rte_pos, Vector &rte_los, Vector &pnd_vec, Numeric &stot, Numeric &ttot, Ppath &ppath_step, Index &termination_flag, bool &inside_cloud, const Agenda &ppath_step_agenda, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Agenda &propmat_clearsky_agenda, const bool &anyptype_nonTotRan, const Index stokes_dim, const Index f_index, const Vector &f_grid, const Vector &Iprop, const Vector &p_grid, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &z_field, const Vector &refellipsoid, const Matrix &z_surface, const Tensor3 &t_field, const Tensor4 &vmr_field, const ArrayOfIndex &cloudbox_limits, const Tensor4 &pnd_field, const ArrayOfArrayOfSingleScatteringData &scat_data, const Verbosity &verbosity) |
mcPathTraceRadar. More... | |
void | Sample_los (VectorView new_rte_los, Numeric &g_los_csc_theta, MatrixView Z, Rng &rng, ConstVectorView rte_los, const ArrayOfArrayOfSingleScatteringData &scat_data, const Index f_index, const Index stokes_dim, ConstVectorView pnd_vec, ConstVectorView Z11maxvector, const Numeric Csca, const Numeric rtp_temperature, const Index t_interp_order) |
Sample_los. More... | |
void | Sample_los_uniform (VectorView new_rte_los, Rng &rng) |
Sample_los_uniform. More... | |
Variables | |
const Numeric | SPEED_OF_LIGHT |
functions used by MCGeneral
FIXMEDOC ***: mcPathTraceRadar, opt_propExtract, Sample_los_uniform (JUST author) cloudy_rt_vars_at_gp (JUST DATE CHECK), clear_rt_vars_at_gp(JUST DATE CHECK). FIXMEDOC ***: In .cc some root-finding helper functions (for MCRadar) that don't need visibility outside .cc, meaning that are not in .h JUST CLARIFICATION => brent_zero, ext_I. Further docomentation ???
Definition in file montecarlo.cc.
void brent_zero | ( | Numeric & | sb, |
const Numeric & | a, | ||
const Numeric & | b, | ||
const Numeric & | t, | ||
const Numeric & | rn, | ||
const Numeric & | I, | ||
const Numeric & | Q, | ||
const Numeric & | KI, | ||
const Numeric & | KQ | ||
) |
brent_zero.
This function seeks the root of a function F(X) in an interval [A,B].
Discussion: The interval [A,B] must be a change of sign interval for F. That is, F(A) and F(B) must be of opposite signs. Then assuming that F is continuous implies the existence of at least one value C between A and B for which F(C) = 0.
The location of the zero is determined to within an accuracy of 6 * MACHEPS * abs ( C ) + 2 * T.
Thanks to Thomas Secretin for pointing out a transcription error in the setting of the value of P, 11 February 2013.
Modifications by Ian S. Adams, U.S. Naval Research Laboratory to conform to ARTS and to hardcode function for root finding while passing in mulitple args for function.
Licensing:
This code is distributed under the GNU LGPL license.
Modified:
11 February 2013, J. Burkardt 15 July 2016 , I. Adams
Author:
Original FORTRAN77 version by Richard Brent. C++ version by John Burkardt.
Reference:
Richard Brent, Algorithms for Minimization Without Derivatives, Dover, 2002, ISBN: 0-486-41998-3, LC: QA402.5.B74.
Input, double A, B, the endpoints of the change of sign interval. Input, double T, a positive error tolerance. Output, double ZERO, the estimated value of a zero of the function F.
[out] | sb | The estimated value of a zero of the function F. |
[in] | a | The lower endpoint of the change of sign interval |
[in] | b | The upper endpoint of the change of sign interval |
[in] | t | A positive error tolerance. |
[in] | rn | A Random number. |
[in] | I | 1st Stokes element *** FIXMEDOC *** |
[in] | Q | 2nd Stokes element *** FIXMEDOC *** |
[in] | KI | Extinction matrix element 0,0 *** FIXMEDOC *** |
[in] | KQ | Extinction matrix element 0,1 *** FIXMEDOC *** |
Definition at line 132 of file montecarlo.cc.
void clear_rt_vars_at_gp | ( | Workspace & | ws, |
MatrixView | ext_mat_mono, | ||
VectorView | abs_vec_mono, | ||
Numeric & | temperature, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const Numeric & | f_mono, | ||
const GridPos & | gp_p, | ||
const GridPos & | gp_lat, | ||
const GridPos & | gp_lon, | ||
ConstVectorView | p_grid, | ||
ConstTensor3View | t_field, | ||
ConstTensor4View | vmr_field | ||
) |
clear_rt_vars_at_gp.
Calculates a bunch of atmospheric variables at the end of a ppath.
[in,out] | ws | Current workspace. |
[out] | ext_mat_mono | Total monochromatic extinction matrix. |
[out] | abs_vec_mono | Total monochromatic absorption vector. |
[out] | temperature | a vector of temperatures |
[in] | propmat_clearsky_agenda | As the WSA. |
[in] | f_mono | Frequency (single entry vector). |
[in] | gp_p | An array of pressure gridpoints. |
[in] | gp_lat | An array of latitude gridpoints. |
[in] | gp_lon | An array of longitude gridpoints. |
[in] | p_grid | The pressure grid. |
[in] | t_field | The temperature grid. |
[in] | vmr_field | VMR field. |
Definition at line 244 of file montecarlo.cc.
References interp_atmfield_by_itw(), interp_atmfield_gp2itw(), interpweights(), itw2p(), joker, PropagationMatrix::MatrixAtPosition(), ns, opt_prop_sum_propmat_clearsky(), ARTS::Var::p_grid(), ARTS::Var::propmat_clearsky_agenda(), propmat_clearsky_agendaExecute(), ARTS::Var::t_field(), StokesVector::VectorAtPosition(), and ARTS::Var::vmr_field().
Referenced by get_ppath_transmat(), and mcPathTraceRadar().
void cloud_atm_vars_by_gp | ( | VectorView | pressure, |
VectorView | temperature, | ||
MatrixView | vmr, | ||
MatrixView | pnd, | ||
const ArrayOfGridPos & | gp_p, | ||
const ArrayOfGridPos & | gp_lat, | ||
const ArrayOfGridPos & | gp_lon, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
ConstVectorView | p_grid_cloud, | ||
ConstTensor3View | t_field_cloud, | ||
ConstTensor4View | vmr_field_cloud, | ||
ConstTensor4View | pnd_field | ||
) |
cloud_atm_vars_by_gp.
Returns pressure, temperature, VMRs and PNDs, at points corresponding to arrays of gridpositions gp_p, gp_lat, and gp_lon. The field and grid input variables all span only the cloudbox
[out] | pressure | A vector of pressures. |
[out] | temperature | A vector of temperatures. |
[out] | vmr | A n_species by n_p matrix of VMRs. |
[out] | pnd | A n_scatelem by n_p matrix of PNDs. |
[in] | gp_p | An array of pressure gridpoints. |
[in] | gp_lat | An array of latitude gridpoints. |
[in] | gp_lon | An array of longitude gridpoints. |
[in] | cloudbox_limits | The limits of the cloud box. |
[in] | p_grid_cloud | The subset of p_grid within the cloudbox. |
[in] | t_field_cloud | The subset of t_field within the cloudbox. |
[in] | vmr_field_cloud | The subset of vmr_field within the cloudbox. |
[in] | pnd_field | Particle number density field. |
Definition at line 459 of file montecarlo.cc.
References ARTS::Var::atmosphere_dim(), ARTS::Var::cloudbox_limits(), gridpos_upperend_check(), interp_atmfield_by_itw(), interp_atmfield_gp2itw(), interpweights(), itw2p(), joker, ConstTensor4View::nbooks(), Array< base >::nelem(), ConstVectorView::nelem(), ns, and ARTS::Var::pnd_field().
Referenced by cloudy_rt_vars_at_gp().
void cloudy_rt_vars_at_gp | ( | Workspace & | ws, |
MatrixView | ext_mat_mono, | ||
VectorView | abs_vec_mono, | ||
VectorView | pnd_vec, | ||
Numeric & | temperature, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const Index | stokes_dim, | ||
const Index | f_index, | ||
const Vector & | f_grid, | ||
const GridPos & | gp_p, | ||
const GridPos & | gp_lat, | ||
const GridPos & | gp_lon, | ||
ConstVectorView | p_grid_cloud, | ||
ConstTensor3View | t_field_cloud, | ||
ConstTensor4View | vmr_field_cloud, | ||
const Tensor4 & | pnd_field, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Vector & | rte_los | ||
) |
cloudy_rt_vars_at_gp.
Calculates a bunch of atmospheric variables at the end of a ppath.
[in,out] | ws | Current workspace. |
[out] | ext_mat_mono | Total monochromatic extinction matrix. |
[out] | abs_vec_mono | Total monochromatic absorption vector. |
[out] | pnd_vec | Vector of particle number densities (one element per scattering element). |
[out] | temperature | A vector of temperatures |
[in] | propmat_clearsky_agenda | Agenda calculating the absorption coefficient matrices. |
[in] | stokes_dim | The dimensionality of the Stokes vector (1-4). |
[in] | f_index | Index of frequency grid point handeled. |
[in] | f_grid | Frequency grid for monochromatic pencil beam calculations. |
[in] | gp_p | An array of pressure gridpoints. |
[in] | gp_lat | An array of latitude gridpoints. |
[in] | gp_lon | An array of longitude gridpoints. |
[in] | p_grid_cloud | The subset of p_grid within the cloudbox. |
[in] | t_field_cloud | The subset of t_field within the cloudbox. |
[in] | vmr_field_cloud | The subset of vmr_field within the cloudbox. |
[in] | pnd_field | Particle number density field. |
[in] | scat_data | Array of single scattering data. |
[in] | cloudbox_limits | The limits of the cloud box. |
[in] | rte_los |
Definition at line 326 of file montecarlo.cc.
References cloud_atm_vars_by_gp(), ARTS::Var::cloudbox_limits(), ARTS::Var::f_grid(), ARTS::Var::f_index(), joker, PropagationMatrix::MatrixAtPosition(), mirror_los(), ConstTensor4View::nbooks(), ns, opt_prop_Bulk(), opt_prop_NScatElems(), opt_prop_ScatSpecBulk(), opt_prop_sum_propmat_clearsky(), ARTS::Var::pnd_field(), ARTS::Var::propmat_clearsky_agenda(), propmat_clearsky_agendaExecute(), ARTS::Var::rte_los(), ARTS::Var::scat_data(), ARTS::Var::stokes_dim(), and StokesVector::VectorAtPosition().
Referenced by get_ppath_transmat(), and mcPathTraceRadar().
Numeric ext_I | ( | const Numeric & | I, |
const Numeric & | Q, | ||
const Numeric & | kI, | ||
const Numeric & | kQ, | ||
const Numeric & | s | ||
) |
ext_I.
Calculate the extinction of I for a propagating "photon"
[in] | I | 1st Stokes element *** FIXMEDOC *** |
[in] | Q | 2nd Stokes element *** FIXMEDOC *** |
[in] | KI | Extinction matrix element 0,0 *** FIXMEDOC *** |
[in] | KQ | Extinction matrix element 0,1 *** FIXMEDOC *** |
[in] | s | Pathlength *** FIXMEDOC *** |
Definition at line 58 of file montecarlo.cc.
void get_ppath_transmat | ( | Workspace & | ws, |
MatrixView & | trans_mat, | ||
const Ppath & | ppath, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const Index | stokes_dim, | ||
const Index | f_index, | ||
const Vector & | f_grid, | ||
const Vector & | p_grid, | ||
const Tensor3 & | t_field, | ||
const Tensor4 & | vmr_field, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Tensor4 & | pnd_field, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data_mono, | ||
const Verbosity & | verbosity | ||
) |
get_ppath_transmat.
Routine to get the transmission matrix along a pre-defined propagation path. This is based on mcPathTraceGeneral using the routines from this source file. Routines from rte.cc require wind and magnetic field data that has not been typically passed to the Monte Carlo routines.
[in,out] | ws | Current workspace. |
[out] | trans_mat | Matrix defining transmission over the ppath direction multiplied by sin(za) |
[in] | ppath | Propagation path over which transmission matrix is desired |
[in] | propmat_clearsky_agenda | Agenda calculating the absorption coefficient matrices. |
[in] | stokes_dim | The dimensionality of the Stokes vector (1-4). |
[in] | f_index | Index of frequency grid point handeled. |
[in] | f_grid | Frequency grid for monochromatic pencil beam calculations. |
[in] | p_grid | The pressure grid. |
[in] | t_field | The temperature grid. |
[in] | vmr_field | VMR field. |
[in] | cloudbox_limits | The limits of the cloud box. |
[in] | pnd_field | Particle number density field. |
[in] | scat_data | Array of single scattering data. |
[in] | verbosity | Verbosity variable to dynamically control the reporting level during runtime. |
Definition at line 544 of file montecarlo.cc.
References clear_rt_vars_at_gp(), ARTS::Var::cloudbox_limits(), cloudy_rt_vars_at_gp(), CREATE_OUT0, ext2trans(), ARTS::Var::ext_mat(), ARTS::Var::f_grid(), ARTS::Var::f_index(), id_mat(), is_gp_inside_cloudbox(), joker, mult(), ARTS::Var::p_grid(), ARTS::Var::pnd_field(), ARTS::Var::ppath(), ARTS::Var::propmat_clearsky_agenda(), ARTS::Var::scat_data(), ARTS::Var::stokes_dim(), ARTS::Var::t_field(), and ARTS::Var::vmr_field().
bool is_anyptype_nonTotRan | ( | const ArrayOfArrayOfSingleScatteringData & | scat_data_mono | ) |
is_anyptype_nonTotRan.
Some operations in Monte Carlo simulations are different depending on the ptype of the scattering elements. This function searches scat_data to determine if any of the scattering elements have ptype=30.
[in] | scat_data_mono | Monochromatic single scattering data. |
Definition at line 694 of file montecarlo.cc.
References is_anyptype_nonTotRan(), PTYPE_TOTAL_RND, and ARTS::Var::scat_data().
Referenced by is_anyptype_nonTotRan(), and MCRadar().
void mcPathTraceGeneral | ( | Workspace & | ws, |
MatrixView | evol_op, | ||
Vector & | abs_vec_mono, | ||
Numeric & | temperature, | ||
MatrixView | ext_mat_mono, | ||
Rng & | rng, | ||
Vector & | rte_pos, | ||
Vector & | rte_los, | ||
Vector & | pnd_vec, | ||
Numeric & | g, | ||
Ppath & | ppath_step, | ||
Index & | termination_flag, | ||
bool & | inside_cloud, | ||
const Agenda & | ppath_step_agenda, | ||
const Numeric & | ppath_lmax, | ||
const Numeric & | ppath_lraytrace, | ||
const Numeric & | taustep_limit, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const Index | stokes_dim, | ||
const Index | f_index, | ||
const Vector & | f_grid, | ||
const Vector & | p_grid, | ||
const Vector & | lat_grid, | ||
const Vector & | lon_grid, | ||
const Tensor3 & | z_field, | ||
const Vector & | refellipsoid, | ||
const Matrix & | z_surface, | ||
const Tensor3 & | t_field, | ||
const Tensor4 & | vmr_field, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Tensor4 & | pnd_field, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
const Verbosity & | verbosity | ||
) |
mcPathTraceGeneral.
Performs the tasks of pathlength sampling.
Ray tracing done (but now only as far as determined by pathlength sampling) and calculation of the evolution operator and several atmospheric variables at the new point.
The end point of the ray tracing is returned by ppath_step, where the point of concern has index ppath_step.np-1. However, a somehwat dirty trick is used here to avoid copying of data. Only ppath.np is adjusted, and ppath_step can contain additional points (that should not be used).
[in,out] | ws | Current workspace. |
[out] | evol_op | Evolution operator (Stokes attenuation operator; exp(-tau)). |
[out] | abs_vec_mono | Total monochromatic absorption vector. |
[out] | temperature | A vector of temperatures. |
[out] | ext_mat_mono | Total monochromatic extinction matrix. |
[out] | rng | Random number generator instance. |
[out] | rte_pos | Position for starting radiative transfer simulations. |
[out] | rte_los | Incident line of sight for subsequent ray-tracing. |
[out] | g | randomly chosen extinction path. |
[out] | ppath_step | A propagation path step. |
[out] | termination_flag | Flag defining whether the path of the photon is terminated |
[in] | inside_cloud | Flag defining inside or not the cloud box |
[in] | ppath_step_agenda | Calculation of a propagation path step. |
[in] | ppath_lmax | Maximum length between points describing propagation paths. |
[in] | ppath_lraytrace | Maximum length of ray tracing steps when determining propagation paths. |
[in] | taustep_limit | Defines an upper step length in terms of optical thickness for Monte Carlo calculations. |
[in] | propmat_clearsky_agenda | Agenda calculating the absorption coefficient matrices. |
[in] | stokes_dim | The dimensionality of the Stokes vector (1-4). |
[in] | f_index | Index of frequency grid point handeled. |
[in] | f_grid | Frequency grid for monochromatic pencil beam calculations. |
[in] | p_grid | Pressure grid. |
[in] | lat_grid | Latitude grid. |
[in] | lon_grid | Longitude grid. |
[in] | z_field | The field of geometrical altitudes. |
[in] | refellipsoid | Reference ellipsoid. |
[in] | z_surface | The surface altitude. |
[in] | t_field | The temperature grid. |
[in] | vmr_field | VMR field. |
[in] | cloudbox_limits | The limits of the cloud box. |
[in] | pnd_field | Particle number density field. |
[in] | scat_data | Array of single scattering data. |
[in] | verbosity | Verbosity variable to dynamically control the reporting level during runtime. |
Definition at line 711 of file montecarlo.cc.
References ARTS::Var::ext_mat(), and ARTS::Var::stokes_dim().
Referenced by MCGeneral().
void mcPathTraceRadar | ( | Workspace & | ws, |
MatrixView | evol_op, | ||
Vector & | abs_vec_mono, | ||
Numeric & | temperature, | ||
MatrixView | ext_mat_mono, | ||
Rng & | rng, | ||
Vector & | rte_pos, | ||
Vector & | rte_los, | ||
Vector & | pnd_vec, | ||
Numeric & | stot, | ||
Numeric & | ttot, | ||
Ppath & | ppath_step, | ||
Index & | termination_flag, | ||
bool & | inside_cloud, | ||
const Agenda & | ppath_step_agenda, | ||
const Numeric & | ppath_lmax, | ||
const Numeric & | ppath_lraytrace, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const bool & | anyptype_nonTotRan, | ||
const Index | stokes_dim, | ||
const Index | f_index, | ||
const Vector & | f_grid, | ||
const Vector & | Iprop, | ||
const Vector & | p_grid, | ||
const Vector & | lat_grid, | ||
const Vector & | lon_grid, | ||
const Tensor3 & | z_field, | ||
const Vector & | refellipsoid, | ||
const Matrix & | z_surface, | ||
const Tensor3 & | t_field, | ||
const Tensor4 & | vmr_field, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Tensor4 & | pnd_field, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data_mono, | ||
const Verbosity & | verbosity | ||
) |
mcPathTraceRadar.
Performs the tasks of pathlength sampling.
Ray tracing done (but now only as far as determined by pathlength sampling) and calculation of the evolution operator and several atmospheric variables at the new point.
The end point of the ray tracing is returned by ppath_step, where the point of concern has index ppath_step.np-1. However, a somehwat dirty trick is used here to avoid copying of data. Only ppath.np is adjusted, and ppath_step can contain additional points (that should not be used).
[in,out] | ws | Current workspace. |
[out] | evol_op | Evolution operator (Stokes attenuation operator; exp(-tau)). |
[out] | abs_vec_mono | Total monochromatic absorption vector. |
[out] | temperature | A vector of temperatures. |
[out] | ext_mat_mono | Total monochromatic extinction matrix. |
[out] | rng | Random number generator instance. |
[out] | rte_pos | Position for starting radiative transfer simulations. |
[out] | rte_los | Incident line of sight for subsequent ray-tracing. |
[out] | stot | Starting point of total path lenght |
[out] | ttot | Total path length *** FIXMEDOC *** |
[out] | ppath_step | A propagation path step. |
[out] | termination_flag | Flag defining whether the path of the photon is terminated |
[in] | inside_cloud | Flag defining inside or not the cloud box |
[in] | ppath_step_agenda | Calculation of a propagation path step. |
[in] | ppath_lmax | Maximum length between points describing propagation paths. |
[in] | ppath_lraytrace | Maximum length of ray tracing steps when determining propagation paths. |
[in] | taustep_limit | Defines an upper step length in terms of optical thickness for Monte Carlo calculations. |
[in] | propmat_clearsky_agenda | Agenda calculating the absorption coefficient matrices. |
[in] | anyptype_nonTotRan | Flag definining any particle type, but for totally random oriented. |
[in] | stokes_dim | The dimensionality of the Stokes vector (1-4). |
[in] | f_index | Index of frequency grid point handeled. |
[in] | f_grid | Frequency grid for monochromatic pencil beam calculations. |
[in] | Iprop | Incident I component of the Stokes vector *** FIXMEDOC *** |
[in] | p_grid | Pressure grid. |
[in] | lat_grid | Latitude grid. |
[in] | lon_grid | Longitude grid. |
[in] | z_field | The field of geometrical altitudes. |
[in] | refellipsoid | Reference ellipsoid. |
[in] | z_surface | The surface altitude. |
[in] | t_field | The temperature grid. |
[in] | vmr_field | VMR field. |
[in] | cloudbox_limits | The limits of the cloud box. |
[in] | pnd_field | Particle number density field. |
[in] | scat_data | Array of single scattering data. |
[in] | verbosity | Verbosity variable to dynamically control the reporting level during runtime. |
Definition at line 1054 of file montecarlo.cc.
References clear_rt_vars_at_gp(), ARTS::Var::cloudbox_limits(), cloudy_rt_vars_at_gp(), CREATE_OUT0, Rng::draw(), ext2trans(), ARTS::Var::ext_mat(), ARTS::Var::f_grid(), ARTS::Var::f_index(), fractional_gp(), id_mat(), is_gp_inside_cloudbox(), joker, ARTS::Var::lat_grid(), ARTS::Var::lon_grid(), mult(), ARTS::Var::p_grid(), ARTS::Var::pnd_field(), ARTS::Var::ppath_lmax(), ARTS::Var::ppath_lraytrace(), ppath_start_stepping(), ARTS::Var::ppath_step(), ARTS::Var::ppath_step_agenda(), ppath_step_agendaExecute(), ppath_what_background(), ARTS::Var::propmat_clearsky_agenda(), ARTS::Var::refellipsoid(), ARTS::Var::rte_los(), ARTS::Var::rte_pos(), ARTS::Var::scat_data(), SPEED_OF_LIGHT, ARTS::Var::stokes_dim(), ARTS::Var::t_field(), ARTS::Var::verbosity(), ARTS::Var::vmr_field(), ARTS::Var::z_field(), and ARTS::Var::z_surface().
Referenced by MCRadar().
void Sample_los | ( | VectorView | new_rte_los, |
Numeric & | g_los_csc_theta, | ||
MatrixView | Z, | ||
Rng & | rng, | ||
ConstVectorView | rte_los, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
const Index | stokes_dim, | ||
const Index | f_index, | ||
ConstVectorView | pnd_vec, | ||
ConstVectorView | Z11maxvector, | ||
const Numeric | Csca, | ||
const Numeric | rtp_temperature, | ||
const Index | t_interp_order = 1 |
||
) |
Sample_los.
Sampling the new incident direction according to a rejection method. Calculation of the bulk scattering phase matrix.
[out] | new_rte_los | Incident line of sight for subsequent. |
[out] | g_los_csc_theta | Probability density for the chosen direction multiplied by sin(za) |
[out] | Z | Bulk phase matrix in Stokes notation. |
[in,out] | rng | Rng random number generator instance. |
[in] | rte_los | Incident line of sight for subsequent ray-tracing. |
[in] | scat_data | As the WSV. |
[in] | stokes_dim | As the WSV. |
[out] | pnd_vec | Vector of particle number densities (one element per scattering element). |
[in] | Z11maxvector | Vector holding the maximum phase function for each scattering element. |
[in] | Csca | Scattering cross section |
[in] | rtp_temperature | As the WSV. |
Definition at line 1391 of file montecarlo.cc.
References Rng::draw(), ARTS::Var::f_index(), joker, mirror_los(), ConstVectorView::nelem(), pha_mat_Bulk(), pha_mat_NScatElems(), pha_mat_ScatSpecBulk(), RAD2DEG, ARTS::Var::rte_los(), ARTS::Var::rtp_temperature(), ARTS::Var::scat_data(), ARTS::Var::stokes_dim(), and TotalNumberOfElements().
Referenced by MCGeneral().
void Sample_los_uniform | ( | VectorView | new_rte_los, |
Rng & | rng | ||
) |
Sample_los_uniform.
Sampling the new direction uniformly
[out] | new_rte_los | Incident line of sight for subsequent. |
[out] | rng | Rng random number generator instance. |
Definition at line 1471 of file montecarlo.cc.
References Rng::draw(), and RAD2DEG.
|
extern |
Referenced by mcPathTraceRadar().