cloudy  trunk
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Data Structures | Enumerations | Functions | Variables
grains_mie.cpp File Reference
#include "cddefines.h"
#include "elementnames.h"
#include "dense.h"
#include "called.h"
#include "version.h"
#include "grainvar.h"
#include "rfield.h"
#include "atmdat_adfa.h"
#include "grains.h"
Include dependency graph for grains_mie.cpp:

Go to the source code of this file.

Data Structures

class  sd_data
 
class  grain_data
 

Enumerations

enum  rfi_type {
  RFI_TABLE, OPC_TABLE, OPC_GREY, OPC_PAH1,
  OPC_PAH2N, OPC_PAH2C, OPC_PAH3N, OPC_PAH3C
}
 
enum  emt_type { FARAFONOV00, STOGNIENKO95, BRUGGEMAN35 }
 
enum  sd_type {
  SD_ILLEGAL, SD_SINGLE_SIZE, SD_POWERLAW, SD_EXP_CUTOFF1,
  SD_EXP_CUTOFF2, SD_EXP_CUTOFF3, SD_LOG_NORMAL, SD_LIN_NORMAL,
  SD_TABLE, SD_NR_CARBON
}
 

Functions

STATIC void mie_auxiliary (sd_data *, const grain_data *, const char *)
 
STATIC bool mie_auxiliary2 (vector< int > &, multi_arr< double, 2 > &, multi_arr< double, 2 > &, multi_arr< double, 2 > &, long, long)
 
STATIC void mie_integrate (sd_data *, double, double, double *)
 
STATIC void mie_cs_size_distr (double, sd_data *, const grain_data *, void(*)(double, const sd_data *, const grain_data *, double *, double *, double *, int *), double *, double *, double *, int *)
 
STATIC void mie_step (double, sd_data *, const grain_data *, void(*)(double, const sd_data *, const grain_data *, double *, double *, double *, int *), double *, double *, const double[], double *, double *, double *, int *)
 
STATIC void mie_cs (double, const sd_data *, const grain_data *, double *, double *, double *, int *)
 
STATIC void ld01_fun (void(*)(double, const sd_data *, const grain_data[], double *, double *, double *, int *), double, double, double, const sd_data *, const grain_data[], double *, double *, double *, int *)
 
void car1_fun (double, const sd_data *, const grain_data[], double *, double *, double *, int *)
 
STATIC void pah1_fun (double, const sd_data *, const grain_data *, double *, double *, double *, int *)
 
void car2_fun (double, const sd_data *, const grain_data[], double *, double *, double *, int *)
 
STATIC void pah2_fun (double, const sd_data *, const grain_data *, double *, double *, double *, int *)
 
void car3_fun (double, const sd_data *, const grain_data[], double *, double *, double *, int *)
 
STATIC void pah3_fun (double, const sd_data *, const grain_data *, double *, double *, double *, int *)
 
double Drude (double, double, double, double)
 
STATIC void tbl_fun (double, const sd_data *, const grain_data *, double *, double *, double *, int *)
 
STATIC double size_distr (double, const sd_data *)
 
STATIC double search_limit (double, double, double, sd_data)
 
STATIC void mie_calc_ial (const grain_data *, long, vector< double > &, const char *, bool *)
 
STATIC void mie_repair (const char *, long, int, int, const double[], double[], vector< int > &, bool, bool *)
 
STATIC double mie_find_slope (const double[], const double[], const vector< int > &, long, long, int, bool, bool *)
 
STATIC void mie_read_rfi (const char *, grain_data *)
 
STATIC void mie_read_mix (const char *, grain_data *)
 
STATIC void init_eps (double, long, const vector< grain_data > &, vector< complex< double > > &)
 
STATIC complex< double > cnewton (void(*)(complex< double >, const vector< double > &, const vector< complex< double > > &, long, complex< double > *, double *, double *), const vector< double > &, const vector< complex< double > > &, long, complex< double >, double)
 
STATIC void Stognienko (complex< double >, const vector< double > &, const vector< complex< double > > &, long, complex< double > *, double *, double *)
 
STATIC void Bruggeman (complex< double >, const vector< double > &, const vector< complex< double > > &, long, complex< double > *, double *, double *)
 
STATIC void mie_read_szd (const char *, sd_data *)
 
STATIC void mie_read_long (const char *, const char[], long int *, bool, long int)
 
STATIC void mie_read_realnum (const char *, const char[], realnum *, bool, long int)
 
