cloudy  trunk
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions | Variables
helike_einsta.cpp File Reference
#include "cddefines.h"
#include "dense.h"
#include "trace.h"
#include "hydro_bauman.h"
#include "iso.h"
#include "helike.h"
#include "helike_einsta.h"
#include "freebound.h"
#include "lines_service.h"
#include "integrate.h"
Include dependency graph for helike_einsta.cpp:

Go to the source code of this file.

Functions

STATIC double helike_transprob_collapsed_to_collapsed (long nelem, long nHi, long nLo, double Enerwn)
 
STATIC double helike_transprob_collapsed_to_resolved (long nelem, long nHi, long nLo, long lLo, long sLo, long jLo, double Enerwn)
 
STATIC double ritoa (long li, long lf, long nelem, double k, double RI2)
 
STATIC double ForbiddenAuls (long ipHi, long ipLo, long nelem)
 
STATIC double Jint (double theta)
 
STATIC double AngerJ_mac (double vv, double zz)
 
STATIC double bessjnu (double vv, double zz)
 
STATIC double AngerJ_asymp (double vv, double zz)
 
STATIC double AngerJ (double vv, double zz)
 
STATIC double scqdri (double nstar, long int l, double npstar, long int lp, double iz)
 
double he_1trans (long nelem, double Enerwn, double Eff_nupper, long lHi, long sHi, long jHi, double Eff_nlower, long lLo, long sLo, long jLo, realnum *error1, realnum *error2)
 
void DoFSMixing (long nelem, long ipLoSing, long ipHiSing)
 
realnum helike_transprob (long nelem, long ipHi, long ipLo)
 
void HelikeTransProbSetup (void)
 

Variables

static double *** TransProbs
 
static double vJint
 
static double zJint
 

Function Documentation

STATIC double AngerJ ( double  vv,
double  zz 
)

Definition at line 127 of file helike_einsta.cpp.

References DEBUG_ENTRY, Jint(), qg32(), vJint, and zJint.

Referenced by scqdri().

Here is the call graph for this function:

STATIC double AngerJ_asymp ( double  vv,
double  zz 
)

Definition at line 108 of file helike_einsta.cpp.

References bessjnu().

Referenced by scqdri().

Here is the call graph for this function:

STATIC double AngerJ_mac ( double  vv,
double  zz 
)

Definition at line 60 of file helike_einsta.cpp.

Referenced by scqdri().

STATIC double bessjnu ( double  vv,
double  zz 
)

Definition at line 90 of file helike_einsta.cpp.

Referenced by AngerJ_asymp().

void DoFSMixing ( long  nelem,
long  ipLoSing,
long  ipHiSing 
)
Every bit of this routine is based upon the singlet-triplet mixing formalism given in

>>refer He FSM Drake, G. W. F. 1996, in Atomic, Molecular, & Optical Physics Handbook, >>refercon ed. G. W. F. Drake (New York: AIP Press). That formalism mixes the levels themselves, but since this code is not J-resolved, we simulate that by mixing only the transition probabilities. We find results comparable to those calculated in the fully J-resolved model spearheaded by Rob Bauman, and described in >>refer He FSM Bauman, R. P., Porter, R. L., Ferland, G. J., & MacAdam, K. B. 2005, ApJ, accepted

Parameters
nelem
ipLoSing
ipHiSing

Definition at line 1097 of file helike_einsta.cpp.

References TransitionProxy::AddLine2Stack(), ASSERT, EmissionProxy::Aul(), DEBUG_ENTRY, TransitionProxy::Emis(), TransitionProxy::EnergyWN(), fprintf(), TransitionProxy::Hi(), ioQQQ, ipHE_LIKE, iso_setOpacity(), iso_setRedisFun(), iso_sp, TransitionProxy::Lo(), POW2, t_iso_sp::QuantumNumbers2Index, t_iso_sp::st, and t_iso_sp::trans().

Referenced by iso_create().

Here is the call graph for this function:

STATIC double ForbiddenAuls ( long  ipHi,
long  ipLo,
long  nelem 
)
Todo:
2 find a transition probability for this 2^3P0 - 2^3P1 transition. It will require a bit of trickery to insert into the rate matrix, because of the fact that the lower level has a higher index. See discussion "Energy order within 2 3P" near the top of helike.c
Todo:
2 find a transition probability for this 2^3P1 - 2^3P2 transition. It will require a bit of trickery to insert into the rate matrix, because of the fact that the lower level has a higher index. See discussion "Energy order within 2 3P" near the top of helike.c

Definition at line 304 of file helike_einsta.cpp.

