cloudy trunk
Defines | Functions | Variables

atom_feii.cpp File Reference

#include "cddefines.h"
#include "cddrive.h"
#include "thermal.h"
#include "physconst.h"
#include "doppvel.h"
#include "taulines.h"
#include "dense.h"
#include "rfield.h"
#include "radius.h"
#include "lines_service.h"
#include "ipoint.h"
#include "thirdparty.h"
#include "hydrogenic.h"
#include "lines.h"
#include "rt.h"
#include "trace.h"
#include "punch.h"
#include "phycon.h"
#include "atomfeii.h"
#include "iso.h"
#include "pressure.h"
Include dependency graph for atom_feii.cpp:

Go to the source code of this file.

Defines

#define NPRADDAT   159
#define USE_OLD   true
#define AMAT(I_, J_)   (*(amat+(I_)*FeII.nFeIILevel+(J_)))
#define NLEVDEP   11
#define NLEVPOP   11

Functions

STATIC void FeIIOvrLap (void)
STATIC void FeIIContCreate (double xLamLow, double xLamHigh, long int ncell)
STATIC int FeIIBandsCreate (const char chFile[])
STATIC void FeIICollRatesBoltzmann (void)
STATIC void FeIILyaPump (void)
void FeII_Colden (const char *chLabel)
void FeIICreate (void)
void FeIILevelPops (void)
void FeIIPrint (void)
double FeIISumBand (realnum wl1, realnum wl2)
void FeII_RT_TauInc (void)
void FeII_RT_tau_reset (void)
void FeIIPoint (void)
void FeIIAccel (double *fe2drive)
void FeII_RT_Make (bool lgDoEsc, bool lgUpdateFineOpac)
void FeIIAddLines (void)
void FeIIPunchLevels (FILE *ioPUN)
void FeIIPunchColden (FILE *ioPUN)
void FeIIPunchOpticalDepth (FILE *ioPUN)
void FeIIPunchLines (FILE *ioPUN)
void FeII_LineZero (void)
void FeIIIntenZero (void)
void FeIIFillLow16 (void)
void FeIIPunData (FILE *ioPUN, bool lgDoAll)
void FeIIPunDepart (FILE *ioPUN, bool lgDoAll)
void FeIIPun1Depart (FILE *ioPUN, long int nPUN)
void FeIIReset (void)
void FeIIZero (void)
void FeIIPunPop (FILE *ioPUN, bool lgPunchRange, long int ipRangeLo, long int ipRangeHi, bool lgPunchDensity)
void AssertFeIIDep (double *pred, double *BigError, double *StdDev)
void FeII_OTS (void)
void FeII_RT_Out (void)
void ParseAtomFeII (char *chCard)
void PunFeII (FILE *io)
void FeIIPunchLineStuff (FILE *io, realnum xLimit, long index)
double FeIIRadPress (void)

Variables

realnum CS2SMALL = (realnum)1e-5
int ** ncs1
realnum ** FeII_Bands
realnum ** FeII_Cont
long int nFeIIBands
long int nFeIIConBins
static long int * nnPradDat
static realnum *** sPradDat
static double ** Fe2SavN
static double ** Fe2A
static double ** Fe2LPump
static double ** Fe2CPump
realnumFe2Energies
static realnum ** Fe2Coll
static double * Fe2DepCoef
static double * Fe2LevelPop
static double * Fe2ColDen
static double * FeIIBoltzmann
static double EnerLyaProf1
static double EnerLyaProf4
static double PhotOccNumLyaCenter
static double * yVector
static double ** xMatrix
static double * amat

Define Documentation

#define AMAT (   I_,
  J_ 
)    (*(amat+(I_)*FeII.nFeIILevel+(J_)))

Referenced by FeIILevelPops().

#define NLEVDEP   11

Referenced by FeIIPunDepart().

#define NLEVPOP   11

Referenced by FeIIPunPop().

#define NPRADDAT   159

Definition at line 103 of file atom_feii.cpp.

Referenced by FeIICollRatesBoltzmann(), and FeIICreate().

#define USE_OLD   true

Referenced by FeIICreate().