STATIC void mie_read_double (const char *, const char[], double *, bool, long int)
 
STATIC void mie_read_form (const char *, double[], double *, double *)
 
STATIC void mie_write_form (const double[], char[])
 
STATIC void mie_read_word (const char[], char[], long, bool)
 
STATIC void mie_next_data (const char *, FILE *, char *, long int *)
 
STATIC void mie_next_line (const char *, FILE *, char *, long int *)
 
STATIC void sinpar (double, double, double, double *, double *, double *, double *, double *, long *)
 
STATIC void anomal (double, double *, double *, double *, double *, double, double)
 
STATIC void bigk (complex< double >, complex< double > *)
 
STATIC void ritodf (double, double, double *, double *)
 
STATIC void dftori (double *, double *, double, double)
 
void mie_write_opc (const char *rfi_file, const char *szd_file, long int nbin)
 
void mie_read_opc (const char *chFile, const GrainPar &gp)
 
STATIC void mie_calc_ial (const grain_data *gd, long int n, vector< double > &invlen, const char *chString, bool *lgWarning)
 
STATIC void mie_repair (const char *chString, long int n, int val, int del, const double anu[], double data[], vector< int > &ErrorIndex, bool lgRound, bool *lgWarning)
 
STATIC void mie_read_form (const char chWord[], double elmAbun[], double *no_atoms, double *mol_weight)
 
STATIC void mie_next_data (const char *chFile, FILE *io, char chLine[], long int *dl)
 
STATIC void mie_next_line (const char *chFile, FILE *io, char chLine[], long int *dl)
 
void gauss_init (long int nn, double xbot, double xtop, const vector< double > &x, const vector< double > &a, vector< double > &rr, vector< double > &ww)
 
void gauss_legendre (long int nn, vector< double > &x, vector< double > &a)
 
void find_arr (double x, const vector< double > &xa, long int n, long int *ind, bool *lgOutOfBounds)
 
STATIC void sinpar (double nre, double nim, double x, double *qext, double *qphase, double *qscat, double *ctbrqs, double *qback, long int *iflag)
 

Variables

static const long MAGIC_RFI = 1030103L
 
static const long MAGIC_SZD = 2010403L
 
static const long MAGIC_OPC = 3100827L
 
static const long MAGIC_MIX = 4030103L
 
static const double SMALLEST_GRAIN = 0.0001*(1.-10.*DBL_EPSILON)
 
static const double LARGEST_GRAIN = 10.*(1.+10.*DBL_EPSILON)
 
static const int NSD = 7
 
static const int ipSize = 0
 
static const int ipBLo = 0
 
static const int ipBHi = 1
 
static const int ipExp = 2
 
static const int ipBeta = 3
 
static const int ipSLo = 4
 
static const int ipSHi = 5
 
static const int ipAlpha = 6
 
static const int ipGCen = 2
 
static const int ipGSig = 3
 
static const int NAX = 3
 
static const int NDAT = 4
 
static const int WORDLEN = 5
 
static const int LABELSUB1 = 3
 
static const int LABELSUB2 = 5
 
static const int LABELSIZE = LABELSUB1 + LABELSUB2 + 4
 
static const long MIX_TABLE_SIZE = 2000L
 
static const double pah1_strength [7] = { 1.4e-21,1.8e-21,1.2e-20,6.0e-21,4.0e-20,1.9e-20,1.9e-20 }
 
static const double pah1_wlBand [7] = { 3.3, 6.18, 7.7, 8.6, 11.3, 12.0, 13.3 }
 
static const double pah1_width [7] = { 0.024, 0.102, 0.24, 0.168, 0.086, 0.174, 0.174 }
 
static const double pah2_wavl [14]
 
static const double pah2_width [14]
 
static const double pah2n_strength [14]
 
static const double pah2c_strength [14]
 
static const double pah3_wavl [30]
 
static const double pah3_width [30]
 
static const double pah3n_strength [30]
 
static const double pah3c_strength [30]
 
static const bool pah3_hoc [30]
 
const int NPTS_DERIV = 8
 
static const int NMXLIM = 80000
 

Enumeration Type Documentation

enum emt_type
Enumerator
FARAFONOV00 
STOGNIENKO95 
BRUGGEMAN35 

Definition at line 73 of file grains_mie.cpp.

enum rfi_type
Enumerator
RFI_TABLE 
OPC_TABLE 
OPC_GREY 
OPC_PAH1 
OPC_PAH2N 
OPC_PAH2C 
OPC_PAH3N 
OPC_PAH3C 

