Cloudy
Spectral Synthesis Code for Astrophysics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
save.h File Reference
#include "energy.h"
#include "lines.h"
#include "prt.h"
Include dependency graph for save.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SaveParams
 
class  adjPseudoCont
 
class  save_img_matrix
 
struct  t_save
 

Functions

void SaveDo (const char *chTime)
 
double PrtLogLin (double value)
 
void Save1Line (const TransitionProxy &t, FILE *io, realnum xLimit, long index, realnum DopplerWidth)
 
NORETURN void SaveLineData (FILE *io)
 
void save_opacity (FILE *io, long int np)
 
void SaveSpecial (FILE *io, const char *chTime)
 
void SaveAllSpeciesLabelsLevels (FILE *ioPUN)
 
void SaveSpecies (FILE *ioPUN, long int ipPun)
 
void SaveSpeciesPseudoCont (const long ipPun, const string &speciesLabel)
 
void SaveSpeciesBands (const long ipPun, const string &speciesLabel, const string &fileBands, const bool lgEmergent)
 
void SaveSpeciesOptDep (const long int ipPun, const string &speciesLabel)
 
void mole_save (FILE *punit, const char speciesname[], const char args[], bool lgHeader, bool lgData, bool lgCoef, double depth)
 
void mole_dominant_rates (const vector< const molecule * > &debug_list, FILE *ioOut, bool lgPrintReagents, size_t NPRINT, double fprint)
 
void mole_print_species_reactions (molecule *speciesToPrint)
 
void PrintLineDataHeader (FILE *ioPUN)
 
void Save1LineData (const TransitionProxy &t, FILE *io, bool lgCS_2)
 
void save_line (FILE *ip, const char *chDo, bool lgEmergent, long ipPun)
 
void save_average (long int ipPun)
 
void Save_Line_RT (FILE *ip)
 
void saveFITSfile (FILE *io, int option, realnum Elo=0.f, realnum Ehi=0.f, realnum Enorm=0.f)
 
void saveFITSimg (FILE *io, const string &extName, const string &units, const long nPixels, const multi_arr< double, 2, C_TYPE > &image)
 
void saveFITSimg (FILE *io, const string &extName, const string &units, const long nCols, const valarray< double > &vec)
 
void SaveHeat (FILE *io)
 
void CoolSave (FILE *io, const char chJob[])
 
void SaveGrid (FILE *pnunit, exit_type status)
 

Variables

static const long LIMPUN = 100L
 
static const long VERSION_TRNCON = 20190210L
 
t_save save
 

Function Documentation

void mole_dominant_rates ( const vector< const molecule * > &  debug_list,
FILE *  ioOut,
bool  lgPrintReagents,
size_t  NPRINT,
double  fprint 
)
void mole_save ( FILE *  punit,
const char  speciesname[],
const char  args[],
bool  lgHeader,
bool  lgData,
bool  lgCoef,
double  depth 
)
void PrintLineDataHeader ( FILE *  ioPUN)

References fprintf().

Referenced by SaveLineData().

Here is the call graph for this function:

double PrtLogLin ( double  value)

SAVE command has option LOG to print log quantities as in <= C13

References ipPun, t_save::lgPrtOldStyleLogs, save, and SDIV().

Referenced by save_average(), and SaveDo().

Here is the call graph for this function:

void Save1Line ( const TransitionProxy t,
FILE *  io,
realnum  xLimit,
long  index,
realnum  DopplerWidth 
)
void Save1LineData ( const TransitionProxy t,
FILE *  io,
bool  lgCS_2 
)

Save1LineData data for save one line

Parameters
t
io
lgCS_2this flag says whether collision strength should be saveed - should be false for multi level atoms since sums are not done properly
Todo:
1 define lifetime and collision rate for multi-level species so that the critical density is derived correctly in this routine. For now the flag lgCS_2 being true means to save critical den and is only true for two-level systems all places where this routine is called with lgCS_2 false need to be fixed

References AnuUnit(), EmissionProxy::Aul(), t_save::chConSavEnr, chIonLbl(), CollisionProxy::col_str(), TransitionProxy::Coll(), EmissionProxy::damp(), DEBUG_ENTRY, TransitionProxy::Emis(), TransitionProxy::EnergyRyd(), fprintf(), EmissionProxy::gf(), TransitionProxy::Hi(), t_save::ipConPun, TransitionProxy::ipCont(), TransitionProxy::Lo(), phycon, PrintEfmt, prt_wl(), save, t_phycon::sqrte, and TransitionProxy::WLAng().