Function Documentation

void AssertFeIIDep ( double *  pred,
double *  BigError,
double *  StdDev 
)

called by assert feii depart coef command

Parameters:
*pred
*BigError
*StdDev

Definition at line 2584 of file atom_feii.cpp.

References ASSERT, DEBUG_ENTRY, Fe2DepCoef, FeII, t_FeII::lgSimulate, MAX2, t_FeII::nFeIILevel, and POW2.

Referenced by lgCheckAsserts().

void FeII_Colden ( const char *  chLabel)

FeII_Colden maintain H2 column densities within X

Parameters:
*chLabel

Definition at line 179 of file atom_feii.cpp.

References cdEXIT, DEBUG_ENTRY, t_radius::drad_x_fillfac, Fe2ColDen, Fe2LevelPop, FeII, ioQQQ, t_FeII::nFeIILevel, and radius.

Referenced by molcol().

void FeII_LineZero ( void  )

initialize optical depth arrays, called by TauOut

Definition at line 1867 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2LevN, FeII, t_FeII::nFeIILevel, and TransitionZero().

Referenced by RT_tau_init().

Here is the call graph for this function:

void FeII_OTS ( void  )

do OTS and outward parts of FeII lines, if large atom is turned on

Definition at line 2639 of file atom_feii.cpp.

References ASSERT, t_emission::Aul, DEBUG_ENTRY, t_transition::Emis, Fe2LevN, FeII, t_transition::Hi, t_transition::ipCont, t_FeII::nFeIILevel, t_emission::ots, t_emission::Pdest, t_quantumState::Pop, and RT_OTS_AddLine().

Referenced by RT_OTS().

Here is the call graph for this function:

void FeII_RT_Make ( bool  lgDoEsc,
bool  lgUpdateFineOpac 
)

called in LineSet4 to add FeII lines to save array

Parameters:
lgDoEsc
lgUpdateFineOpac

Definition at line 1575 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2LevN, FeII, ioQQQ, t_trace::lgTrace, t_FeII::nFeIILevel, t_FeII::nFeIILevelAlloc, RT_line_one(), and trace.

Referenced by RT_line_all().

Here is the call graph for this function:

void FeII_RT_Out ( void  )

do outward rates for FeII, called by RT_diffuse

Definition at line 2676 of file atom_feii.cpp.

References DEBUG_ENTRY, dense, Fe2LevN, FeII, ipIRON, t_FeII::nFeIILevel, outline(), and t_dense::xIonDense.

Referenced by RT_diffuse().

Here is the call graph for this function:

void FeII_RT_tau_reset ( void  )

FeII_RT_tau_reset reset optical depths for large FeII atom, called by update after each iteration

Definition at line 1445 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2LevN, FeII, FeIIOvrLap(), t_FeII::nFeIILevelAlloc, and RT_line_one_tau_reset().

Referenced by RT_tau_reset().

Here is the call graph for this function:

void FeII_RT_TauInc ( void  )

FeII_RT_TauInc called once per zone in RT_tau_inc to increment large FeII atom line optical depths

Definition at line 1416 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2LevN, FeII, t_FeII::nFeIILevel, t_FeII::nFeIILevelAlloc, and RT_line_one_tauinc().

Referenced by RT_tau_inc().

Here is the call graph for this function:

void FeIIAccel ( double *  fe2drive)

called by rt_line_driving to compute radiative acceleration due to FeII lines

Parameters:
*fe2drive

Definition at line 1547 of file atom_feii.cpp.

References DEBUG_ENTRY, t_transition::Emis, t_transition::EnergyErg, Fe2LevN, FeII, t_FeII::nFeIILevel, t_emission::PopOpc, and t_emission::pump.

Referenced by RT_line_driving().

void FeIIAddLines ( void  )

called by LineSet4, this adds feii line intensities together

Definition at line 1611 of file atom_feii.cpp.

References DEBUG_ENTRY, t_radius::dVeff, t_transition::Emis, Fe2LevN, Fe2SavN, FeII, ioQQQ, t_LineSave::ipass, LineSave, t_FeII::nFeIILevel, nzone, radius, and t_emission::xIntensity.

