#include "cddefines.h"
#include "cddrive.h"
#include "struc.h"
#include "input.h"
#include "colden.h"
#include "radius.h"
#include "thirdparty.h"
#include "stopcalc.h"
#include "hextra.h"
#include "rfield.h"
#include "iterations.h"
#include "trace.h"
#include "conv.h"
#include "timesc.h"
#include "dense.h"
#include "mole.h"
#include "thermal.h"
#include "pressure.h"
#include "phycon.h"
#include "wind.h"
#include "hmi.h"
#include "iso.h"
#include "dynamics.h"
#include "cosmology.h"
#include "taulines.h"
#include "parser.h"
Go to the source code of this file.
Defines | |
#define | NTIME 200 |
#define | MERGE 0 |
Functions | |
STATIC void | DynaNewStep (void) |
STATIC void | DynaSaveLast (void) |
STATIC double | timestep_next (void) |
void | DynaIonize (void) |
void | DynaStartZone (void) |
void | DynaEndZone (void) |
void | DynaIterEnd (void) |
realnum | DynaFlux (double depth) |
void | DynaZero (void) |
void | DynaCreateArrays (void) |
STATIC void | advection_set_default (bool lgWind) |
void | ParseDynaTime (Parser &p) |
void | ParseDynaWind (Parser &p) |
void | DynaPrtZone (void) |
void | DynaPunchTimeDep (FILE *ipPnunit, const char *chJob) |
void | DynaSave (FILE *ipPnunit, char chJob) |
void | DynaIterStart (void) |
Variables | |
t_dynamics | dynamics |
static int | ipUpstream = -1 |
static int | iphUpstream = -1 |
static int | ipyUpstream = -1 |
static double ** | UpstreamIon |
static double *** | UpstreamStatesElem |
static double * | UpstreamElem |
static double * | Upstream_molecules |
static double * | time_elapsed_time |
static double * | time_flux_ratio |
static double * | time_dt |
static double * | time_dt_scale_factor |
bool | lgtime_dt_specified |
int * | lgtime_Recom |
static long int | nTime_flux = 0 |
static double | Dyn_dr |
static double | AdvecSpecificEnthalpy |
static realnum * | Old_histr |
static realnum * | Old_xLyman_depth |
static realnum * | Old_depth |
static realnum * | Old_hiistr |
static realnum * | Old_pressure |
static realnum * | Old_density |
static realnum * | Old_DenMass |
static realnum * | EnthalpyDensity |
static realnum * | Old_ednstr |
static realnum * | Old_EnthalpyDensity |
static realnum ** | Old_molecules |
static realnum *** | Old_xIonDense |
static realnum ** | Old_gas_phase |
static realnum **** | Old_StatesElem |
static long int | nOld_zone |
#define MERGE 0 |
Definition at line 2167 of file dynamics.cpp.
Referenced by t_dynamics::Cool(), and t_dynamics::Heat().
#define NTIME 200 |
Definition at line 78 of file dynamics.cpp.
Referenced by ParseDynaTime().
STATIC void advection_set_default | ( | bool | lgWind | ) |
Definition at line 1604 of file dynamics.cpp.
References conv, cosmology, DEBUG_ENTRY, t_conv::EdenErrorAllowed, t_conv::HeatCoolRelErrorAllowed, t_dynamics::lgAdvection, t_cosmology::lgDo, t_thermal::lgPredNextTe, t_pressure::lgPres_magnetic_ON, t_pressure::lgPres_radiation_ON, t_pressure::lgPres_ram_ON, pressure, t_conv::PressureErrorAllowed, and thermal.
Referenced by ParseDynaTime(), and ParseDynaWind().
void DynaCreateArrays | ( | void | ) |
DynaCreateArrays allocate some space needed to save the dynamics structure variables, called from atmdat_readin
Definition at line 1395 of file dynamics.cpp.
References DEBUG_ENTRY, dense, EnthalpyDensity, fixit(), ipH_LIKE, ipHYDROGEN, iso_sp, t_dense::lgElmtOn, LIMELM, MALLOC, mole_global, t_dynamics::molecules, NISO, t_mole_global::num_calc, t_iso_sp::numLevels_max, t_struc::nzlim, Old_DenMass, Old_density, Old_depth, Old_ednstr, Old_EnthalpyDensity, Old_gas_phase, Old_hiistr, Old_histr, Old_molecules, Old_pressure, Old_StatesElem, Old_xIonDense, Old_xLyman_depth, t_dynamics::oldFullDepth, t_dynamics::Rate, t_dynamics::Source, t_dynamics::StatesElem, struc, Upstream_molecules, UpstreamElem, UpstreamIon, and UpstreamStatesElem.
Referenced by atmdat_readin().
void DynaEndZone | ( | void | ) |
DynaEndZone called at end of iteration when advection is turned on
Definition at line 853 of file dynamics.cpp.
References DEBUG_ENTRY, t_radius::depth, t_dynamics::DivergePresInteg, t_radius::drad, DynaFlux(), ioQQQ, t_dynamics::lgTracePrint, radius, wind, and Wind::windv.
Referenced by ZoneEnd().
realnum DynaFlux | ( | double | depth | ) |
Definition at line 1287 of file dynamics.cpp.
References DEBUG_ENTRY, dense, t_dynamics::FluxCenter, t_dynamics::FluxIndex, t_dynamics::FluxScale, t_dynamics::lgFluxDScale, pow(), and t_dense::xMassDensity0.
Referenced by DynaEndZone(), PresTotCurrent(), and stepDensity().
void DynaIonize | ( | void | ) |
DynaIonize, called from ionize to evaluate advective terms for current conditions
Definition at line 186 of file dynamics.cpp.
References AdvecSpecificEnthalpy, ASSERT, t_dynamics::Cool_r, DEBUG_ENTRY, dense, t_radius::depth, t_dynamics::dHeatdT, Dyn_dr, t_phycon::EnthalpyDensity, EnthalpyDensity, t_dense::gas_phase, t_dynamics::Heat_v, t_thermal::htot, t_dense::IonHigh, t_dense::IonLow, ioQQQ, ipCARBON, ipH_LIKE, ipHYDROGEN, ipUpstream, iso_sp, iteration, t_dynamics::lgCoolHeat, t_dense::lgElmtOn, t_dynamics::lgTimeDependentStatic, t_dynamics::lgTracePrint, LIMELM, mole_global, t_dynamics::molecules, t_dynamics::n_initial_relax, NISO, t_mole_global::num_calc, t_iso_sp::numLevels_local, t_struc::nzlim, nzone, Old_depth, Old_xIonDense, t_dynamics::oldFullDepth, phycon, POW2, t_pressure::PresGasCurr, pressure, radius, t_dynamics::Rate, scalingDensity(), t_dynamics::Source, t_dynamics::StatesElem, struc, t_phycon::te, thermal, t_dynamics::timestep, Upstream_molecules, UpstreamElem, UpstreamIon, UpstreamStatesElem, wind, Wind::windv, t_dense::xIonDense, and t_dense::xMassDensity.
Referenced by ConvBase().
void DynaIterEnd | ( | void | ) |
routine called at end of iteration when advection is turned on
Definition at line 874 of file dynamics.cpp.
References t_dynamics::AdvecLengthInit, ASSERT, t_thermal::ConstTemp, t_dynamics::Cool(), cosmology, t_thermal::ctot, DEBUG_ENTRY, t_radius::depth, t_dynamics::discretization_error, t_dynamics::DivergePresInteg, t_radius::dr_max_last_iter, Dyn_dr, DynaNewStep(), DynaSaveLast(), t_dynamics::error_scale2, GetHubbleFactor(), ioQQQ, iphUpstream, ipUpstream, ipyUpstream, t_iterations::iter_malloc, iteration, iterations, t_dynamics::lg_coronal_time_init, t_cosmology::lgDo, t_dynamics::lgRecom, t_radius::lgSdrmaxRel, Wind::lgStatic(), t_dynamics::lgStatic_completed, t_thermal::lgTemperatureConstant, lgtime_dt_specified, lgtime_Recom, t_dynamics::lgTimeDependentStatic, t_dynamics::lgTracePrint, t_dynamics::n_initial_relax, nTime_flux, phycon, t_pressure::PresGasCurr, pressure, radius, t_cosmology::redshift_current, t_cosmology::redshift_step, rfield, scalingDensity(), t_radius::sdrmax, StopCalc, t_radius::StopThickness, t_phycon::te, t_StopCalc::TempHiStopIteration, t_StopCalc::TempLoStopIteration, thermal, t_rfield::time_continuum_scale, time_dt, time_dt_scale_factor, t_dynamics::time_elapsed, time_elapsed_time, t_dynamics::timestep, t_dynamics::timestep_factor, timestep_next(), t_dynamics::timestep_stop, wind, and Wind::windv0.
Referenced by IterRestart().
void DynaIterStart | ( | void | ) |
routine called at start of iteration when advection is turned on
Definition at line 2202 of file dynamics.cpp.
References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, hextra, ioQQQ, iteration, t_dynamics::lgRecom, t_rfield::lgTimeVary, t_hextra::lgTurbHeatVaryTime, linint(), t_rfield::nShape, nTime_flux, rfield, t_rfield::time_continuum_scale, t_dynamics::time_elapsed, time_elapsed_time, time_flux_ratio, t_dynamics::timestep, t_hextra::TurbHeat, and t_hextra::TurbHeatSave.
Referenced by IterStart().
STATIC void DynaNewStep | ( | void | ) |
Definition at line 1095 of file dynamics.cpp.
References ASSERT, BIGFLOAT, t_dynamics::convergence_error, t_dynamics::convergence_tolerance, DEBUG_ENTRY, dense, t_struc::depth, t_dynamics::discretization_error, Dyn_dr, t_dynamics::error_scale1, t_dynamics::error_scale2, t_struc::hden, ioQQQ, ipH_LIKE, ipHYDROGEN, iso_sp, t_dense::lgElmtOn, LIMELM, mole_global, t_struc::molecules, NISO, nOld_zone, t_mole_global::num_calc, t_iso_sp::numLevels_local, t_struc::nzlim, nzone, Old_density, Old_depth, Old_molecules, Old_StatesElem, Old_xIonDense, POW2, scalingZoneDensity(), SMALLFLOAT, t_struc::StatesElem, struc, and t_struc::xIonDense.
Referenced by DynaIterEnd().
void DynaPrtZone | ( | void | ) |
DynaPrtZone - called to print zone results
Definition at line 2004 of file dynamics.cpp.
References AdvecSpecificEnthalpy, ASSERT, t_dynamics::Cool(), t_thermal::ctot, DEBUG_ENTRY, dense, t_phycon::EnergyBinding, t_phycon::EnergyExcitation, t_phycon::EnergyIonization, EnthalpyDensity, t_dynamics::Heat(), ioQQQ, t_struc::nzlim, nzone, phycon, POW2, t_pressure::PresGasCurr, pressure, scalingDensity(), t_timesc::sound_speed_adiabatic, struc, thermal, timesc, wind, Wind::windv, and t_dense::xMassDensity.
Referenced by PrtZone().
void DynaPunchTimeDep | ( | FILE * | ipPnunit, | |
const char * | chJob | |||
) |
DynaPunchTimeDep - save info about time dependent solution
ipPnunit | ||
*chJob |
Definition at line 2034 of file dynamics.cpp.
References cdIonFrac(), cdTemp(), t_colden::colden, colden, cosmology, DEBUG_ENTRY, dense, t_dense::eden, findspecieslocal(), t_dense::gas_phase, ipCOL_HTOT, ipHYDROGEN, t_cosmology::redshift_current, rfield, scalingDensity(), SDIV(), t_rfield::time_continuum_scale, t_dynamics::time_elapsed, t_dynamics::timestep, and TotalInsanity().
Referenced by SaveDo().
void DynaSave | ( | FILE * | ipPnunit, | |
char | chJob | |||
) |
DynaSave save info related to advection
ipPnunit | ||
chJob |
Definition at line 2143 of file dynamics.cpp.
References AdvecSpecificEnthalpy, t_dynamics::Cool(), t_dynamics::dCooldT(), DEBUG_ENTRY, t_radius::depth_mid_zone, t_phycon::EnthalpyDensity, t_dynamics::Heat(), t_thermal::htot, ipHYDROGEN, phycon, radius, t_dynamics::Rate, scalingDensity(), t_dynamics::Source, thermal, and TotalInsanity().
Referenced by SaveDo().
STATIC void DynaSaveLast | ( | void | ) |
Definition at line 1227 of file dynamics.cpp.
References ASSERT, DEBUG_ENTRY, t_struc::DenMass, dense, t_struc::depth, t_struc::ednstr, EnthalpyDensity, t_dense::gas_phase, t_struc::hiistr, t_struc::histr, ipH_LIKE, ipHYDROGEN, isnan, iso_sp, t_dense::lgElmtOn, LIMELM, mole_global, t_struc::molecules, NISO, nOld_zone, t_mole_global::num_calc, t_iso_sp::numLevels_max, t_struc::nzlim, nzone, Old_DenMass, Old_density, Old_depth, Old_ednstr, Old_EnthalpyDensity, Old_gas_phase, Old_hiistr, Old_histr, Old_molecules, Old_pressure, Old_StatesElem, Old_xIonDense, Old_xLyman_depth, t_dynamics::oldFullDepth, t_struc::pressure, scalingZoneDensity(), t_struc::StatesElem, struc, t_struc::xIonDense, and t_struc::xLyman_depth.
Referenced by DynaIterEnd().
void DynaStartZone | ( | void | ) |
DynaStartZone called at start of iteration when advection is turned on
Definition at line 401 of file dynamics.cpp.
References AdvecSpecificEnthalpy, ASSERT, BIGFLOAT, DEBUG_ENTRY, dense, t_radius::depth, t_dynamics::discretization_error, t_dynamics::dRad, Dyn_dr, t_dynamics::error_scale2, fp_bound(), ioQQQ, ipH_LIKE, iphUpstream, ipHYDROGEN, ipUpstream, ipyUpstream, isnan, iso_sp, iteration, t_dense::lgElmtOn, t_dynamics::lgTracePrint, LIMELM, t_mole_global::list, MAX2, MIN2, mole, mole_global, NISO, nOld_zone, t_mole_global::num_calc, t_iso_sp::numLevels_max, nzone, Old_density, Old_depth, Old_EnthalpyDensity, Old_molecules, Old_StatesElem, Old_xIonDense, POW2, radius, t_dynamics::Rate, scalingDensity(), SMALLFLOAT, t_dynamics::Source, t_mole_local::species, t_dynamics::Upstream_density, Upstream_molecules, UpstreamElem, UpstreamIon, and UpstreamStatesElem.
Referenced by ZoneStart().
void DynaZero | ( | void | ) |
DynaZero zero some dynamics variables, called from zero.c
Definition at line 1316 of file dynamics.cpp.
References t_dynamics::AdvecLengthInit, AdvecSpecificEnthalpy, BIGFLOAT, t_dynamics::convergence_tolerance, t_dynamics::Cool_r, t_dynamics::CoolMax, DEBUG_ENTRY, t_dynamics::dHeatdT, t_dynamics::discretization_error, t_dynamics::DivergePresInteg, t_dynamics::dRad, t_dynamics::error_scale2, t_dynamics::FluxCenter, t_dynamics::FluxIndex, t_dynamics::FluxScale, t_dynamics::Heat_v, t_dynamics::HeatMax, ipH_LIKE, t_dynamics::lgAdvection, t_dynamics::lgCoolHeat, t_dynamics::lgEquilibrium, t_dynamics::lgFluxDScale, t_dynamics::lgISO, t_dynamics::lgMETALS, t_dynamics::lgRecom, t_dynamics::lgSetPresMode, t_dynamics::lgStatic_completed, t_dynamics::lgTimeDependentStatic, t_dynamics::n_initial_relax, NISO, nOld_zone, t_dynamics::Rate, t_dynamics::time_elapsed, t_dynamics::timestep_factor, and t_dynamics::timestep_init.
Referenced by zero().
void ParseDynaTime | ( | Parser & | p | ) |
ParseDynaTime parse the time command, called from ParseCommands, in dynamics.c
*chCard |
Definition at line 1649 of file dynamics.cpp.
References advection_set_default(), ASSERT, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, Parser::getline(), Parser::getNumberCheckAlwaysLog(), Parser::getNumberCheckAlwaysLogLim(), Parser::getNumberDefaultAlwaysLog(), ioQQQ, lgtime_dt_specified, lgtime_Recom, t_dynamics::lgTimeDependentStatic, t_dynamics::lgTracePrint, Parser::m_lgEOF, MALLOC, Parser::nMatch(), NTIME, nTime_flux, Wind::setStatic(), Parser::strcmp(), time_dt, time_dt_scale_factor, time_elapsed_time, time_flux_ratio, t_dynamics::timestep, t_dynamics::timestep_init, t_dynamics::timestep_stop, wind, Wind::windv, and Wind::windv0.
Referenced by ParseCommands().
void ParseDynaWind | ( | Parser & | p | ) |
Definition at line 1793 of file dynamics.cpp.
References advection_set_default(), BIGDOUBLE, cdEXIT, t_dense::chDenseLaw, Wind::comass, DEBUG_ENTRY, dense, EXIT_FAILURE, t_dynamics::FluxCenter, t_dynamics::FluxIndex, t_dynamics::FluxScale, Parser::getNumberCheck(), Parser::getNumberDefault(), Parser::getNumberPlain(), ioQQQ, t_pressure::lgContRadPresOn, Wind::lgDisk, t_dynamics::lgFluxDScale, t_dynamics::lgTracePrint, Wind::lgWindOK, Parser::nMatch(), pow(), pressure, Wind::setBallistic(), Wind::setDefault(), Wind::setStatic(), wind, Wind::windv, and Wind::windv0.
Referenced by ParseCommands().
STATIC double timestep_next | ( | void | ) |
Definition at line 134 of file dynamics.cpp.
References cdTemp(), DEBUG_ENTRY, ioQQQ, t_dynamics::lgRecom, MAX2, MIN2, SDIV(), t_dynamics::timestep, t_dynamics::timestep_init, and TotalInsanity().
Referenced by DynaIterEnd().
double AdvecSpecificEnthalpy [static] |
Definition at line 96 of file dynamics.cpp.
Referenced by DynaIonize(), DynaPrtZone(), DynaSave(), DynaStartZone(), and DynaZero().
double Dyn_dr [static] |
Definition at line 93 of file dynamics.cpp.
Referenced by DynaIonize(), DynaIterEnd(), DynaNewStep(), and DynaStartZone().
Definition at line 44 of file dynamics.cpp.
Referenced by AbundChange(), atom_levelN(), check_grid_file(), cloudy(), ConvBase(), ConvInitSolution(), ConvIterCheck(), CoolEvaluate(), CoolSave(), funjac(), HomogeneousSource(), InitDefaultsPreparse(), iso_level(), IterEnd(), IterRestart(), IterStart(), lgConserveEnergy(), lines_general(), mole_eval_dynamic_balance(), ParseCoronal(), ParseDont(), ParseSet(), pressureZone(), PresTotCurrent(), PrintRates(), PrtComment(), PrtFinal(), PrtZone(), radius_first(), radius_next(), SaveDo(), SaveHeat(), PresMode::set(), stepDensity(), zero(), ZoneEnd(), and ZoneStart().
realnum * EnthalpyDensity [static] |
Definition at line 99 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaIonize(), DynaPrtZone(), and DynaSaveLast().
int iphUpstream = -1 [static] |
Definition at line 45 of file dynamics.cpp.
Referenced by DynaIterEnd(), and DynaStartZone().
int ipUpstream = -1 [static] |
Definition at line 45 of file dynamics.cpp.
Referenced by DynaIonize(), DynaIterEnd(), and DynaStartZone().
int ipyUpstream = -1 [static] |
Definition at line 45 of file dynamics.cpp.
Referenced by DynaIterEnd(), and DynaStartZone().
bool lgtime_dt_specified |
Definition at line 76 of file dynamics.cpp.
Referenced by DynaIterEnd(), and ParseDynaTime().
int* lgtime_Recom |
Definition at line 77 of file dynamics.cpp.
Referenced by DynaIterEnd(), and ParseDynaTime().
long int nOld_zone [static] |
Definition at line 131 of file dynamics.cpp.
Referenced by DynaNewStep(), DynaSaveLast(), DynaStartZone(), and DynaZero().
long int nTime_flux = 0 [static] |
Definition at line 81 of file dynamics.cpp.
Referenced by DynaIterEnd(), DynaIterStart(), and ParseDynaTime().
realnum * Old_DenMass [static] |
Definition at line 99 of file dynamics.cpp.
Referenced by DynaCreateArrays(), and DynaSaveLast().
realnum * Old_density [static] |
Definition at line 99 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().
Definition at line 99 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaIonize(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().
realnum * Old_ednstr [static] |
Definition at line 99 of file dynamics.cpp.
Referenced by DynaCreateArrays(), and DynaSaveLast().
realnum * Old_EnthalpyDensity [static] |
Definition at line 99 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaSaveLast(), and DynaStartZone().
realnum** Old_gas_phase [static] |
Definition at line 125 of file dynamics.cpp.
Referenced by DynaCreateArrays(), and DynaSaveLast().
realnum * Old_hiistr [static] |
Definition at line 99 of file dynamics.cpp.
Referenced by DynaCreateArrays(), and DynaSaveLast().
Definition at line 99 of file dynamics.cpp.
Referenced by DynaCreateArrays(), and DynaSaveLast().
realnum** Old_molecules [static] |
Definition at line 119 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().
realnum * Old_pressure [static] |
Definition at line 99 of file dynamics.cpp.
Referenced by DynaCreateArrays(), and DynaSaveLast().
realnum**** Old_StatesElem [static] |
Definition at line 128 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().
realnum*** Old_xIonDense [static] |
Definition at line 122 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaIonize(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().
realnum * Old_xLyman_depth [static] |
Definition at line 99 of file dynamics.cpp.
Referenced by DynaCreateArrays(), and DynaSaveLast().
double * time_dt [static] |
Definition at line 72 of file dynamics.cpp.
Referenced by DynaIterEnd(), and ParseDynaTime().
double * time_dt_scale_factor [static] |
Definition at line 72 of file dynamics.cpp.
Referenced by DynaIterEnd(), and ParseDynaTime().
double* time_elapsed_time [static] |
Definition at line 72 of file dynamics.cpp.
Referenced by DynaIterEnd(), DynaIterStart(), and ParseDynaTime().
double * time_flux_ratio [static] |
Definition at line 72 of file dynamics.cpp.
Referenced by DynaIterStart(), and ParseDynaTime().
double* Upstream_molecules [static] |
Definition at line 66 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaIonize(), and DynaStartZone().
double* UpstreamElem [static] |
Definition at line 63 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaIonize(), and DynaStartZone().
double** UpstreamIon [static] |
Definition at line 60 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaIonize(), and DynaStartZone().
double*** UpstreamStatesElem [static] |
Definition at line 61 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaIonize(), and DynaStartZone().