cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Macros | 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.

Macros

#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

Macro Definition 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
static
realnum CS2SMALL = (realnum)1e-5

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
static

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
static

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
static

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().

realnum* Fe2Energies

Definition at line 145 of file atom_feii.cpp.

Referenced by FeIICreate().

double * Fe2LevelPop
static

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().

realnum** FeII_Bands

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().

realnum** FeII_Cont

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
static

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().

double PhotOccNumLyaCenter
static

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
static

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().


Generated for cloudy by doxygen 1.8.1.2