Definition at line 68 of file grains_mie.cpp.

enum sd_type
Enumerator
SD_ILLEGAL 
SD_SINGLE_SIZE 
SD_POWERLAW 
SD_EXP_CUTOFF1 
SD_EXP_CUTOFF2 
SD_EXP_CUTOFF3 
SD_LOG_NORMAL 
SD_LIN_NORMAL 
SD_TABLE 
SD_NR_CARBON 

Definition at line 78 of file grains_mie.cpp.

Function Documentation

STATIC void anomal ( double  x,
double *  qext,
double *  qabs,
double *  qphase,
double *  xistar,
double  delta,
double  beta 
)

Definition at line 5069 of file grains_mie.cpp.

References bigk(), DEBUG_ENTRY, and pow2().

Referenced by mie_cs().

Here is the call graph for this function:

STATIC void bigk ( complex< double >  cw,
complex< double > *  cbigk 
)

Definition at line 5111 of file grains_mie.cpp.

References DEBUG_ENTRY.

Referenced by anomal().

STATIC void Bruggeman ( complex< double >  x,
const vector< double > &  frdelta,
const vector< complex< double > > &  eps,
long  sumAxes,
complex< double > *  f,
double *  dudx,
double *  dudy 
)

Definition at line 3945 of file grains_mie.cpp.

References DEBUG_ENTRY, h2, and pow2().

Referenced by mie_read_mix().

Here is the call graph for this function:

void car1_fun ( double  wavl,
const sd_data sd,
const grain_data  gdArr[],
double *  cs_abs,
double *  cs_sct,
double *  cosb,
int *  error 
)
inline

Definition at line 1888 of file grains_mie.cpp.

References ld01_fun(), and pah1_fun().

Referenced by mie_write_opc().

Here is the call graph for this function:

void car2_fun ( double  wavl,
const sd_data sd,
const grain_data  gdArr[],
double *  cs_abs,
double *  cs_sct,
double *  cosb,
int *  error 
)
inline

Definition at line 2116 of file grains_mie.cpp.

References ld01_fun(), and pah2_fun().

Referenced by mie_write_opc().

Here is the call graph for this function:

void car3_fun ( double  wavl,
const sd_data sd,
const grain_data  gdArr[],
double *  cs_abs,
double *  cs_sct,
double *  cosb,
int *  error 
)
inline

Definition at line 2252 of file grains_mie.cpp.

References ld01_fun(), and pah3_fun().

Referenced by mie_write_opc().

Here is the call graph for this function:

STATIC complex< double > cnewton ( void(*)(complex< double >, const vector< double > &, const vector< complex< double > > &,long, complex< double > *, double *, double *)  fun,
const vector< double > &  frdelta,
const vector< complex< double > > &  eps,
long  sumAxes,
complex< double >  x0,
double  tol 
)

Definition at line 3853 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, LOOP_MAX, pow2(), ShowMe(), x0, and x1.

Referenced by mie_read_mix().

Here is the call graph for this function:

STATIC void dftori ( double *  nr,
double *  ni,
double  eps1,
double  eps2 
)

Definition at line 5151 of file grains_mie.cpp.

References ASSERT, and DEBUG_ENTRY.

Referenced by mie_read_mix(), and mie_read_rfi().

double Drude ( double  lambda,
double  lambdac,
double  gamma,
double  sigma 
)
inline

Definition at line 2386 of file grains_mie.cpp.

References pow2().

Referenced by pah2_fun(), and pah3_fun().

Here is the call graph for this function:

void find_arr ( double  ,
const vector< double > &  ,
long  int,
long int *  ,
bool *   
)

find index ind such that min(xa[ind],xa[ind+1]) <= x <= max(xa[ind],xa[ind+1]). xa is assumed to be strictly monotically increasing or decreasing. if x is outside the range spanned by xa, lgOutOfBounds is raised and ind is set to -1 n is the number of elements in xa.

Parameters
x
xa[]
n
[out]*ind
[out]*lgOutOfBounds

Definition at line 4715 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, max(), min(), and sign3().

Referenced by init_eps(), mie_calc_ial(), mie_cs(), size_distr(), and tbl_fun().

Here is the call graph for this function:

void gauss_init ( long  int,
double  ,
double  ,
const vector< double > &  ,
const vector< double > &  ,
vector< double > &  ,
vector< double > &   
)

set up Gaussian quadrature for arbitrary interval