Referenced by lines_lv1_k_zn().

STATIC int FeIIBandsCreate ( const char  chFile[])

Definition at line 2436 of file atom_feii.cpp.

References DEBUG_ENTRY, FeII_Bands, FFmtRead(), FILENAME_PATH_LENGTH_2, INPUT_LINE_LENGTH, ioQQQ, lgCalled, t_trace::lgTrace, MALLOC, nFeIIBands, open_data(), read_whole_line(), and trace.

Referenced by FeIICreate().

Here is the call graph for this function:

STATIC void FeIICollRatesBoltzmann ( void  )
STATIC void FeIIContCreate ( double  xLamLow,
double  xLamHigh,
long int  ncell 
)

Definition at line 2707 of file atom_feii.cpp.

References cdEXIT, DEBUG_ENTRY, FeII_Cont, ioQQQ, lgCalled, MALLOC, and nFeIIConBins.

Referenced by FeIICreate().

void FeIICreate ( void  )
void FeIIFillLow16 ( void  )
void FeIIIntenZero ( void  )
void FeIILevelPops ( void  )
STATIC void FeIILyaPump ( void  )
STATIC void FeIIOvrLap ( void  )

Definition at line 2790 of file atom_feii.cpp.

References DEBUG_ENTRY.

Referenced by FeII_RT_tau_reset().

void FeIIPoint ( void  )

FeIIPoint called by ContCreatePointers to create pointers for lines in large FeII atom

Definition at line 1487 of file atom_feii.cpp.

References abscf(), t_rfield::chLineLabel, t_emission::dampXvel, DEBUG_ENTRY, t_transition::Emis, t_transition::EnergyErg, t_transition::EnergyK, t_transition::EnergyWN, ERG1CM, Fe2LevN, FeII, t_quantumState::g, t_transition::ipCont, t_emission::ipFine, ipFineCont(), ipoint(), t_transition::Lo, t_FeII::nFeIILevel, t_emission::opacity, PI4, rfield, T1CM, and WAVNRYD.

Referenced by ContCreatePointers().

Here is the call graph for this function:

void FeIIPrint ( void  )

FeIIPrint

Definition at line 1333 of file atom_feii.cpp.

References DEBUG_ENTRY.

Referenced by PrtZone().

void FeIIPun1Depart ( FILE *  ioPUN,
long int  nPUN 
)

send the departure coef for physical level nPUN to unit ioPUN

Parameters:
ioPUNthe io unit where the print should be directed
nPUNthe physical (not c) number of the level

Definition at line 2219 of file atom_feii.cpp.

References ASSERT, DEBUG_ENTRY, Fe2DepCoef, FeII, and t_FeII::nFeIILevel.

Referenced by FeIIPunDepart().

void FeIIPunchColden ( FILE *  ioPUN)

FeIIPunchColden punch level energies, stat weights, column density

Parameters:
*ioPUNfile we will punch to

Definition at line 1685 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2ColDen, Fe2LevN, FeII, and t_FeII::nFeIILevel.

Referenced by PunchDo().

void FeIIPunchLevels ( FILE *  ioPUN)

called by parse_punch, punch level energies and stat weights

Parameters:
ioPUN

Definition at line 1664 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2LevN, FeII, and t_FeII::nFeIILevel.

Referenced by PunchDo().

void FeIIPunchLines ( FILE *  ioPUN)

called by FeIIPunchLevels, this creates the punch feii line intensity

Parameters:
ioPUN

Definition at line 1745 of file atom_feii.cpp.

References cdEXIT, cdLine(), t_radius::Conv2PrtInten, DEBUG_ENTRY, t_transition::Emis, t_transition::EnergyWN, t_FeII::fe2ener, Fe2LevN, Fe2SavN, t_FeII::fe2thresh, FeII, ioQQQ, t_LineSave::ipNormWavL, t_LineSave::lgLineEmergent, t_FeII::lgShortFe2, LineSave, LineSv, MAX2, t_FeII::nFeIILevelAlloc, radius, t_LineSave::ScaleNormLine, SMALLFLOAT, t_tag_LineSv::sumlin, and t_emission::TauIn.

