ReFRACtor
FullPhysics::TwostreamRtDriver Class Reference

TwoStream specific Radiative transfer driver implementation. More...

#include <twostream_driver.h>

+ Inheritance diagram for FullPhysics::TwostreamRtDriver:
+ Collaboration diagram for FullPhysics::TwostreamRtDriver:

Public Member Functions

 TwostreamRtDriver (int nlayers, int surface_type, bool do_fullquadrature=true, bool do_solar=true, bool do_thermal=false)
 TwostreamRtDriver Sizes of layers, and number of jacobians must be set up in construtor as seen in signature. More...
 
const boost::shared_ptr< SpurrBrdfDriverbrdf_driver () const
 Access to BRDF driver. More...
 
boost::shared_ptr< Twostream_Ls_Brdf_Supplementbrdf_interface () const
 
void calculate_rt () const
 Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs. More...
 
void clear_linear_inputs () const
 Mark that we are not retrieving weighting functions. More...
 
void copy_jacobians (blitz::Array< double, 2 > &jac_atm, blitz::Array< double, 1 > &jac_surf) const
 Copy jacobians out of internal xdata structures. More...
 
bool do_full_quadrature () const
 
double get_intensity () const
 Retrieve the intensity value calculated. More...
 
virtual void reflectance_and_jacobian_calculate (const blitz::Array< double, 1 > &height_grid, double sza, double azm, double zen, int surface_type, ArrayAd< double, 1 > &surface_parameters, const ArrayAd< double, 1 > &od, const ArrayAd< double, 1 > &ssa, const ArrayAd< double, 2 > &pf, double &reflectance, blitz::Array< double, 2 > &jac_atm, blitz::Array< double, 1 > &jac_surf, double surface_bb=0, const blitz::Array< double, 1 > &atmosphere_bb=blitz::Array< double, 1 >())
 Calculates intensity, profile and surface weighting factors (jacobians) with the given inputs. More...
 
virtual double reflectance_calculate (const blitz::Array< double, 1 > &height_grid, double sza, double azm, double zen, int surface_type, const blitz::Array< double, 1 > &surface_parameters, const blitz::Array< double, 1 > &od, const blitz::Array< double, 1 > &ssa, const blitz::Array< double, 2 > &pf, double surface_bb=0, const blitz::Array< double, 1 > &atmosphere_bb=blitz::Array< double, 1 >())
 Computes reflectance without jacobians. More...
 
void setup_geometry (double sza, double azm, double zen) const
 Setup viewing geometry, should only be called once per instance or if the viewing geometry changes. More...
 
void setup_height_grid (const blitz::Array< double, 1 > &height_grid) const
 Setup height grid, should only be called once per instance or if the height grid changes. More...
 
void setup_linear_inputs (const ArrayAd< double, 1 > &od, const ArrayAd< double, 1 > &ssa, const ArrayAd< double, 2 > &pf, bool do_surface_linearization) const
 Set up linearization, weighting functions. More...
 
void setup_optical_inputs (const blitz::Array< double, 1 > &od, const blitz::Array< double, 1 > &ssa, const blitz::Array< double, 2 > &pf) const
 Set up optical depth, single scattering albedo and phase function Should be called per spectral point. More...
 
void setup_thermal_inputs (double surface_bb, const blitz::Array< double, 1 > atmosphere_bb) const
 Set up thermal emission inputs. More...
 
boost::shared_ptr< TwostreamBrdfDrivertwostream_brdf_driver () const
 
boost::shared_ptr< Twostream_Lps_Mastertwostream_interface () const
 

Protected Member Functions

void initialize_rt ()
 Initializes radiative transfer data structures. More...
 

Protected Attributes

boost::shared_ptr< SpurrBrdfDriverbrdf_driver_
 Spurr BRDF class interface class to use. More...
 
bool do_fullquadrature_
 
bool do_solar_sources
 
bool do_thermal_emission
 
int surface_type_
 