Parameters
nn
xbot
xtop
x[]
a[]
rr[]
ww[]

Definition at line 4577 of file grains_mie.cpp.

References DEBUG_ENTRY.

Referenced by DebyeDeriv(), and mie_integrate().

void gauss_legendre ( long  int,
vector< double > &  ,
vector< double > &   
)
set up abscissas and weights for Gauss-Legendre intergration of arbitrary even order 
Parameters
nn
x[]
a[]

Definition at line 4605 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, pow2(), and SAFETY.

Referenced by DebyeDeriv(), and mie_integrate().

Here is the call graph for this function:

STATIC void init_eps ( double  wavlen,
long  nMaterial,
const vector< grain_data > &  gdArr,
vector< complex< double > > &  eps 
)

Definition at line 3809 of file grains_mie.cpp.

References ASSERT, DEBUG_ENTRY, find_arr(), and ritodf().

Referenced by mie_read_mix().

Here is the call graph for this function:

STATIC void ld01_fun ( void(*)(double, const sd_data *, const grain_data[], double *, double *, double *, int *)  pah_fun,
double  q_gra,
double  wmin,
double  wavl,
const sd_data sd,
const grain_data  gdArr[],
double *  cs_abs,
double *  cs_sct,
double *  cosb,
int *  error 
)

Definition at line 1849 of file grains_mie.cpp.

References DEBUG_ENTRY, mie_cs(), min(), and pow3().

Referenced by car1_fun(), car2_fun(), and car3_fun().

Here is the call graph for this function:

STATIC void mie_auxiliary ( sd_data sd,
const grain_data gd,
const char *  auxCase 
)
STATIC bool mie_auxiliary2 ( vector< int > &  ErrorIndex,
multi_arr< double, 2 > &  acs_abs,
multi_arr< double, 2 > &  acs_sct,
multi_arr< double, 2 > &  a1g,
long  p,
long  i 
)

Definition at line 915 of file grains_mie.cpp.

References ASSERT, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, min(), and ShowMe().

Referenced by mie_write_opc().

Here is the call graph for this function:

STATIC void mie_calc_ial ( const grain_data ,
long  ,
vector< double > &  ,
const char *  ,
bool *   
)

Referenced by mie_write_opc().

STATIC void mie_calc_ial ( const grain_data gd,
long int  n,
vector< double > &  invlen,
const char *  chString,
bool *  lgWarning 
)
STATIC void mie_cs ( double  wavlen,
const sd_data sd,
const grain_data gd,
double *  cs_abs,
double *  cs_sct,
double *  cosb,
int *  error 
)
STATIC void mie_cs_size_distr ( double  wavlen,
sd_data sd,
const grain_data gd,
void(*)(double, const sd_data *, const grain_data *,double *, double *, double *, int *)  cs_fun,
double *  cs_abs,
double *  cs_sct,
double *  cosb,
int *  error 
)
STATIC double mie_find_slope ( const double  anu[],
const double  data[],
const vector< int > &  ErrorIndex,
long  i1,
long  i2,
int  val,
bool  lgVerbose,
bool *  lgWarning 
)

Definition at line 2851 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, max(), and pow2().

Referenced by mie_repair().

Here is the call graph for this function:

STATIC void mie_integrate ( sd_data sd,
double  amin,
double  amax,
double *  normalization 
)
STATIC void mie_next_data ( const char *  ,
FILE *  ,
char *  ,
long int *   
)
STATIC void mie_next_data ( const char *  chFile,
FILE *  io,
char  chLine[],
long int *  dl 
)

Definition at line 4517 of file grains_mie.cpp.

References DEBUG_ENTRY, mie_next_line(), and strstr_s().

Here is the call graph for this function:

STATIC void mie_next_line ( const char *  ,
FILE *  ,
char *  ,
long int *   
)

Referenced by mie_next_data(), and mie_read_opc().

STATIC void mie_next_line ( const char *  chFile,
FILE *  io,
char  chLine[],
long int *  dl 
)

Definition at line 4545 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, FILENAME_PATH_LENGTH_2, fprintf(), ioQQQ, and read_whole_line().

Here is the call graph for this function:

STATIC void mie_read_double ( const char *  chFile,
const char  chLine[],
double *  data,
bool  lgZeroIllegal,
long int  dl 
)

Definition at line 4381 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), and ioQQQ.

Referenced by mie_read_mix(), mie_read_opc(), mie_read_rfi(), and mie_read_szd().

