Cloudy
Spectral Synthesis Code for Astrophysics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
species.cpp File Reference
#include "cddefines.h"
#include "species.h"
#include "taulines.h"
#include "input.h"
#include "dense.h"
#include "atmdat.h"
#include "elementnames.h"
#include "version.h"
#include "save.h"
#include "mole.h"
#include "service.h"
#include "parser.h"
#include "parse_species.h"
#include "prt.h"
#include "warnings.h"
Include dependency graph for species.cpp:

Functions

STATIC void states_popfill (void)
 
STATIC void states_nelemfill (void)
 
STATIC void database_prep (int)
 
STATIC void trim_levels (long)
 
STATIC void set_fractionation (species *sp)
 
STATIC void states_propprint (void)
 
void db_basename_to_spectral (const string &chBasename, string &chElement, char *chSpecLabel)
 
void database_readin (void)
 
void parsespect (const char *chLabel, long &nelem, long &IonStg)
 
bool isAtomicIonValid (const long element_index, const long spCharge)
 
bool isBareNucleus (const long element_index, const long spCharge)
 
string makeChemical (long nelem, long ion)
 
void makeChemical (char *chLabelChemical, long nelem, long ion)
 
STATIC void spectral_to_chemical (char *chLabelChemical, const char *chLabel, long &nelem, long &IonStg)
 
void spectral_to_chemical (char *chLabelChemical, const char *chLabel)
 
void spectral_to_chemical (string &chemicalLabel, const char *chLabel)
 
bool parse_chemical (const string &chLabelChem, string &chElemMol, long &spCharge)
 
void chemical_to_spectral (const string &chLabelChem, string &chLabelSpec)
 
bool isSpeciesActive (const string &chLabelChem)
 

Variables

static const bool DEBUGSTATE = false
 

Function Documentation

void chemical_to_spectral ( const string &  chLabelChem,
string &  chLabelSpec 
)

chemical_to_spectral - Convert a chemical label to spectral.

Parameters
chLabelChem[in]Chemical label, e.g., "C+"
chLabelSpec[out]Spectral label, e.g., "C 2"

References DEBUG_ENTRY, elem_symbol_to_index(), isAtomicIonValid(), isBareNucleus(), isElementSym(), and parse_chemical().

Referenced by SaveAllSpeciesLabelsLevels(), SaveSpeciesLines(), and band_emission::setup().

Here is the call graph for this function:

STATIC void database_prep ( int  intSpIndex)
void db_basename_to_spectral ( const string &  chBasename,
string &  chElement,
char *  chSpecLabel 
)

db_basename_to_spectral - Convert the species basename in Stout or Chianti to a spectral label.

Parameters
chBasename[in]File basename, e.g., "c_2"
chElement[out]Extracted element name, e.g., "C"
chSpecLabel[out]Spectral label, e.g., "C 2"

References ASSERT, DEBUG_ENTRY, toupper(), and uncaps().

Referenced by database_readin().

Here is the call graph for this function:

bool isAtomicIonValid ( const long  element_index,
const long  spCharge 
)

isAtomicIonValid - Tell if an atomic ion is has a charge consistent with its atomic number.

Parameters
element_index[in]Zero-offset index for element; 0 for H, 29 for Zn
spCharge[in]Species charge
Returns
bool True, if ion is valid; false, otherwise.

References ASSERT, and DEBUG_ENTRY.

Referenced by cdTemp(), and chemical_to_spectral().

bool isBareNucleus ( const long  element_index,
const long  spCharge 
)

isBareNucleus - Tell if the given ion is a bare nucleus.

Parameters
element_index[in]Zero-offset index for element; 0 for H, 29 for Zn
spCharge[in]Species charge
Returns
bool True, if ion is bare nucleus; false, otherwise.

References ASSERT, and DEBUG_ENTRY.

Referenced by chemical_to_spectral().

bool isSpeciesActive ( const string &  chSpecLabel)

isSpeciesActive - Tell if the species is enabled

An atomic/ionic species may be inactive if the relevant element is disabled. Likewise, a molecular species may be inactive if one of its constituents elements is disabled. This function reports on the given species. If not found, the result is false.

Parameters
chLabelChem[in] Chemical label, e.g., "C+2", or "HCl"
Returns
bool True, if species active; false, otherwise.

References DEBUG_ENTRY, t_mole_global::list, mole, mole_global, NULL, and t_mole_local::species.

Referenced by SpeciesBandsCreate().

void makeChemical ( char *  chLabelChemical,
long  nelem,
long  ion 
)

References CHARS_SPECIES, DEBUG_ENTRY, and makeChemical().

Here is the call graph for this function:

bool parse_chemical ( const string &  chLabelChem,
string &  chElemMol,
long &  spCharge 
)

parse_chemical - Parse the element and charge of a chemical label.

Parameters
chLabelChem[in]Chemical label, e.g., "C+2", or "HCl"
chElemMol[out]Element or molecule, e.g., "C", or "HCl"
spCharge[out]Species charge, e.g., 2, or 0
Returns
bool True, if successful; false, otherwise.

References DEBUG_ENTRY, fprintf(), and ioQQQ.

Referenced by cdTemp(), and chemical_to_spectral().

Here is the call graph for this function:

void parsespect ( const char *  chLabel,
long &  nelem,
long &  IonStg 
)
STATIC void set_fractionation ( species sp)
STATIC void spectral_to_chemical ( char *  chLabelChemical,
const char *  chLabel,
long &  nelem,
long &  IonStg 
)
void spectral_to_chemical ( char *  chLabelSpec,
const char *  chLabelChem 
)

spectral_to_chemical - Convert a spectral label to chemical.

Parameters
chLabelSpec[in]Spectral label, e.g., "C 2"
chLabelChem[out]Chemical label, e.g., "C+"

References DEBUG_ENTRY, and spectral_to_chemical().

Here is the call graph for this function:

void spectral_to_chemical ( string &  chLabelSpec,
const char *  chLabelChem 
)

spectral_to_chemical - Convert a spectral label to chemical.

Parameters
chLabelSpec[in]Spectral label, e.g., "C 2"
chLabelChem[out]Chemical label, e.g., "C+"

References DEBUG_ENTRY, NCHLAB, and spectral_to_chemical().

Here is the call graph for this function:

STATIC void states_popfill ( void  )

References dBaseSpecies, dBaseStates, DEBUG_ENTRY, and nSpecies.

Referenced by database_readin().

STATIC void states_propprint ( void  )

References dBaseSpecies, dBaseStates, DEBUG_ENTRY, energy(), and nSpecies.

Referenced by database_readin().

Here is the call graph for this function:

STATIC void trim_levels ( long  ipSpecies)

trim_levels: Trim the highest energy levels until there is a transition out of the highest level with an Aul value that is not the default. The default value of 1e-30 is used when no Aul is given in the database.

References atmdat, t_atmdat::aulThreshold, cdEXIT, dBaseSpecies, dBaseStates, dBaseTrans, DEBUG_ENTRY, DEBUGSTATE, EXIT_FAILURE, fprintf(), ioQQQ, ipdBaseTrans, t_atmdat::lgChiantiPrint, t_atmdat::lgLamdaPrint, and t_atmdat::lgStoutPrint.

Referenced by database_readin().

Here is the call graph for this function:

Variable Documentation

const bool DEBUGSTATE = false
static

Referenced by database_readin(), and trim_levels().