/home66/gary/public_html/cloudy/c10_branch/source/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 "save.h"
#include "phycon.h"
#include "atomfeii.h"
#include "iso.h"
#include "pressure.h"
#include "parser.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_local+(J_)))
#define NLEVDEP   11
#define NLEVPOP   11

Functions

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, double *SumBandInward)
void FeII_RT_TauInc (void)
void FeII_RT_tau_reset (void)
void FeIIPoint (void)
void FeIIAccel (double *fe2drive)
void FeII_RT_Make (void)
void FeIIAddLines (void)
void FeIIPunchLevels (FILE *ioPUN)
void FeIIPunchColden (FILE *ioPUN)
void FeIIPunchOpticalDepth (FILE *ioPUN)
void FeIISaveLines (FILE *ioPUN)
void FeII_LineZero (void)
void FeIIIntenZero (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 (Parser &p)
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
STATIC bool lgFeIIEverCalled = false

Define Documentation

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

Referenced by FeIILevelPops().

#define NLEVDEP   11

Referenced by FeIIPunDepart().

#define NLEVPOP   11

Referenced by FeIIPunPop().

#define NPRADDAT   159

Definition at line 100 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 2417 of file atom_feii.cpp.

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

Referenced by lgCheckMonitors().

void FeII_Colden ( const char *  chLabel  ) 

FeII_Colden maintain H2 column densities within X

Parameters:
*chLabel 

Definition at line 177 of file atom_feii.cpp.

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

Referenced by molcol().

void FeII_LineZero ( void   ) 

initialize optical depth arrays, called by TauOut

Definition at line 1794 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2LevN, FeII, t_FeII::nFeIILevel_malloc, and transition::Zero().

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 2469 of file atom_feii.cpp.

References ASSERT, t_emission::Aul, DEBUG_ENTRY, transition::Emis, Fe2LevN, FeII, transition::Hi, transition::ipCont, t_FeII::nFeIILevel_local, 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 ( void   ) 

do line RT for FeII model

Definition at line 1513 of file atom_feii.cpp.

References t_dense::AtomicWeight, DEBUG_ENTRY, dense, Fe2LevN, FeII, GetDopplerWidth(), ioQQQ, ipIRON, t_trace::lgTrace, t_FeII::nFeIILevel_local, t_FeII::nFeIILevel_malloc, RT_line_one(), and trace.

Referenced by Fe2_cooling().

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 2506 of file atom_feii.cpp.

References DEBUG_ENTRY, dense, Fe2LevN, FeII, ipIRON, t_FeII::nFeIILevel_local, transition::outline_resonance(), 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 1394 of file atom_feii.cpp.

References DEBUG_ENTRY, Fe2LevN, FeII, t_FeII::nFeIILevel_malloc, 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 1366 of file atom_feii.cpp.

References t_dense::AtomicWeight, DEBUG_ENTRY, dense, Fe2LevN, FeII, GetDopplerWidth(), ipIRON, t_FeII::nFeIILevel_local, t_FeII::nFeIILevel_malloc, 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 1485 of file atom_feii.cpp.

References DEBUG_ENTRY, transition::Emis, transition::EnergyErg, Fe2LevN, FeII, t_FeII::nFeIILevel_local, 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 1548 of file atom_feii.cpp.

References DEBUG_ENTRY, t_radius::dVeffAper, transition::Emis, Fe2LevN, Fe2SavN, FeII, ioQQQ, t_LineSave::ipass, LineSave, t_FeII::nFeIILevel_local, t_FeII::nFeIILevel_malloc, nzone, radius, and t_emission::xIntensity.

Referenced by lines_lv1_k_zn().

STATIC int FeIIBandsCreate ( const char  chFile[]  ) 

Definition at line 2258 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 2537 of file atom_feii.cpp.

References DEBUG_ENTRY, FeII_Cont, lgCalled, MALLOC, nFeIIConBins, and pow().

Referenced by FeIICreate().

Here is the call graph for this function:

void FeIICreate ( void   ) 
void FeIIIntenZero ( void   ) 
void FeIILevelPops ( void   ) 
STATIC void FeIILyaPump ( void   ) 
void FeIIPoint ( void   ) 

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

Definition at line 1425 of file atom_feii.cpp.

References abscf(), t_rfield::chLineLabel, t_emission::dampXvel, DEBUG_ENTRY, transition::Emis, transition::EnergyErg, transition::EnergyK, transition::EnergyWN, ERG1CM, Fe2LevN, FeII, t_quantumState::g, transition::ipCont, t_emission::ipFine, ipFineCont(), ipoint(), transition::Lo, t_FeII::nFeIILevel_malloc, 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 1311 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:
ioPUN the io unit where the print should be directed
nPUN the physical (not c) number of the level

Definition at line 2047 of file atom_feii.cpp.

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

Referenced by FeIIPunDepart().

void FeIIPunchColden ( FILE *  ioPUN  ) 

FeIIPunchColden save level energies, stat weights, column density

Parameters:
*ioPUN file we will save to

Definition at line 1620 of file atom_feii.cpp.

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

Referenced by SaveDo().

void FeIIPunchLevels ( FILE *  ioPUN  ) 

called by parse_punch, save level energies and stat weights

Parameters:
ioPUN 

Definition at line 1599 of file atom_feii.cpp.

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

Referenced by SaveDo().

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

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

Parameters:
io 
xLimit 
index 

Definition at line 2782 of file atom_feii.cpp.

References t_dense::AtomicWeight, DEBUG_ENTRY, dense, Fe2LevN, FeII, GetDopplerWidth(), ipIRON, t_FeII::nFeIILevel_local, and Save1Line().

Referenced by SaveLineStuff().

Here is the call graph for this function:

void FeIIPunchOpticalDepth ( FILE *  ioPUN  ) 

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

Parameters:
ioPUN 

Definition at line 1645 of file atom_feii.cpp.

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

Referenced by SaveDo().

void FeIIPunData ( FILE *  ioPUN,
bool  lgDoAll 
)

save line data for FeII atom

Parameters:
ioPUN io unit for save
lgDoAll save all levels if true, only subset if false

Definition at line 1922 of file atom_feii.cpp.

References cdEXIT, DEBUG_ENTRY, Fe2LevN, FeII, ioQQQ, lgFeIIEverCalled, MIN2, ncs1, t_FeII::nFeIILevel_local, and Save1LineData().

Referenced by SaveLineData().

Here is the call graph for this function:

void FeIIPunDepart ( FILE *  ioPUN,
bool  lgDoAll 
)

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

Parameters:
ioPUN 
lgDoAll option to save all dep coef if true

Definition at line 1994 of file atom_feii.cpp.

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

Referenced by SaveDo().

Here is the call graph for this function:

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

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

Parameters:
ioPUN 
lgPunchRange save range of levels if true, only selected subset if false
ipRangeLo if ipPunchRange is true, this is lower bound of range on C scale
ipRangeHi if ipPunchRange is true, this is upper bound of range on C scale
lgPunchDensity flag saying whether to save density (cm-3, true) or relative population (flase)

Definition at line 2154 of file atom_feii.cpp.

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

Referenced by SaveDo().

Here is the call graph for this function:

double FeIIRadPress ( void   ) 

rad pre due to FeII lines called in PresTotCurrent

Definition at line 2800 of file atom_feii.cpp.

References t_dense::AtomicWeight, DEBUG_ENTRY, dense, DumpLine(), transition::Emis, Fe2LevN, FeII, GetDopplerWidth(), ioQQQ, ipIRON, iteration, lgFeIIEverCalled, t_FeII::nFeIILevel_local, 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 2077 of file atom_feii.cpp.

References DEBUG_ENTRY, FeII, t_FeII::nFeIILevel_local, and t_FeII::nFeIILevel_malloc.

Referenced by IterRestart().

void FeIISaveLines ( FILE *  ioPUN  ) 

called by FeIIPunchLevels, this creates the save feii line intensity

Parameters:
ioPUN 

Definition at line 1680 of file atom_feii.cpp.

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

Referenced by SaveDo().

Here is the call graph for this function:

double FeIISumBand ( realnum  wl1,
realnum  wl2,
double *  SumBandInward 
)

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 
*SumBandInward 

Definition at line 1326 of file atom_feii.cpp.

References ASSERT, DEBUG_ENTRY, dense, transition::Emis, Fe2LevN, FeII, t_emission::FracInwd, ipIRON, t_FeII::nFeIILevel_local, SMALLFLOAT, t_emission::xIntensity, and t_dense::xIonDense.

Referenced by lines_lv1_k_zn().

void FeIIZero ( void   ) 
void ParseAtomFeII ( Parser p  ) 
void PunFeII ( FILE *  io  ) 

Definition at line 2762 of file atom_feii.cpp.

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

Referenced by SaveSpecial().


Variable Documentation

double * amat [static]

Definition at line 78 of file atom_feii.cpp.

Referenced by FeIICollRatesBoltzmann(), and FeIICreate().

double EnerLyaProf1 [static]

Definition at line 162 of file atom_feii.cpp.

Referenced by FeIILyaPump().

double EnerLyaProf4 [static]

Definition at line 162 of file atom_feii.cpp.

Referenced by FeIILyaPump().

double** Fe2A [static]

Definition at line 137 of file atom_feii.cpp.

Referenced by FeIICreate(), and FeIILevelPops().

double * Fe2ColDen [static]

Definition at line 153 of file atom_feii.cpp.

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

realnum** Fe2Coll [static]

Definition at line 146 of file atom_feii.cpp.

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

double ** Fe2CPump [static]

Definition at line 140 of file atom_feii.cpp.

Referenced by FeIICreate(), and FeIILevelPops().

double* Fe2DepCoef [static]

Definition at line 153 of file atom_feii.cpp.

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

Definition at line 143 of file atom_feii.cpp.

Referenced by FeIICreate().

double * Fe2LevelPop [static]

Definition at line 153 of file atom_feii.cpp.

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

double** Fe2LPump [static]

Definition at line 140 of file atom_feii.cpp.

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

double** Fe2SavN [static]

Definition at line 134 of file atom_feii.cpp.

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

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 106 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 113 of file atom_feii.cpp.

Referenced by FeIIContCreate(), lines_lv1_k_zn(), SaveDo(), and SaveFeII_cont().

double * FeIIBoltzmann [static]

Definition at line 153 of file atom_feii.cpp.

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

STATIC bool lgFeIIEverCalled = false

Definition at line 695 of file atom_feii.cpp.

Referenced by AssertFeIIDep(), FeIILevelPops(), FeIIPunData(), and FeIIRadPress().

int** ncs1

Definition at line 94 of file atom_feii.cpp.

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

long int nFeIIBands

this is the number of bands read in from FeII_bands.ini

Definition at line 116 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 119 of file atom_feii.cpp.

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

long int* nnPradDat [static]

Definition at line 124 of file atom_feii.cpp.

Referenced by FeIICollRatesBoltzmann(), and FeIICreate().

double PhotOccNumLyaCenter [static]

Definition at line 162 of file atom_feii.cpp.

Referenced by FeIILyaPump().

realnum*** sPradDat [static]

Definition at line 129 of file atom_feii.cpp.

Referenced by FeIICollRatesBoltzmann(), and FeIICreate().

double ** xMatrix [static]

Definition at line 167 of file atom_feii.cpp.

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

double* yVector [static]

Definition at line 167 of file atom_feii.cpp.

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

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 15 Nov 2012 for cloudy by  doxygen 1.6.1