Here is the call graph for this function:

STATIC void mie_read_form ( const char *  ,
double  [],
double *  ,
double *   
)

Referenced by mie_read_rfi().

STATIC void mie_read_form ( const char  chWord[],
double  elmAbun[],
double *  no_atoms,
double *  mol_weight 
)

Definition at line 4404 of file grains_mie.cpp.

References t_dense::AtomicWeight, t_elementnames::chElementSym, DEBUG_ENTRY, dense, elementnames, frac(), ipHYDROGEN, and LIMELM.

Here is the call graph for this function:

STATIC void mie_read_long ( const char *  chFile,
const char  chLine[],
long int *  data,
bool  lgZeroIllegal,
long int  dl 
)

Definition at line 4333 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), and ioQQQ.

Referenced by mie_read_mix(), mie_read_opc(), mie_read_rfi(), and mie_read_szd().

Here is the call graph for this function:

STATIC void mie_read_mix ( const char *  chFile,
grain_data gd 
)
void mie_read_opc ( const char *  ,
const GrainPar  
)
STATIC void mie_read_realnum ( const char *  chFile,
const char  chLine[],
realnum data,
bool  lgZeroIllegal,
long int  dl 
)

Definition at line 4356 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), and ioQQQ.

Referenced by mie_read_opc().

Here is the call graph for this function:

STATIC void mie_read_rfi ( const char *  chFile,
grain_data gd 
)
STATIC void mie_read_szd ( const char *  chFile,
sd_data sd 
)
STATIC void mie_read_word ( const char  chLine[],
char  chWord[],
long  n,
bool  lgToUpper 
)

Definition at line 4492 of file grains_mie.cpp.

References DEBUG_ENTRY, and toupper().

Referenced by mie_read_mix(), mie_read_opc(), mie_read_rfi(), and mie_read_szd().

Here is the call graph for this function:

STATIC void mie_repair ( const char *  ,
long  ,
int  ,
int  ,
const double  [],
double  [],
vector< int > &  ,
bool  ,
bool *   
)

Referenced by mie_calc_ial(), and mie_write_opc().

STATIC void mie_repair ( const char *  chString,
long int  n,
int  val,
int  del,
const double  anu[],
double  data[],
vector< int > &  ErrorIndex,
bool  lgRound,
bool *  lgWarning 
)

Definition at line 2671 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, max(), mie_find_slope(), min(), NPTS_DERIV, and ShowMe().

Here is the call graph for this function:

STATIC void mie_step ( double  wavlen,
sd_data sd,
const grain_data gd,
void(*)(double, const sd_data *, const grain_data *,double *, double *, double *, int *)  cs_fun,
double *  x,
double *  h,
const double  toler[],
double *  absval,
double *  sctval,
double *  cosb,
int *  error 
)

Definition at line 1582 of file grains_mie.cpp.

References sd_data::clim, sd_data::cSize, DEBUG_ENTRY, e1(), e2(), fprintf(), ioQQQ, ipBLo, max(), safe_div(), and size_distr().

Referenced by mie_cs_size_distr().

Here is the call graph for this function:

STATIC void mie_write_form ( const double  elmAbun[],
char  chWord[] 
)

Definition at line 4455 of file grains_mie.cpp.

References ASSERT, t_elementnames::chElementSym, DEBUG_ENTRY, elementnames, FILENAME_PATH_LENGTH_2, LIMELM, and nint().

Referenced by mie_read_mix().

Here is the call graph for this function:

void mie_write_opc ( const char *  ,
const char *  ,
long  int 
)

mie_write_opc

Parameters
[in]*rfi_file
[in]*szd_file

Definition at line 274 of file grains_mie.cpp.