boost::shared_ptr< Twostream_Lps_Mastertwostream_interface_
 

Detailed Description

TwoStream specific Radiative transfer driver implementation.

Definition at line 54 of file twostream_driver.h.

Constructor & Destructor Documentation

◆ TwostreamRtDriver()

TwostreamRtDriver::TwostreamRtDriver ( int  nlayers,
int  surface_type,
bool  do_fullquadrature = true,
bool  do_solar = true,
bool  do_thermal = false 
)

TwostreamRtDriver Sizes of layers, and number of jacobians must be set up in construtor as seen in signature.

Use do_fullquadratures = false only for comparison against LIDORT

Definition at line 158 of file twostream_driver.cc.

Member Function Documentation

◆ brdf_driver()

const boost::shared_ptr<SpurrBrdfDriver> FullPhysics::SpurrRtDriver::brdf_driver ( ) const
inlineinherited

Access to BRDF driver.

Definition at line 123 of file spurr_driver.h.

◆ brdf_interface()

boost::shared_ptr<Twostream_Ls_Brdf_Supplement> FullPhysics::TwostreamRtDriver::brdf_interface ( ) const
inline

Definition at line 82 of file twostream_driver.h.

◆ calculate_rt()

void TwostreamRtDriver::calculate_rt ( ) const
virtual

Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs.

Implements FullPhysics::SpurrRtDriver.

Definition at line 399 of file twostream_driver.cc.

◆ clear_linear_inputs()

void TwostreamRtDriver::clear_linear_inputs ( ) const
virtual

Mark that we are not retrieving weighting functions.

Implements FullPhysics::SpurrRtDriver.

Definition at line 326 of file twostream_driver.cc.

◆ copy_jacobians()

void TwostreamRtDriver::copy_jacobians ( blitz::Array< double, 2 > &  jac_atm,
blitz::Array< double, 1 > &  jac_surf 
) const
virtual

Copy jacobians out of internal xdata structures.

Implements FullPhysics::SpurrRtDriver.

Definition at line 429 of file twostream_driver.cc.

◆ do_full_quadrature()

bool FullPhysics::TwostreamRtDriver::do_full_quadrature ( ) const
inline

Definition at line 86 of file twostream_driver.h.

◆ get_intensity()

double TwostreamRtDriver::get_intensity ( ) const
virtual

Retrieve the intensity value calculated.

Implements FullPhysics::SpurrRtDriver.

Definition at line 424 of file twostream_driver.cc.

◆ initialize_rt()

void TwostreamRtDriver::initialize_rt ( )
protectedvirtual

Initializes radiative transfer data structures.

Implements FullPhysics::SpurrRtDriver.

Definition at line 188 of file twostream_driver.cc.

◆ reflectance_and_jacobian_calculate()

void SpurrRtDriver::reflectance_and_jacobian_calculate ( const blitz::Array< double, 1 > &  height_grid,
double  sza,
double  azm,
double  zen,
int  surface_type,
ArrayAd< double, 1 > &  surface_parameters,
const ArrayAd< double, 1 > &  od,
const ArrayAd< double, 1 > &  ssa,
const ArrayAd< double, 2 > &  pf,
double &  reflectance,
blitz::Array< double, 2 > &  jac_atm,
blitz::Array< double, 1 > &  jac_surf,
double  surface_bb = 0,
const blitz::Array< double, 1 > &  atmosphere_bb = blitz::Array<double,1>() 
)
virtualinherited

Calculates intensity, profile and surface weighting factors (jacobians) with the given inputs.

Definition at line 276 of file spurr_driver.cc.

◆ reflectance_calculate()

double SpurrRtDriver::reflectance_calculate ( const blitz::Array< double, 1 > &  height_grid,
double  sza,
double  azm,
double  zen,
int  surface_type,
const blitz::Array< double, 1 > &  surface_parameters,
const blitz::Array< double, 1 > &  od,
const blitz::Array< double, 1 > &  ssa,
const blitz::Array< double, 2 > &  pf,
double  surface_bb = 0,
const blitz::Array< double, 1 > &  atmosphere_bb = blitz::Array<double,1>() 
)
virtualinherited