Referenced by diatomics::H2_Punch_line_data(), and SaveLineData().

Here is the call graph for this function:

void save_average ( long int  ipPun)

save_average parse save average command, or actually do the save output

Parameters
ipPun- array index for file for final save output

References cdColm(), cdEXIT, cdIonFrac(), cdTemp(), t_save::chAverageType, t_save::chSaveSpecies, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, SaveParams::ipPnunit, ipPun, t_save::nAverage2ndPar, t_save::nAverageIonList, t_save::nAverageList, t_save::params, PrtLogLin(), save, and TotalInsanity().

Referenced by SaveDo().

Here is the call graph for this function:

void save_line ( FILE *  ip,
const char *  chDo,
bool  lgEmergent,
long  ipPun 
)

save_line do the save output

Parameters
ipthe file we will write to
chDo
lgEmergentintrinsic or emergent emission
ipPun

References TransitionProxy::associated(), cdEmis_ip(), cdEXIT, cdLine_ip(), DEBUG_ENTRY, t_radius::depth_mid_zone, TransitionProxy::Emis(), EXIT_FAILURE, t_LineSave::findline(), fprintf(), h2, ioQQQ, ipLine, ipPun, diatomics::lgEnabled, lineids, linelist, t_LineSave::lines, LineSave, nzone, prt_line_err(), radius, and EmissionProxy::TauIn().

Referenced by SaveDo().

Here is the call graph for this function:

void SaveAllSpeciesLabelsLevels ( FILE *  ioPUN)

SaveAllSpeciesLabelsLevels – generate output of all species labels & levels

Parameters
ioPUNio unit for save
void SaveDo ( const char *  chTime)

SaveDo produce save output during calculation

Parameters
chTimechTime is null terminated 4 char string, either "MIDL" or "LAST"

lgLastOnly true, print after iteration is complete, false, evey zone