References grain_data::abun, t_mesh::anu(), t_mesh::anuptr(), sd_data::area, grain_data::atom_weight, grain_data::bandgap, t_cpu_i::big_endian(), car1_fun(), car2_fun(), car3_fun(), grain_data::cAxis, cdEXIT, grain_data::charge, t_elementnames::chElementSym, grain_data::clear(), sd_data::clim, multi_arr< T, d, ALLOC, lgBC >::clone(), sd_data::cPart, cpu, DEBUG_ENTRY, grain_data::depl, t_mesh::egamry(), elementnames, grain_data::elmAbun, t_mesh::emm(), EXIT_FAILURE, FILENAME_PATH_LENGTH_2, fprintf(), frac(), t_mesh::getResolutionScaleFactor(), gv, t_cpu::i(), IAL_CAR, IAL_SIL, Singleton< t_version >::Inst(), ioQQQ, ipBHi, ipBLo, LABELSIZE, LABELSUB1, LABELSUB2, sd_data::lgLogScale, sd_data::lim, LIMELM, sd_data::magic, grain_data::magic, MAGIC_OPC, grain_data::matType, max(), t_mesh::mesh_md5sum(), mie_auxiliary(), mie_auxiliary2(), mie_calc_ial(), mie_cs(), mie_cs_size_distr(), mie_read_mix(), mie_read_rfi(), mie_read_szd(), mie_repair(), min(), grain_data::mol_weight, grain_data::nAxes, t_rfield::nflux_with_check, grain_data::norm, sd_data::nPart, OPC_GREY, OPC_PAH1, OPC_PAH2C, OPC_PAH2N, OPC_PAH3C, OPC_PAH3N, OPC_TABLE, open_data(), POW4, radius, sd_data::radius, RFI_TABLE, rfield, grain_data::rfiType, grain_data::rho, SD_NR_CARBON, SD_SINGLE_SIZE, sd_data::sdCase, ShowMe(), size_distr(), strstr_s(), grain_data::subl_temp, tbl_fun(), grain_data::therm_eff, sd_data::unity, sd_data::unity_bin, sd_data::vol, GrainVar::which_ial, grain_data::work, and grain_data::wt.

Referenced by ParseCompile().

Here is the call graph for this function:

STATIC void pah1_fun ( double  wavl,
const sd_data sd,
const grain_data gd,
double *  cs_abs,
double *  cs_sct,
double *  cosb,
int *  error 
)
STATIC void pah2_fun ( double  wavl,
const sd_data sd,
const grain_data gd,
double *  cs_abs,
double *  cs_sct,
double *  cosb,
int *  error 
)

Definition at line 2140 of file grains_mie.cpp.

References t_dense::AtomicWeight, grain_data::charge, sd_data::cSize, DEBUG_ENTRY, dense, Drude(), exp10(), ipCARBON, M, pow2(), pow3(), grain_data::rho, and TotalInsanity().

Referenced by car2_fun().

Here is the call graph for this function:

STATIC void pah3_fun ( double  wavl,
const sd_data sd,
const grain_data gd,
double *  cs_abs,
double *  cs_sct,
double *  cosb,
int *  error 
)

Definition at line 2287 of file grains_mie.cpp.

References t_dense::AtomicWeight, grain_data::charge, sd_data::cSize, DEBUG_ENTRY, dense, Drude(), exp10(), ipCARBON, M, pow2(), pow3(), grain_data::rho, and TotalInsanity().

Referenced by car3_fun().

Here is the call graph for this function:

STATIC void ritodf ( double  nr,
double  ni,
double *  eps1,
double *  eps2 
)

Definition at line 5136 of file grains_mie.cpp.

References DEBUG_ENTRY.

Referenced by init_eps().

STATIC double search_limit ( double  ref,
double  step,
double  rel_cutoff,
sd_data  sd 
)

Definition at line 2523 of file grains_mie.cpp.

References ASSERT, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, ipBHi, ipBLo, sd_data::lim, max(), POW4, size_distr(), SMALLEST_GRAIN, TOLER, x1, and x2.

Referenced by mie_read_szd().

Here is the call graph for this function:

STATIC void sinpar ( double  ,
double  ,
double  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *  ,
long *   
)

Referenced by dqc25f_(), mie_cs(), and qc25f_().

STATIC void sinpar ( double  nre,
double  nim,
double  x,
double *  qext,
double *  qphase,
double *  qscat,
double *  ctbrqs,
double *  qback,
long int *  iflag 
)

Definition at line 4807 of file grains_mie.cpp.

References DEBUG_ENTRY, max(), MAX4, nint(), pow2(), pow3(), and sincos().

Here is the call graph for this function:

STATIC double size_distr ( double  size,
const sd_data sd 
)
STATIC void Stognienko ( complex< double >  x,
const vector< double > &  frdelta,
const vector< complex< double > > &  eps,
long  sumAxes,
complex< double > *  f,
double *  dudx,
double *  dudy 
)

Definition at line 3903 of file grains_mie.cpp.

References DEBUG_ENTRY, h2, and pow2().

Referenced by mie_read_mix().

Here is the call graph for this function:

STATIC void tbl_fun ( double  wavl,
const sd_data sd,
const grain_data gd,
double *  cs_abs,
double *  cs_sct,
double *  cosb,
int *  error 
)
Todo:
2 include code for interpolating inv_att_len somewhere!!

Definition at line 2397 of file grains_mie.cpp.

References ASSERT, DEBUG_ENTRY, find_arr(), frac(), grain_data::nOpcCols, grain_data::nOpcData, grain_data::opcAnu, grain_data::opcData, and TotalInsanity().

Referenced by mie_write_opc().

Here is the call graph for this function:

Variable Documentation

const int ipAlpha = 6
static

alpha parameter for exp. cutoff

Definition at line 63 of file grains_mie.cpp.

Referenced by mie_read_szd(), and size_distr().

const int ipBeta = 3
static

beta parameter for powerlaw

Definition at line 60 of file grains_mie.cpp.

Referenced by mie_read_szd(), and size_distr().

const int ipBHi = 1
static
const int ipBLo = 0
static
const int ipExp = 2
static

exponent for powerlaw

Definition at line 59 of file grains_mie.cpp.

Referenced by mie_read_szd(), and size_distr().

const int ipGCen = 2
static

center of gaussian distribution

Definition at line 64 of file grains_mie.cpp.

Referenced by mie_read_szd(), and size_distr().

const int ipGSig = 3
static

1-sigma width of gaussian distribution

Definition at line 65 of file grains_mie.cpp.

Referenced by mie_read_szd(), and size_distr().

const int ipSHi = 5
static

scale size for upper exp. cutoff

Definition at line 62 of file grains_mie.cpp.

Referenced by mie_read_szd(), and size_distr().

const int ipSize = 0
static

single size

Definition at line 56 of file grains_mie.cpp.

Referenced by mie_auxiliary(), mie_cs_size_distr(), and mie_read_szd().

const int ipSLo = 4
static

scale size for lower exp. cutoff

Definition at line 61 of file grains_mie.cpp.

Referenced by mie_read_szd(), and size_distr().

const int LABELSIZE = LABELSUB1 + LABELSUB2 + 4
static

Definition at line 197 of file grains_mie.cpp.

Referenced by mie_read_opc(), and mie_write_opc().

const int LABELSUB1 = 3
static

Definition at line 195 of file grains_mie.cpp.

Referenced by mie_write_opc().

const int LABELSUB2 = 5
static

Definition at line 196 of file grains_mie.cpp.

Referenced by mie_write_opc().

const double LARGEST_GRAIN = 10.*(1.+10.*DBL_EPSILON)
static

Definition at line 49 of file grains_mie.cpp.

Referenced by mie_read_szd().

const long MAGIC_MIX = 4030103L
static

Definition at line 38 of file grains_mie.cpp.

Referenced by mie_read_mix().

const long MAGIC_OPC = 3100827L
static

Definition at line 37 of file grains_mie.cpp.

Referenced by mie_read_opc(), and mie_write_opc().

const long MAGIC_RFI = 1030103L
static

Definition at line 35 of file grains_mie.cpp.

Referenced by mie_read_rfi().

const long MAGIC_SZD = 2010403L
static

Definition at line 36 of file grains_mie.cpp.

Referenced by mie_read_szd().

const long MIX_TABLE_SIZE = 2000L
static

Definition at line 200 of file grains_mie.cpp.

Referenced by mie_read_mix().

const int NAX = 3
static

Definition at line 129 of file grains_mie.cpp.

Referenced by mie_cs_size_distr(), mie_read_rfi(), and grain_data::p_clear1().

const int NDAT = 4
static

Definition at line 130 of file grains_mie.cpp.

Referenced by mie_read_rfi(), and grain_data::p_clear1().

const int NMXLIM = 80000
static

Definition at line 4805 of file grains_mie.cpp.

const int NPTS_DERIV = 8

Definition at line 2668 of file grains_mie.cpp.

Referenced by mie_repair().

const int NSD = 7
static

Definition at line 52 of file grains_mie.cpp.

const double pah1_strength[7] = { 1.4e-21,1.8e-21,1.2e-20,6.0e-21,4.0e-20,1.9e-20,1.9e-20 }
static

Definition at line 1905 of file grains_mie.cpp.

const double pah1_width[7] = { 0.024, 0.102, 0.24, 0.168, 0.086, 0.174, 0.174 }
static

Definition at line 1907 of file grains_mie.cpp.

const double pah1_wlBand[7] = { 3.3, 6.18, 7.7, 8.6, 11.3, 12.0, 13.3 }
static