Computes reflectance without jacobians.

Calculates intensity value with the given inputs.

Definition at line 237 of file spurr_driver.cc.

◆ setup_geometry()

void TwostreamRtDriver::setup_geometry ( double  sza,
double  azm,
double  zen 
) const
virtual

Setup viewing geometry, should only be called once per instance or if the viewing geometry changes.

Implements FullPhysics::SpurrRtDriver.

Definition at line 268 of file twostream_driver.cc.

◆ setup_height_grid()

void TwostreamRtDriver::setup_height_grid ( const blitz::Array< double, 1 > &  height_grid) const
virtual

Setup height grid, should only be called once per instance or if the height grid changes.

Implements FullPhysics::SpurrRtDriver.

Definition at line 254 of file twostream_driver.cc.

◆ setup_linear_inputs()

void TwostreamRtDriver::setup_linear_inputs ( const ArrayAd< double, 1 > &  od,
const ArrayAd< double, 1 > &  ssa,
const ArrayAd< double, 2 > &  pf,
bool  do_surface_linearization 
) const
virtual

Set up linearization, weighting functions.

Implements FullPhysics::SpurrRtDriver.

Definition at line 333 of file twostream_driver.cc.

◆ setup_optical_inputs()

void TwostreamRtDriver::setup_optical_inputs ( const blitz::Array< double, 1 > &  od,
const blitz::Array< double, 1 > &  ssa,
const blitz::Array< double, 2 > &  pf 
) const
virtual

Set up optical depth, single scattering albedo and phase function Should be called per spectral point.

Implements FullPhysics::SpurrRtDriver.

Definition at line 298 of file twostream_driver.cc.

◆ setup_thermal_inputs()

void TwostreamRtDriver::setup_thermal_inputs ( double  surface_bb,
const blitz::Array< double, 1 >  atmosphere_bb 
) const
virtual

Set up thermal emission inputs.

Implements FullPhysics::SpurrRtDriver.

Definition at line 285 of file twostream_driver.cc.

◆ twostream_brdf_driver()

boost::shared_ptr<TwostreamBrdfDriver> FullPhysics::TwostreamRtDriver::twostream_brdf_driver ( ) const
inline

Definition at line 78 of file twostream_driver.h.

◆ twostream_interface()

boost::shared_ptr<Twostream_Lps_Master> FullPhysics::TwostreamRtDriver::twostream_interface ( ) const
inline

Definition at line 84 of file twostream_driver.h.

Member Data Documentation

◆ brdf_driver_

boost::shared_ptr<SpurrBrdfDriver> FullPhysics::SpurrRtDriver::brdf_driver_
mutableprotectedinherited

Spurr BRDF class interface class to use.

Definition at line 169 of file spurr_driver.h.

◆ do_fullquadrature_

bool FullPhysics::TwostreamRtDriver::do_fullquadrature_
protected

Definition at line 92 of file twostream_driver.h.

◆ do_solar_sources

bool FullPhysics::SpurrRtDriver::do_solar_sources
protectedinherited

Definition at line 163 of file spurr_driver.h.

◆ do_thermal_emission

bool FullPhysics::SpurrRtDriver::do_thermal_emission
protectedinherited

Definition at line 163 of file spurr_driver.h.

◆ surface_type_

int FullPhysics::TwostreamRtDriver::surface_type_
protected

Definition at line 91 of file twostream_driver.h.

◆ twostream_interface_

boost::shared_ptr<Twostream_Lps_Master> FullPhysics::TwostreamRtDriver::twostream_interface_
protected

Definition at line 94 of file twostream_driver.h.


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

Copyright © 2017, California Institute of Technology.
ALL RIGHTS RESERVED.
U.S. Government Sponsorship acknowledged.
Generated Fri Aug 24 2018 15:44:14