Referenced by PunchDo().

Here is the call graph for this function:

void FeIIPunchLineStuff ( FILE *  io,
realnum  xLimit,
long  index 
)

include FeII lines in punched optical depths, etc, called from PunchLineStuff

Parameters:
io
xLimit
index

Definition at line 3015 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2LevN, FeII, t_FeII::nFeIILevel, and pun1Line().

Referenced by PunchLineStuff().

Here is the call graph for this function:

void FeIIPunchOpticalDepth ( FILE *  ioPUN)

called by FeIIPunchLevels, this creates the punch feii line optical depths

Parameters:
ioPUN

Definition at line 1710 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2LevN, FeII, and t_FeII::nFeIILevelAlloc.

Referenced by PunchDo().

void FeIIPunData ( FILE *  ioPUN,
bool  lgDoAll 
)

punch line data for FeII atom

Parameters:
ioPUNio unit for punch
lgDoAllpunch all levels if true, only subset if false

Definition at line 2094 of file atom_feii.cpp.

References cdEXIT, DEBUG_ENTRY, Fe2LevN, FeII, ioQQQ, MIN2, ncs1, t_FeII::nFeIILevel, and Punch1LineData().

Referenced by PunchLineData().

Here is the call graph for this function:

void FeIIPunDepart ( FILE *  ioPUN,
bool  lgDoAll 
)

punch some departure coef for large atom, set with punch feii departure command

Parameters:
ioPUN
lgDoAlloption to punch all dep coef if true

Definition at line 2166 of file atom_feii.cpp.

References DEBUG_ENTRY, FeII, FeIIPun1Depart(), t_FeII::nFeIILevel, and NLEVDEP.

Referenced by PunchDo().

Here is the call graph for this function:

void FeIIPunPop ( FILE *  ioPUN,
bool  lgPunchRange,
long int  ipRangeLo,
long int  ipRangeHi,
bool  lgPunchDensity 
)

punch some level pops for large atom, set with punch feii level populations command

Parameters:
ioPUN
lgPunchRangepunch range of levels if true, only selected subset if false
ipRangeLoif ipPunchRange is true, this is lower bound of range on C scale
ipRangeHiif ipPunchRange is true, this is upper bound of range on C scale
lgPunchDensityflag saying whether to punch density (cm-3, true) or relative population (flase)

Definition at line 2333 of file atom_feii.cpp.

References ASSERT, DEBUG_ENTRY, dense, Fe2LevelPop, FeII, ipIRON, t_FeII::nFeIILevel, NLEVPOP, SDIV(), and t_dense::xIonDense.

Referenced by PunchDo().

Here is the call graph for this function:

double FeIIRadPress ( void  )

rad pre due to FeII lines called in PresTotCurrent

Definition at line 3033 of file atom_feii.cpp.

References DEBUG_ENTRY, DumpLine(), t_transition::Emis, Fe2LevN, FeII, ioQQQ, iteration, t_FeII::nFeIILevel, nzone, t_emission::PopOpc, PressureRadiationLine(), RT_LineWidth(), and SMALLFLOAT.

Referenced by PresTotCurrent().

Here is the call graph for this function:

void FeIIReset ( void  )

initialize some variables, called by zero

Definition at line 2249 of file atom_feii.cpp.

References DEBUG_ENTRY, FeII, t_FeII::nFeIILevel, and t_FeII::nFeIILevelAlloc.

Referenced by IterRestart().

double FeIISumBand ( realnum  wl1,
realnum  wl2 
)

called in LineSet4, this sums over FeII bands and returns intensities args are lower and upper edges of bands as set in fe2bands.dat

Parameters:
wl1
wl2

Definition at line 1348 of file atom_feii.cpp.

References ASSERT, DEBUG_ENTRY, dense, t_transition::Emis, Fe2LevN, FeII, ipIRON, t_FeII::nFeIILevel, t_emission::xIntensity, and t_dense::xIonDense.

Referenced by lines_lv1_k_zn().

void FeIIZero ( void  )
void ParseAtomFeII ( char *  chCard)
void PunFeII ( FILE *  io)