References abund, Wind::AccelCont, Wind::AccelGravity, Wind::AccelLine, Wind::AccelTotalOutward, AGN_He1_CS(), AGN_Hemis(), t_opac::albedo, t_mesh::anu(), t_mesh::anu2(), AnuUnit(), ASSERT, TransitionProxy::associated(), EmissionProxy::Aul(), t_cpu_i::big_endian(), GrainVar::bin, called, cdColm(), cdExecTime(), cdEXIT, cdLine(), ChargTranPun(), t_rfield::chContLabel, t_elementnames::chElementSym, t_save::chGridDelimeter(), t_save::chHashString, CHIANTI_Upsilon(), TransitionProxy::chLabel(), t_rfield::chLineLabel, t_save::chSave, t_save::chSaveArgs, t_save::chSaveSpecies, t_Heavy::chShell, t_save::chSpeciesDominantRates, colden, t_colden::colden, TransitionProxy::Coll(), colliders, CollisionProxy::ColUL(), column(), t_rfield::comdn, t_rfield::comup, t_rfield::ConEmitLocal, t_rfield::ConEmitOut, t_rfield::ConEmitReflec, t_rfield::ConInterOut, t_rfield::ConRefIncid, t_rfield::ConSourceFcnLocal, conv, t_radius::Conv2PrtInten, t_dynamics::Cool(), CoolSave(), cpu, t_secondaries::csupra, CT_GRN_GRA, CT_GRN_SIL, CT_GRN_TOT, CT_INCI, CT_OUTW_DIFF, CT_OUTW_INCI, CT_OUTW_LIN, CT_REFL_DIFF, CT_REFL_INCI, CT_REFL_LIN, t_thermal::ctot, EmissionProxy::damp(), dBaseSpecies, dBaseTrans, t_thermal::dCooldT, DEBUG_ENTRY, molezone::den, dense, density(), t_radius::depth, t_radius::depth_mid_zone, t_rfield::DiffuseLineEmission, DoppVel, t_radius::drad, t_radius::drad_x_fillfac, GrainVar::dstab, GrainVar::dstsc, Wind::dvdr, dynamics, DynaPunchTimeDep(), DynaSave(), t_dense::eden, t_dense::EdenHCorr, t_dense::EdenTrue, t_mesh::egamry(), t_yield::elec_eject_frac(), elementnames, TransitionProxy::Emis(), TransitionList::Emis(), t_save::emisfreq, t_mesh::emm(), energy(), t_phycon::EnergyBinding, t_phycon::EnergyExcitation, t_phycon::EnergyIonization, t_magnetic::EnthalpyDensity, t_phycon::EnthalpyDensity, EXIT_FAILURE, EXIT_SUCCESS, exp10(), t_rfield::extin_mag_V_extended, t_rfield::extin_mag_V_point, t_iso_sp::fb, t_geometry::FillFac, t_LineSave::findline(), t_mole_local::findrk(), findspecies(), findspecieslocal(), FindStrongestLineLabels(), t_rfield::fine_anu, t_rfield::fine_lstack, t_rfield::fine_opac_zone, t_rfield::fine_opt_depth, t_rfield::flux, t_rfield::flux_total_incident, flxCell(), Wind::fmul, fp_equal(), fprintf(), GammaPrt(), t_dense::gas_phase, GrainVar::GasCoolColl, geometry, t_rfield::getCoarseTransCoef(), t_conv::getCounterName(), t_conv::getCounterZone(), t_ADfA::getEthresh(), t_mesh::getResolutionScaleFactor(), grid, gv, t_colden::H0_21cm_lower, t_colden::H0_21cm_upper, t_colden::H0_ov_Tspin, h2, t_hmi::H2_photodissoc_used_H2g, diatomics::H2_PunchDo(), t_hmi::H2_Solomon_dissoc_rate_used_H2g, t_hmi::H2_total, hcmap, t_dynamics::Heat(), t_hmi::HeatH2Dexc_used, t_hmi::HeatH2Dish_used, t_thermal::heating(), Heavy, HFLines, TransitionProxy::Hi(), t_conv::hist_pres_current, t_conv::hist_pres_density, t_conv::hist_pres_error, t_conv::hist_temp_cool, t_conv::hist_temp_heat, t_conv::hist_temp_temp, hmi, t_thermal::htot, hyperfine, t_cpu::i(), molecule::index, Singleton< t_ADfA >::Inst(), Singleton< t_yield >::Inst(), t_pressure::IntegRhoGravity, ion_recombAGN(), ionbal, ioQQQ, ipALUMINIUM, ipCARBON, ipCOL_elec, ipCOL_HTOT, t_save::ipConPun, TransitionProxy::ipCont(), ipELECTRON, t_opac::ipElement, t_save::ipEmisFreq, ipFineCont(), t_rfield::ipFineConVelShift, ipH1s, ipH2p, ipH2s, ipH_LIKE, ipHe1s1S, ipHe2p1P, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHe2s3S, ipHE_LIKE, ipHELIUM, ipHYDROGEN, ipIRON, ipMAGNESIUM, t_rfield::ipMaxBolt, ipoint(), ipOXYGEN, SaveParams::ipPnunit, ipPun, ipRecEsc, ipRecNetEsc, ipRecRad, ipSILICON, ipSODIUM, ipSULPHUR, t_rfield::ipV_filter, is_odd(), iso_Max_Emitting_Level(), iso_RRCoef_Te(), iso_sp, iteration, iterations, t_save::lg_separate_iterations, lgCheckMonitors(), t_conv::lgConvPres, t_conv::lgConvTemp, t_save::lgCumulative, t_dense::lgElmtOn, t_save::lgEmergent, diatomics::lgEnabled, t_save::lgFITS, t_save::lgFLUSH, t_grid::lgGrid, t_save::lgHashEndIter, t_iterations::lgLastIt, t_save::lgLineListRatio, t_save::lgLinEvery, t_hcmap::lgMapBeingDone, t_hcmap::lgMapDone, t_cpu_i::lgMPI_talk(), lgMustPrintHeader, t_grid::lgOutputTypeOn, t_prt::lgPrnIsoCollapsed, t_save::lgPrtIsotropicCont, t_save::lgPunLstIter, t_radius::lgRadiusKnown, t_save::lgRealSave, t_save::lgSaveEveryZone, t_save::lgSaveHeader(), t_geometry::lgSphere, t_geometry::lgStatic, t_dynamics::lgStatic_completed, t_called::lgTalk, t_dynamics::lgTimeDependentStatic, t_DoppVel::lgTurb_pressure, LIMELM, t_rfield::line_count, t_save::LineList, t_LineSave::lines, LineSave, t_save::LinEvery, t_mole_global::list, TransitionProxy::Lo(), magnetic, map_do(), t_hcmap::MapZone, matchGeneric(), MAX2, mean, t_mesh::mesh_md5sum(), MIN2, mole, mole_dominant_rates(), mole_global, mole_save(), NCHLAB, t_iso_sp::nCollapsed_max, t_save::ncSaveSkip, t_yield::nelec_eject(), t_rfield::nfine, t_rfield::nflux, t_rfield::nflux_with_check, t_save::nLineList, t_optimize::nOptimiz, t_conv::nPres2Ioniz, t_save::nsave, t_save::nSaveEveryZone, nSpecies, t_Heavy::nsShells, t_LineSave::nsum, t_conv::ntypes(), null_mole, t_mole_global::num_calc, NUM_OUTPUT_TYPES, t_iso_sp::numLevels_local, t_iso_sp::numLevels_max, nzone, t_rfield::OccNumbIncidCont, OccupationNumberLine(), opac, t_opac::opacity_abs, t_opac::opacity_sct, optimize, t_save::optname, t_rfield::otscon, t_rfield::otslin, t_rfield::outlin, t_rfield::outlin_noplot, t_save::params, t_dense::pden, EmissionProxy::Pdest(), EmissionProxy::Pesc(), t_ionbal::PhotoRate_Shell, phycon, t_radius::PI4_Radius_sq, t_pressure::pinzon, t_pressure::pinzon_PresIntegElecThin, plankf(), EmissionProxy::Ploss(), POW2, t_pressure::pres_radiation_lines_curr, t_pressure::PresGasCurr, t_pressure::PresInteg, t_pressure::PresIntegElecThin, t_pressure::PresRamCurr, pressure, t_magnetic::pressure, t_pressure::PresTotlCurr, t_pressure::PresTotlError, t_pressure::PresTotlInit, t_pressure::PresTurbCurr, prt, prt_line_inlist(), prt_LineLabels(), prt_wl(), PrtLinePres(), PrtLogLin(), PrtMeanIon(), EmissionProxy::pump(), t_save::punarg, radius, t_radius::Radius, t_radius::Radius_mid_zone, t_iso_sp::RadRec_caseB, t_dynamics::Rate, GrainVar::rate_h2_form_grains_used_total, t_ionbal::RateIonizTot(), t_ionbal::RateRecomTot, t_rfield::reflin, t_save::Resolution, rfield, Energy::Ryd(), safe_div(), save, save_average(), save_line(), Save_Line_RT(), save_opacity(), saveFITSfile(), SaveGaunts(), t_save::SaveHeaderDone(), SaveHeat(), SaveLineData(), SaveLineIntensity(), SaveLineStuff(), SaveResults(), SaveSpecial(), SaveSpecies(), SaveSpeciesBands(), SaveSpeciesOptDep(), SaveSpeciesPseudoCont(), SDIV(), secondaries, sexp(), ShowMe(), SMALLFLOAT, t_timesc::sound_speed_adiabatic, t_dynamics::Source, t_mole_local::species, t_save::SpeciesBandFile, sprt_wl(), t_iso_sp::st, struc, t_opac::TauAbsFace, t_opac::TauAbsGeo, EmissionProxy::TauCon(), EmissionProxy::TauIn(), EmissionProxy::TauInSpecific(), t_opac::TauScatFace, EmissionProxy::TauTot(), t_phycon::te, t_phycon::te03, t_phycon::te10, t_phycon::te70, t_phycon::TeInit, TempChange(), t_phycon::TeProp, t_struc::testr, TexcLine(), thermal, t_dynamics::time_elapsed, t_timesc::time_H2_Dest_here, timesc, TorF(), GrainVar::TotalEden, TotalInsanity(), t_rfield::TotDiff2Pht, t_iso_sp::trans(), t_hyperfine::Tspin21cm, t_DoppVel::TurbVel, t_hmi::UV_Cont_rel2_Draine_DB96_depth, t_hmi::UV_Cont_rel2_Habing_TH85_depth, VERSION_TRNCON, t_save::whichDiatomToPrint, t_mesh::widflx(), wind, Wind::windv, TransitionProxy::WLAng(), t_secondaries::x12tot, t_dense::xIonDense, t_mean::xIonMean, and t_dense::xMassDensity.