Definition at line 1906 of file grains_mie.cpp.

const double pah2_wavl[14]
static
Initial value:
= { 0.0722, 0.2175, 3.3, 6.2, 7.7, 8.6, 11.3,
11.9, 12.7, 16.4, 18.3, 21.2, 23.1, 26.0 }

Definition at line 2129 of file grains_mie.cpp.

const double pah2_width[14]
static
Initial value:
= { 0.195, 0.217, 0.012, 0.032, 0.091, 0.047, 0.018,
0.025, 0.024, 0.010, 0.036, 0.038, 0.046, 0.69 }

Definition at line 2131 of file grains_mie.cpp.

const double pah2c_strength[14]
static
Initial value:
= { 7.97e-13, 1.23e-13, 4.47e-19, 1.57e-18, 5.48e-18, 2.42e-18, 4.00e-18,
6.14e-19, 1.49e-18, 5.52e-20, 6.04e-20, 1.08e-19, 2.78e-20, 1.52e-19 }

Definition at line 2135 of file grains_mie.cpp.

const double pah2n_strength[14]
static
Initial value:
= { 7.97e-13, 1.23e-13, 1.97e-18, 1.96e-19, 6.09e-19, 3.47e-19, 4.27e-18,
7.27e-19, 1.67e-18, 5.52e-20, 6.04e-20, 1.08e-19, 2.78e-20, 1.52e-19 }

Definition at line 2133 of file grains_mie.cpp.

const bool pah3_hoc[30]
static
Initial value:
= { false, false, false, false, false, true, false, false, false, false, false,
false, false, true, true, true, true, true, true, true, true, true, false,
false, false, false, false, false, false, false }

Definition at line 2281 of file grains_mie.cpp.

const double pah3_wavl[30]
static
Initial value:
= { 0.0722, 0.2175, 1.05, 1.26, 1.905, 3.3, 5.27, 5.7, 6.22, 6.69, 7.417, 7.598,
7.85, 8.33, 8.61, 10.68, 11.23, 11.33, 11.99, 12.62, 12.69, 13.48, 14.19,
15.9, 16.45, 17.04, 17.375, 17.87, 18.92, 15. }

Definition at line 2265 of file grains_mie.cpp.

const double pah3_width[30]
static
Initial value:
= { 0.195, 0.217, 0.055, 0.11, 0.09, 0.012, 0.034, 0.035, 0.03, 0.07, 0.126,
0.044, 0.053, 0.052, 0.039, 0.02, 0.012, 0.032, 0.045, 0.042, 0.013, 0.04,
0.025, 0.02, 0.014, 0.065, 0.012, 0.016, 0.1, 0.8 }

Definition at line 2268 of file grains_mie.cpp.

const double pah3c_strength[30]
static
Initial value:
= { 7.97e-13, 1.23e-13, 2.e-16, 7.8e-17, -1.465e-18, 8.94e-19, 2.e-19,
3.2e-19, 2.35e-18, 5.9e-19, 1.81e-18, 1.63e-18, 1.97e-18, 4.8e-19,
1.94e-18, 3.e-21, 1.77e-19, 4.9e-19, 2.05e-19, 3.1e-19, 1.3e-20,
8.e-20, 4.5e-21, 4.e-22, 5.e-21, 2.22e-20, 1.1e-21, 6.7e-22, 1.7e-21,
5.e-19 }

Definition at line 2275 of file grains_mie.cpp.

const double pah3n_strength[30]
static
Initial value:
= { 7.97e-13, 1.23e-13, 0., 0., 0., 3.94e-18, 2.5e-20, 4.e-20, 2.94e-19,
7.35e-20, 2.08e-19, 1.81e-19, 2.19e-19, 6.94e-20, 2.78e-19, 3.e-21,
1.89e-19, 5.2e-19, 2.42e-19, 3.5e-19, 1.3e-20, 8.e-20, 4.5e-21,
4.e-22, 5.e-21, 2.22e-20, 1.1e-21, 6.7e-22, 1.e-21, 5.e-19 }

Definition at line 2271 of file grains_mie.cpp.

const double SMALLEST_GRAIN = 0.0001*(1.-10.*DBL_EPSILON)
static

Definition at line 48 of file grains_mie.cpp.

Referenced by mie_read_szd(), and search_limit().

const int WORDLEN = 5
static

Definition at line 192 of file grains_mie.cpp.

Referenced by mie_read_mix(), mie_read_rfi(), and mie_read_szd().