skOpticalProperties  2.1
Public Member Functions | List of all members
skOpticalProperties_Convolved Class Referenceabstract

#include <skrtscatter_phasematrix.h>

Inheritance diagram for skOpticalProperties_Convolved:
skOpticalProperties skOpticalProperties_Convolved_FixedFWHM

Public Member Functions

virtual bool SetAtmosphericState (skClimatology *neutralatmosphere, const GEODETIC_INSTANT &pt, bool *crosssections_changed) override
 Sets the atmospheric state and location for calculating cross-sections, usually temperature, pressure and position.
 
virtual bool UpdateInternalClimatology (const GEODETIC_INSTANT &pt) override
 
virtual bool CalculateCrossSections (double wavenumber, double *absxs, double *extxs, double *scattxs, size_t threadindex) override
 Calculate cross-sections at the specified wave-number.
 
virtual bool IsScatterer () const override
 Returns true if this particles scatters radiation.
 
virtual bool IsAbsorber () const override
 Returns true if this particles absorbs radiation radiation.
 
virtual bool CalculatePhaseMatrix (double wavenumber, double cosscatterangle, skRTPhaseMatrix *phasematrix, size_t threadindex) override
 Calculate the phase matrix at the specified wavenumber and scattering angle. More...
 
- Public Member Functions inherited from skOpticalProperties
 skOpticalProperties ()
 
bool GetRotatedPhaseMatrix (double wavenum, double mu, double muprime, double dphi, skRTPhaseMatrix *rotatedmatrix, size_t threadindex)
 Returns the rotated phase matrix necessary for scattering. More...
 
void CheckCosineRange (double *mu)
 
bool IsDeltaFunctionForwardScatter () const
 Returns true if this cross-section has a delta function forward scatter element.
 
virtual bool CalculateCrossSectionsArray (const std::vector< double > &wavenumber, std::vector< double > *absxs, std::vector< double > *extxs, std::vector< double > *scattxs)
 Calculate cross-sections at the specified array of wave-numbers. More...
 

Detailed Description

Note this class was one of the first convolving classes developed and has been superceeded by other classes. Take a look at class skOpticalProperties_ConvolvedDiscreteWavelenCachedState if you are planning to use measured cross-sections as that class has much tighter integration that is not available in this class (e.g automatically adjusting PSF with wavelength and temperature)

This class is still useful if you just want to tinker around. It will take a high resolution cross-section object and convolve it with a guassian point spread function on the the fly. The code convolves the extinction, absorption and scattering cross-sections using a point spread function width defined in a derived class through virtual method Get_FWHM. This class is nice if you want to experiment with the quadrature.

The class does not attempt to generate convolutions of phase matrices. The phase matrix calculation is performed using the "high resolution" cross-section object only at the central wavelength of interest (i.e. a monochromatic calculation).

See Also
skOpticalProperties_ConvolvedDiscreteWavelenCachedState skOpticalProperties_Convolved_FixedFWHM #skOpticalProperties_Convolved_GaussQuadrature

Member Function Documentation

bool skOpticalProperties_Convolved::UpdateInternalClimatology ( const GEODETIC_INSTANT &  pt)
overridevirtual
Function that allows the optical properties class to update any internal
climatologies it may be using. This is useful for optical properties that use
internal climatologies to store various parameters (eg aerosols that store geographical distributions
of mode radius and mode width). The call to UpdateInternalClimatology differs from SetAtmosphericState
in its expected usage: a call to UpdateInternalClimatology configures internal climatologies so they
can quickly service the many subsequent calls to SetAtmosphericState.
Parameters
ptThe time and location at which the next set of cross-sections will be needed. Note thatthe height field is usually ignored as all internal climatologies are expected to cache height profiles of their respective parameters.
Returns
True if success otherwise false.

Implements skOpticalProperties.

References skOpticalProperties::UpdateInternalClimatology().

bool skOpticalProperties_Convolved::CalculatePhaseMatrix ( double  wavenumber,
double  cosscatterangle,
skRTPhaseMatrix phasematrix,
size_t  threadindex 
)
overridevirtual

Calculate the phase matrix at the specified wavenumber and scattering angle.

Set the extinction, ansorption and scattering cross-sections.

Reimplemented from skOpticalProperties.

References skOpticalProperties::CalculatePhaseMatrix().


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