skOpticalProperties  2.1
Public Member Functions | List of all members
skSpectralLineShape_HumlicekWells Class Reference

#include <skspectrallineshape_humlicekwells.h>

Inheritance diagram for skSpectralLineShape_HumlicekWells:

Public Member Functions

virtual bool ConfigureLineParameters (skSpectralLine *spectralline, double temperature, double pressure, const GEODETIC_INSTANT &geopt, skClimatology *atmopshericstate, skSpectralLineShapeStorageBuffer *storagebuffer)
 and store it in this buffer. More...
virtual bool CreateStorageBuffer (skSpectralLineShapeStorageBuffer **storagebuffer)
- Public Member Functions inherited from skSpectralLineShape
virtual bool LineShapeFunction (double nu, double *uservalue, const skSpectralLine *spectralline, skSpectralLineShapeStorageBuffer *storagebuffer)=0
 Storage buffer from an earlier call to ConfigureStorageBuffer. More...
virtual bool SetParentMaxLineStrength (double parentmaxlinestrength, const skSpectralLine *spectralline, skSpectralLineShapeStorageBuffer *storagebuffer) const =0
 Storage buffer from an earlier call to ConfigureStorageBuffer. More...
virtual bool AddLineShapeFunctionArray (const std::vector< double > &nu, std::vector< double > *uservalue, const skSpectralLine *spectralline, skSpectralLineShapeStorageBuffer *storagebuffer)
 Storage buffer from an earlier call to ConfigureStorageBuffer. More...

Detailed Description

[DEPRECATED}. This class is no longer supported and may not work properly. Use class skSpectralLineShape_VoigtKuntz.

This class is a wrapper for the skSpectralLineShape interface and does not contain any info about the actual Voigt Humlik algorithm. The work class is stored inside the storage buffer, see CreateStorageBuffer, and can be kept out of the interface include files.

The class implements a quick and accurate Voigt profile based on the HUMLIK.FOR code derived from the paper: "Rapid Approximation to the Voigt/Faddeeva function and its derivatives", R. J Wells, JQSRT 62, 1999, 29-48

Member Function Documentation

bool skSpectralLineShape_HumlicekWells::ConfigureLineParameters ( skSpectralLine spectralline,
double  temperature,
double  pressure,
const GEODETIC_INSTANT &  geopt,
skClimatology *  atmopshericstate,
skSpectralLineShapeStorageBuffer storagebuffer 

and store it in this buffer.

[NOT THREAD-SAFE] Extract all of the necessary line parameters from the atmospheric state and spectral line. If necessary the information can be stored in the storage buffer and this storage buffer instance will be passed to future calls to LineShapeFuction. We would expect that just about all derived classes will extract temperature, SKCLIMATOLOGY_TEMPERATURE_K, and most will extract pressure, SKCLIMATOLOGY_PRESSURE_PA from atmosphericstate. Derived classes will probably extract relevant spectral line info from spectral line and possibly generate intermediate results which are then stored in the storage buffer. This function does not need to be thread safe in the sense that

Implements skSpectralLineShape.

References skSpectralLine::Deltaair(), skSpectralLine::GammaAir(), skSpectralLine::GammaSelf(), skSpectralLineCollection::MassAMU(), skSpectralLine::Nair(), skSpectralLine::Nu(), skSpectralLineCollection::PartialPressure(), and skSpectralLine::Tref().

bool skSpectralLineShape_HumlicekWells::CreateStorageBuffer ( skSpectralLineShapeStorageBuffer **  storagebuffer)

Create an instance of the stroage buffer. It looks big and ugly but its actually quite simple

Implements skSpectralLineShape.

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