Definition at line 2995 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2LevN, FeII, and t_FeII::nFeIILevel.

Referenced by PunchSpecial().


Variable Documentation

double * amat

Definition at line 81 of file atom_feii.cpp.

Referenced by FeIICollRatesBoltzmann(), and FeIICreate().

double EnerLyaProf1 [static]

Definition at line 164 of file atom_feii.cpp.

Referenced by FeIILyaPump().

double EnerLyaProf4

Definition at line 164 of file atom_feii.cpp.

Referenced by FeIILyaPump().

double** Fe2A [static]

Definition at line 139 of file atom_feii.cpp.

Referenced by FeIICreate(), and FeIILevelPops().

double * Fe2ColDen

Definition at line 155 of file atom_feii.cpp.

Referenced by FeII_Colden(), FeIICreate(), and FeIIPunchColden().

realnum** Fe2Coll [static]

Definition at line 148 of file atom_feii.cpp.

Referenced by FeIICollRatesBoltzmann(), FeIICreate(), and FeIILevelPops().

double ** Fe2CPump

Definition at line 142 of file atom_feii.cpp.

Referenced by FeIICreate(), and FeIILevelPops().

double* Fe2DepCoef [static]

Definition at line 155 of file atom_feii.cpp.

Referenced by AssertFeIIDep(), FeIICreate(), FeIILevelPops(), and FeIIPun1Depart().

Definition at line 145 of file atom_feii.cpp.

Referenced by FeIICreate().

double * Fe2LevelPop

Definition at line 155 of file atom_feii.cpp.

Referenced by FeII_Colden(), FeIICreate(), FeIIIntenZero(), FeIILevelPops(), and FeIIPunPop().

double** Fe2LPump [static]

Definition at line 142 of file atom_feii.cpp.

Referenced by FeIICreate(), FeIILevelPops(), and FeIILyaPump().

double** Fe2SavN [static]

Definition at line 136 of file atom_feii.cpp.

Referenced by FeIIAddLines(), FeIICreate(), and FeIIPunchLines().

FeII.bands[n][3], where n is the number of bands in fe2bands.dat these bands are defined in fe2bands.dat and read in at startup of calculation

Definition at line 109 of file atom_feii.cpp.

Referenced by FeIIBandsCreate(), and lines_lv1_k_zn().

FeII_Cont[n][3], where n is the number of cells needed these bands are defined in cdGetFeIIBands

Definition at line 115 of file atom_feii.cpp.

Referenced by FeIIContCreate(), lines_lv1_k_zn(), and PunchDo().

double * FeIIBoltzmann

Definition at line 155 of file atom_feii.cpp.

Referenced by FeIICollRatesBoltzmann(), FeIICreate(), and FeIILevelPops().

int** ncs1

Definition at line 97 of file atom_feii.cpp.

Referenced by FeIICollRatesBoltzmann(), FeIICreate(), and FeIIPunData().

long int nFeIIBands

this is the number of bands read in from bands_Fe2.dat

Definition at line 118 of file atom_feii.cpp.

Referenced by FeIIBandsCreate(), and lines_lv1_k_zn().

long int nFeIIConBins

number of bands in continuum array

Definition at line 121 of file atom_feii.cpp.

Referenced by FeIIContCreate(), lines_lv1_k_zn(), and PunchDo().

long int* nnPradDat [static]

Definition at line 126 of file atom_feii.cpp.

Referenced by FeIICollRatesBoltzmann(), and FeIICreate().

Definition at line 164 of file atom_feii.cpp.

Referenced by FeIILyaPump().

realnum*** sPradDat [static]

Definition at line 131 of file atom_feii.cpp.

Referenced by FeIICollRatesBoltzmann(), and FeIICreate().

double ** xMatrix

Definition at line 169 of file atom_feii.cpp.

Referenced by FeIICreate(), FeIILevelPops(), and SanityCheckBegin().

double* yVector [static]

Definition at line 169 of file atom_feii.cpp.

Referenced by FeIICreate(), FeIILevelPops(), and SanityCheckBegin().

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated for cloudy by doxygen 1.7.3