Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.mrao.cam.ac.uk/~bn204/devman/dust/dustiface_8h.html
Дата изменения: Fri Jul 11 10:32:07 2008 Дата индексирования: Tue Oct 2 10:49:35 2012 Кодировка: Поисковые слова: п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п |
#include "dustmodel.h"
#include <cbnlib.h>
Go to the source code of this file.
Classes | |
struct | dust_EBins |
Energy bins of a grain. More... | |
struct | dust_tmatrix |
A representation of the transition matrix. More... | |
Typedefs | |
typedef void | dust_AbsXSec |
Absorption Cross section. | |
typedef void | dust_RF |
Radiation field. | |
typedef double | dust_pvector |
Energy bin grain probability distribution vector. | |
Functions | |
void | dust_cAbsXSection (const double *wavev, double *absx, unsigned n, double a, dust_type type, double ionf, dust_model *dm) |
dust_AbsXSec * | dust_mkAbsXSection (double a, dust_type type, double ionf, dust_model *dm) |
Makes a handle to a function which gives absorption section as function of radius. | |
dust_RF * | dust_simplebbrf (double T, double W) |
Black body radiation field. | |
double | dust_EquiT (dust_AbsXSec *xsection, dust_RF *rf) |
Calculates the equilibrium temperature given the absorption cross section and a radiation field. | |
double | dust_equiemm (double lambda, double T, dust_AbsXSec *xsection) |
Calculate emissivity of a grain in equilibrium. | |
dust_EBins * | dust_cEBins (double a, dust_type type, dust_model *dm) |
Calculate energy bins appropriate for a grain. | |
dust_tmatrix * | dust_ctmatrix (dust_EBins *ebins, dust_AbsXSec *xsec, dust_RF *rf) |
Calculate the transition matrix. | |
dust_pvector * | dust_TMSolve (dust_tmatrix *tm) |
Calculate the energy bin probability distribution of a grain by solving transition matrix. | |
double | dust_ctemission (double lambda, dust_EBins *ebins, dust_pvector *pvector, dust_AbsXSec *xsec) |
Calculate the specific emissivity of a grain. |
A C-based interface to the dust code
typedef void dust_AbsXSec |
Absorption Cross section.
Infact define as opaque pointer which is later recast to UnaryDD.
typedef double dust_pvector |
Energy bin grain probability distribution vector.
Represents the probability distribution that the grain is in a particular bin
typedef void dust_RF |
Radiation field.
Just an opaque pointer -- will need to cast it to the c++ type to make use.
void dust_cAbsXSection | ( | const double * | wavev, | |
double * | absx, | |||
unsigned | n, | |||
double | a, | |||
dust_type | type, | |||
double | ionf, | |||
dust_model * | dm | |||
) |
Calculates the absortion cross section of a species/size of dust grain
wavel | Array of wavelenghts at which the * absorption cross section should be calculated | |
absx | Calculated absorption cross section is saved here (should be inunits of m^2) | |
n | the number of elements in the arrays wavev and absx | |
a | The grain size | |
dust_type | The species of the dust particle | |
ionf | the ionisation fraction | |
dust_model | Structure containing dust model parameters |
dust_EBins* dust_cEBins | ( | double | a, | |
dust_type | type, | |||
dust_model * | dm | |||
) |
Calculate energy bins appropriate for a grain.
a | The grain radius in metres |
double dust_ctemission | ( | double | lambda, | |
dust_EBins * | ebins, | |||
dust_pvector * | pvector, | |||
dust_AbsXSec * | xsec | |||
) |
Calculate the specific emissivity of a grain.
Takes energy bins appropriate for this grain(ebins), calculated probability vector (pvector), and absorption cross section (xsec).
Implemented in dustemm/transientemm.cxx
ebins | The energy bins of this grain | |
pvector | The vector representing probability distribution that the grain is in a state in one of the bins above | |
xsec | The grain absorption cross section |
dust_tmatrix* dust_ctmatrix | ( | dust_EBins * | ebins, | |
dust_AbsXSec * | xsec, | |||
dust_RF * | rf | |||
) |
Calculate the transition matrix.
Implemented in heatemm/transitionm.cxx
ebins | The energy bins of the grain | |
xsec | The absorption cross section of the grain | |
rf | The radiation field the grain is in |
double dust_equiemm | ( | double | lambda, | |
double | T, | |||
dust_AbsXSec * | xsection | |||
) |
Calculate emissivity of a grain in equilibrium.
Calculates the equilibrium emission at wavelength lambda from a (large) grain at temperature T and with absorption cross section xsection.
double dust_EquiT | ( | dust_AbsXSec * | xsection, | |
dust_RF * | rf | |||
) |
Calculates the equilibrium temperature given the absorption cross section and a radiation field.
xsection | The absorption cross section of the grain | |
rf | The radiation field |
dust_AbsXSec* dust_mkAbsXSection | ( | double | a, | |
dust_type | type, | |||
double | ionf, | |||
dust_model * | dm | |||
) |
Makes a handle to a function which gives absorption section as function of radius.
See dust_cAbsXSection for parameter description.
dust_RF* dust_simplebbrf | ( | double | T, | |
double | W | |||
) |
Black body radiation field.
Returns a very simple radiation field corresponding to a black body -- useful just for the testing really. T is the temerature in Kelvin, W is the diluation factor. Implemented in radfield/blackbrf.cxx.
dust_pvector* dust_TMSolve | ( | dust_tmatrix * | tm | ) |
Calculate the energy bin probability distribution of a grain by solving transition matrix.
Implemented in heatemm/tmsolve.c
tm | The transition matrix to solve |
References dust_tmatrix::data, dust_mkBmatrix(), dust_normalisepvect(), and dust_tmatrix::M.