cloudy trunk
Loading...
Searching...
No Matches
grains_qheat.cpp File Reference
#include "cddefines.h"
#include "physconst.h"
#include "rfield.h"
#include "phycon.h"
#include "dense.h"
#include "hmi.h"
#include "thermal.h"
#include "trace.h"
#include "thirdparty.h"
#include "iterations.h"
#include "grainvar.h"
#include "grains.h"
Include dependency graph for grains_qheat.cpp:

Go to the source code of this file.

Enumerations

enum  QH_Code {
  QH_OK , QH_ANALYTIC , QH_ANALYTIC_RELAX , QH_DELTA ,
  QH_NEGRATE_FAIL , QH_LOOP_FAIL , QH_ARRAY_FAIL , QH_THIGH_FAIL ,
  QH_RETRY , QH_CONV_FAIL , QH_BOUND_FAIL , QH_DELTA_FAIL ,
  QH_NO_REBIN , QH_LOW_FAIL , QH_HIGH_FAIL , QH_STEP_FAIL ,
  QH_FATAL , QH_WIDE_FAIL , QH_NBIN_FAIL , QH_REBIN_FAIL
}

Functions

double no_atoms (size_t nd)
STATIC void qheat_init (size_t, vector< double > &, double *)
STATIC void GetProbDistr_LowLimit (size_t, double, double, double, const vector< double > &, const vector< double > &, vector< double > &, vector< double > &, vector< double > &, long *, double *, long *, QH_Code *)
STATIC double TryDoubleStep (vector< double > &, vector< double > &, vector< double > &, vector< double > &, vector< double > &, const vector< double > &, const vector< double > &, double, double *, long, size_t, bool *)
STATIC double log_integral (double, double, double, double)
STATIC void ScanProbDistr (const vector< double > &, const vector< double > &, long, double, long, double, long *, long *, long *, long *, QH_Code *)
STATIC long RebinQHeatResults (size_t, long, long, vector< double > &, vector< double > &, vector< double > &, vector< double > &, vector< double > &, vector< double > &, vector< double > &, QH_Code *)
STATIC void GetProbDistr_HighLimit (long, double, double, double, vector< double > &, vector< double > &, vector< double > &, double *, long *, double *, QH_Code *)
STATIC double uderiv (double, size_t)
STATIC double ufunct (double, size_t, bool *)
STATIC double inv_ufunct (double, size_t, bool *)
STATIC double DebyeDeriv (double, long)
void GrainMakeDiffuse (void)
void qheat (vector< double > &qtemp, vector< double > &qprob, long int *qnbin, size_t nd)
STATIC void GetProbDistr_LowLimit (size_t nd, double rel_tol, double Umax, double fwhm, const vector< double > &Phi, const vector< double > &PhiDrv, vector< double > &qtemp, vector< double > &qprob, vector< double > &dPdlnT, long int *qnbin, double *new_tmin, long *nWideFail, QH_Code *ErrorCode)
void InitEnthalpy (void)

Variables

static const long NQMIN = 10L
static const double PROB_CUTOFF_LO = 1.e-15
static const double PROB_CUTOFF_HI = 1.e-20
static const double SAFETY = 1.e+8
static const long NSTARTUP = 5L
static const double MAX_EVENTS = 150.
static const long LOOP_MAX = 20L
static const double DEF_FAC = 3.
static const double PROB_TOL = 0.02
static const long NQTEST = 500L
static const double FWHM_RATIO = 0.1
static const double FWHM_RATIO2 = 0.007
static const long MAX_LOOP = 2*NQGRID
static const double QHEAT_TOL = 5.e-3
static const long WIDE_FAIL_MAX = 3
static const double STRICT = 1.
static const double RELAX = 15.
static const double QT_RATIO = 1.03
static const double DEN_SIL = 3.30
static const double MW_SIL = 24.6051
static const double tlim [5] ={0.,50.,150.,500.,DBL_MAX}
static const double ppower [4] ={2.00,1.30,0.68,0.00}
static const double cval [4]

Enumeration Type Documentation

◆ QH_Code

enum QH_Code
Enumerator
QH_OK 
QH_ANALYTIC 
QH_ANALYTIC_RELAX 
QH_DELTA 
QH_NEGRATE_FAIL 
QH_LOOP_FAIL 
QH_ARRAY_FAIL 
QH_THIGH_FAIL 
QH_RETRY 
QH_CONV_FAIL 
QH_BOUND_FAIL 
QH_DELTA_FAIL 
QH_NO_REBIN 
QH_LOW_FAIL 
QH_HIGH_FAIL 
QH_STEP_FAIL 
QH_FATAL 
QH_WIDE_FAIL 
QH_NBIN_FAIL 
QH_REBIN_FAIL 

Definition at line 27 of file grains_qheat.cpp.

Function Documentation

◆ DebyeDeriv()

STATIC double DebyeDeriv ( double x,
long n )

Definition at line 2545 of file grains_qheat.cpp.