Referenced by cloudy().

void saveFITSfile ( FILE *  io,
int  option,
realnum  Elo = 0.f,
realnum  Ehi = 0.f,
realnum  Enorm = 0.f 
)
void saveFITSimg ( FILE *  io,
const string &  extName,
const string &  units,
const long  nPixels,
const multi_arr< double, 2, C_TYPE > &  image 
)

Save rate matrix to a FITS file. Mainly a debugging aid.

Parameters
io[in] the file we will write to
extName[in] extension name
units[in] vector units
nPixels[in] dimension of (square) image
image[in] image to write in FITS extension

References DEBUG_ENTRY, get_data_minmax(), ioFITS_OUTPUT, punchFITSimg_ExtensionData_matrix(), punchFITSimg_ExtensionHeader(), and punchFITSimg_PrimaryHeader().

Referenced by save_img_matrix::addImagePop_FITS(), and save_img_matrix::createImage_FITS().

Here is the call graph for this function:

void saveFITSimg ( FILE *  io,
const string &  extName,
const string &  units,
const long  nCols,
const valarray< double > &  vec 
)

Save rate matrix to a FITS file. Mainly a debugging aid.

Parameters
io[in] the file we will write to
extName[in] extension name
units[in] vector units
nCols[in] length of vector
vector[in] vector to write in FITS extension