References ASSERT, DEBUG_ENTRY, eina(), TransitionProxy::EnergyWN(), fixit, ipARGON, ipHe1s1S, ipHe2p1P, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHe2s1S, ipHe2s3S, ipHe3p1P, ipHe3p3P, ipHe3s1S, ipHe3s3S, ipHE_LIKE, ipHELIUM, ipNEON, IPRAD, iso_ctrl, iso_put_error(), iso_sp, L_, MIN2, N_, POW2, pow3(), S_, t_isoCTRL::SmallA, t_iso_sp::st, TotalInsanity(), and t_iso_sp::trans().

Referenced by he_1trans().

Here is the call graph for this function:

double he_1trans ( long  nelem,
double  Enerwn,
double  Eff_nupper,
long  lHi,
long  sHi,
long  jHi,
double  Eff_nlower,
long  lLo,
long  sLo,
long  jLo,
realnum error1,
realnum error2 
)
compute energy diffference in wn and Aul for given line

return is 0 for success, 1 for failure

Parameters
nelemcharge on the C scale, 1 is helium
Enerwnenergy difference in wavenumber
Eff_nupperupper quantum numbers
Eff_nlowerlower quantum numbers
lHi
sHi
jHi
lLo
sLo
jLo
*error1
*error2

Definition at line 584 of file helike_einsta.cpp.

References ASSERT, DEBUG_ENTRY, ForbiddenAuls(), fprintf(), H_Einstein_A(), t_iso_sp::IndexIfAllResolved, ioQQQ, ipHE_LIKE, ipHELIUM, ipHYDROGEN, iso_ctrl, iso_sp, MAX2, MAX_TP_INDEX, pow3(), pow4(), powpq(), t_iso_sp::QuantumNumbers2Index, ritoa(), S, scqdri(), t_isoCTRL::SmallA, TotalInsanity(), and TransProbs.

Referenced by helike_transprob(), and helike_transprob_collapsed_to_resolved().

Here is the call graph for this function:

realnum helike_transprob ( long  nelem,
long  ipHi,
long  ipLo 
)

helike_transprob get transition probability for helium-like transition [s-1]

Parameters
nelem
ipHi
ipLo

Definition at line 1283 of file helike_einsta.cpp.

References ASSERT, DEBUG_ENTRY, TransitionProxy::EnergyWN(), he_1trans(), helike_quantum_defect(), helike_transprob_collapsed_to_collapsed(), helike_transprob_collapsed_to_resolved(), ipHE_LIKE, IPRAD, iso_put_error(), iso_sp, J_, L_, N_, S_, and t_iso_sp::trans().

Referenced by iso_create().

Here is the call graph for this function:

STATIC double helike_transprob_collapsed_to_collapsed ( long  nelem,
long  nHi,
long  nLo,
double  Enerwn 
)

Definition at line 1029 of file helike_einsta.cpp.

References ASSERT, DEBUG_ENTRY, and helike_transprob_collapsed_to_resolved().

Referenced by helike_transprob().

Here is the call graph for this function:

STATIC double helike_transprob_collapsed_to_resolved ( long  nelem,
long  nHi,
long  nLo,
long  lLo,
long  sLo,
long  jLo,
double  Enerwn 
)
void HelikeTransProbSetup ( void  )
Todo:
2 this test is out of place, where should it go?

Definition at line 1333 of file helike_einsta.cpp.

References BadRead(), cdEXIT, chLine_LENGTH, DEBUG_ENTRY, EXIT_FAILURE, FFmtRead(), fprintf(), ioQQQ, ipHe1s1S, ipHELIUM, t_trace::lgTrace, LIMELM, MALLOC, MAX_TP_INDEX, N_HE1_TRANS_PROB, open_data(), read_whole_line(), strchr_s(), trace, TRANSPROBMAGIC, and TransProbs.

Referenced by iso_create().

Here is the call graph for this function:

STATIC double Jint ( double  theta)

Definition at line 46 of file helike_einsta.cpp.

References vJint, and zJint.

Referenced by AngerJ().

STATIC double ritoa ( long  li,
long  lf,
long  nelem,
double  k,
double  RI2 
)

Definition at line 1251 of file helike_einsta.cpp.

References t_dense::AtomicWeight, DEBUG_ENTRY, dense, and max().

Referenced by he_1trans().

Here is the call graph for this function:

STATIC double scqdri ( double  nstar,
long int  l,
double  npstar,
long int  lp,
double  iz 
)

Definition at line 215 of file helike_einsta.cpp.

References AngerJ(), AngerJ_asymp(), AngerJ_mac(), ASSERT, and DEBUG_ENTRY.

Referenced by he_1trans().

Here is the call graph for this function:

Variable Documentation

double*** TransProbs
static

Definition at line 25 of file helike_einsta.cpp.

Referenced by he_1trans(), and HelikeTransProbSetup().

double vJint
static

Definition at line 43 of file helike_einsta.cpp.

Referenced by AngerJ(), and Jint().

double zJint
static

Definition at line 43 of file helike_einsta.cpp.

Referenced by AngerJ(), and Jint().