References ASSERT, DEBUG_ENTRY, gauss_init(), gauss_legendre(), MAX2, POW2, POW3, powi(), STATIC, and TotalInsanity().

Referenced by uderiv().

Here is the call graph for this function:

◆ GetProbDistr_HighLimit()

STATIC void GetProbDistr_HighLimit ( long nd,
double TolFac,
double Umax,
double fwhm,
vector< double > & qtemp,
vector< double > & qprob,
vector< double > & dPdlnT,
double * tol,
long * qnbin,
double * new_tmin,
QH_Code * ErrorCode )

◆ GetProbDistr_LowLimit() [1/2]

STATIC void GetProbDistr_LowLimit ( size_t nd,
double rel_tol,
double Umax,
double fwhm,
const vector< double > & Phi,
const vector< double > & PhiDrv,
vector< double > & qtemp,
vector< double > & qprob,
vector< double > & dPdlnT,
long int * qnbin,
double * new_tmin,
long * nWideFail,
QH_Code * ErrorCode )

◆ GetProbDistr_LowLimit() [2/2]

STATIC void GetProbDistr_LowLimit ( size_t ,
double ,
double ,
double ,
const vector< double > & ,
const vector< double > & ,
vector< double > & ,
vector< double > & ,
vector< double > & ,
long * ,
double * ,
long * ,
QH_Code *  )

References STATIC.

Referenced by qheat().

◆ GrainMakeDiffuse()

void GrainMakeDiffuse ( void )

main routine for generating the grain diffuse emission

Definition at line 170 of file grains_qheat.cpp.

References ASSERT, CONSERV_TOL, DEBUG_ENTRY, dense, EN1RYD, FR1RYD, gv, hmi, ipHYDROGEN, lgAbort, MAX2, NQGRID, PI4, POW2, qheat(), rfield, SPEEDLIGHT, STRG_CAR, STRG_SIL, TE1RYD, thermal, and TotalInsanity().

Referenced by RT_diffuse().

Here is the call graph for this function:

◆ InitEnthalpy()

void InitEnthalpy ( void )

initialize interpolation arrays for grain enthalpy

Definition at line 2482 of file grains_qheat.cpp.

References DEBUG_ENTRY, GRAIN_TMIN, gv, log_integral(), NDEMS, spline(), tlim, and uderiv().

Referenced by GrainsInit().

Here is the call graph for this function:

◆ inv_ufunct()

STATIC double inv_ufunct ( double enthalpy,
size_t nd,
bool * lgBoundErr )

Definition at line 2456 of file grains_qheat.cpp.

References ASSERT, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, gv, ioQQQ, NDEMS, splint_safe(), and STATIC.

Referenced by GetProbDistr_HighLimit(), qheat(), and TryDoubleStep().

Here is the call graph for this function:

◆ log_integral()

STATIC double log_integral ( double xx1,
double yy1,
double xx2,
double yy2 )

Definition at line 1778 of file grains_qheat.cpp.

References ASSERT, DEBUG_ENTRY, and STATIC.

Referenced by GetProbDistr_HighLimit(), InitEnthalpy(), RebinQHeatResults(), and TryDoubleStep().

◆ no_atoms()

double no_atoms ( size_t nd)
inline

Definition at line 17 of file grains_qheat.cpp.

References ATOMIC_MASS_UNIT, and gv.

Referenced by mie_read_form(), and uderiv().

◆ qheat()

◆ qheat_init()

◆ RebinQHeatResults()

STATIC long RebinQHeatResults ( size_t nd,
long nstart,
long nend,
vector< double > & p,
vector< double > & qtemp,
vector< double > & qprob,
vector< double > & dPdlnT,
vector< double > & u1,
vector< double > & delu,
vector< double > & Lambda,
QH_Code * ErrorCode )

Definition at line 1913 of file grains_qheat.cpp.

References ASSERT, CONSERV_TOL, DEBUG_ENTRY, EN1RYD, gv, ioQQQ, log_integral(), MAX2, MIN2, NDEMS, NQGRID, NQMIN, PROB_CUTOFF_LO, QH_CONV_FAIL, QH_REBIN_FAIL, QT_RATIO, SAFETY, splint_safe(), STATIC, trace, uderiv(), and ufunct().

Referenced by GetProbDistr_LowLimit().

Here is the call graph for this function:

◆ ScanProbDistr()

STATIC void ScanProbDistr ( const vector< double > & u1,
const vector< double > & dPdlnT,
long nbin,
double maxVal,
long nmax,
double qtmin1,
long * nstart,
long * nstart2,
long * nend,
long * nWideFail,
QH_Code * ErrorCode )

◆ TryDoubleStep()

STATIC double TryDoubleStep ( vector< double > & u1,
vector< double > & delu,
vector< double > & p,
vector< double > & qtemp,
vector< double > & Lambda,
const vector< double > & Phi,
const vector< double > & PhiDrv,
double step,
double * cooling,
long index,
size_t nd,
bool * lgBoundFail )