References DEBUG_ENTRY, get_data_minmax(), ioFITS_OUTPUT, punchFITSimg_ExtensionData_vector(), and punchFITSimg_ExtensionHeader().

Here is the call graph for this function:

void SaveGrid ( FILE *  pnunit,
exit_type  status 
)

SaveGrid implements the SAVE GRID command

Parameters
pnunit: file descriptor to write to
status: exit status of the grid point

References t_cpu_i::chExitStatus(), t_save::chFileName, t_optimize::chVarFmt, cpu, DEBUG_ENTRY, ES_SUCCESS, ES_WARNINGS, fprintf(), grid, GridPointPrefix(), t_cpu::i(), t_grid::interpParameters, t_save::ipSaveGrid, t_warnings::lgWarngs, t_grid::nintparm, t_optimize::nOptimiz, t_cpu_i::nRANK(), NULL, open_data(), optimize, save, t_grid::seqNum, TorF(), and warnings.

Referenced by cdPrepareExit().

Here is the call graph for this function:

void SaveSpecial ( FILE *  io,
const char *  chTime 
)
void SaveSpecies ( FILE *  ioPUN,
long int  ipPun 
)
void SaveSpeciesBands ( const long  ipPun,
const string &  speciesLabel,
const string &  fileBands,
const bool  lgEmergent 
)

SaveSpeciesBands - save species bands emission

Parameters
ipPun[in] save file index
speciesLabel[in] species emission to be stored
fileBands[in] file that holds the bands' definitions
lgEmergent[in] report emergent emission; intrinsic by default

References ASSERT, cdEXIT, t_radius::Conv2PrtInten, DEBUG_ENTRY, EXIT_FAILURE, t_LineSave::findline(), findSpecBand(), fprintf(), ioQQQ, SaveParams::ipPnunit, t_save::lgSaveHeader(), t_LineSave::lines, LineSave, t_save::params, radius, save, t_save::SaveHeaderDone(), and SpecBands.

Referenced by SaveDo().

Here is the call graph for this function:

void SaveSpeciesOptDep ( const long int  ipPun,
const string &  speciesLabel 
)

SaveSpeciesOptDep – generate output for 'save species optical depth'

Parameters
ipPunarray index in save array
speciesLabellabel to acquire species

References DEBUG_ENTRY, fprintf(), getSpeciesGeneric(), ioQQQ, SaveParams::ipPnunit, iterations, genericState::label(), t_iterations::lgLastIt, t_save::lgSaveHeader(), molezone::lines, NULL, t_save::params, save, t_save::SaveHeaderDone(), and genericState::sp.

Referenced by SaveDo().

Here is the call graph for this function:

void SaveSpeciesPseudoCont ( const long  ipPun,
const string &  speciesLabel 
)

SaveSpeciesPseudoCont - save species pseudo-continuum

Parameters
ipPunsave file index
speciesLabelspecies emission to be stored

References cdEXIT, t_save::chSaveArgs, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), getIntenTypeStr(), getPseudoIndex(), INWARD, ioQQQ, SaveParams::ipPnunit, t_save::lgSaveHeader(), OUTWARD, t_save::params, PseudoCont, t_save::punarg, resolveSpecType(), save, t_save::SaveHeaderDone(), TOTAL, and TotalInsanity().

Referenced by SaveDo().

Here is the call graph for this function:

Variable Documentation

const long LIMPUN = 100L
static
const long VERSION_TRNCON = 20190210L
static

magic version number for the transmitted continuum output file

Referenced by ReadTable(), and SaveDo().