Definition at line 1605 of file grains_qheat.cpp.

References ASSERT, DEBUG_ENTRY, EN1RYD, gv, inv_ufunct(), log_integral(), MAX2, NDEMS, NQGRID, PROB_CUTOFF_LO, QHEAT_TOL, rfield, splint_safe(), and STATIC.

Referenced by GetProbDistr_LowLimit().

Here is the call graph for this function:

◆ uderiv()

STATIC double uderiv ( double temp,
size_t nd )

◆ ufunct()

STATIC double ufunct ( double temp,
size_t nd,
bool * lgBoundErr )

Definition at line 2430 of file grains_qheat.cpp.

References ASSERT, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, gv, ioQQQ, NDEMS, splint_safe(), and STATIC.

Referenced by GetProbDistr_HighLimit(), GetProbDistr_LowLimit(), qheat(), and RebinQHeatResults().

Here is the call graph for this function:

Variable Documentation

◆ cval

const double cval[4]
static
Initial value:
={
static const double DEN_SIL
static const double MW_SIL
UNUSED const double EN1RYD
Definition physconst.h:179
UNUSED const double ATOMIC_MASS_UNIT
Definition physconst.h:88

Definition at line 126 of file grains_qheat.cpp.

Referenced by uderiv().

◆ DEF_FAC

const double DEF_FAC = 3.
static

Definition at line 69 of file grains_qheat.cpp.

Referenced by GetProbDistr_LowLimit(), and qheat().

◆ DEN_SIL

const double DEN_SIL = 3.30
static

Definition at line 118 of file grains_qheat.cpp.

◆ FWHM_RATIO

const double FWHM_RATIO = 0.1
static

Definition at line 80 of file grains_qheat.cpp.

Referenced by qheat().

◆ FWHM_RATIO2

const double FWHM_RATIO2 = 0.007
static

Definition at line 83 of file grains_qheat.cpp.

Referenced by qheat().

◆ LOOP_MAX

const long LOOP_MAX = 20L
static

Definition at line 66 of file grains_qheat.cpp.

Referenced by cnewton(), lgCoolNetConverge(), and qheat().

◆ MAX_EVENTS

const double MAX_EVENTS = 150.
static

Definition at line 62 of file grains_qheat.cpp.

Referenced by qheat().

◆ MAX_LOOP

const long MAX_LOOP = 2*NQGRID
static

Definition at line 86 of file grains_qheat.cpp.

Referenced by GetProbDistr_LowLimit().

◆ MW_SIL

const double MW_SIL = 24.6051
static

Definition at line 121 of file grains_qheat.cpp.

◆ NQMIN

const long NQMIN = 10L
static

◆ NQTEST

const long NQTEST = 500L
static

Definition at line 76 of file grains_qheat.cpp.

Referenced by GetProbDistr_LowLimit().

◆ NSTARTUP

const long NSTARTUP = 5L
static

Definition at line 58 of file grains_qheat.cpp.

Referenced by GetProbDistr_LowLimit().

◆ ppower

const double ppower[4] ={2.00,1.30,0.68,0.00}
static

Definition at line 125 of file grains_qheat.cpp.

Referenced by uderiv().

◆ PROB_CUTOFF_HI

const double PROB_CUTOFF_HI = 1.e-20
static

Definition at line 54 of file grains_qheat.cpp.

Referenced by GetProbDistr_HighLimit(), and GetProbDistr_LowLimit().

◆ PROB_CUTOFF_LO

const double PROB_CUTOFF_LO = 1.e-15
static

◆ PROB_TOL

const double PROB_TOL = 0.02
static

Definition at line 72 of file grains_qheat.cpp.

Referenced by GetProbDistr_HighLimit(), and GetProbDistr_LowLimit().

◆ QHEAT_TOL

const double QHEAT_TOL = 5.e-3
static

Definition at line 89 of file grains_qheat.cpp.

Referenced by GetProbDistr_LowLimit(), and TryDoubleStep().

◆ QT_RATIO

const double QT_RATIO = 1.03
static

Definition at line 103 of file grains_qheat.cpp.

Referenced by GetProbDistr_HighLimit(), and RebinQHeatResults().

◆ RELAX

const double RELAX = 15.
static

Definition at line 96 of file grains_qheat.cpp.

Referenced by qheat().

◆ SAFETY

const double SAFETY = 1.e+8
static

◆ STRICT

const double STRICT = 1.
static

Definition at line 95 of file grains_qheat.cpp.

Referenced by GetProbDistr_HighLimit(), and qheat().

◆ tlim

const double tlim[5] ={0.,50.,150.,500.,DBL_MAX}
static

Definition at line 124 of file grains_qheat.cpp.

Referenced by InitEnthalpy(), and uderiv().

◆ WIDE_FAIL_MAX

const long WIDE_FAIL_MAX = 3
static

Definition at line 92 of file grains_qheat.cpp.

Referenced by GetProbDistr_LowLimit(), qheat(), and ScanProbDistr().