#include "cddefines.h"
#include "cddrive.h"
#include "struc.h"
#include "input.h"
#include "colden.h"
#include "radius.h"
#include "thirdparty.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 "dynamics.h"
Include dependency graph for dynamics.cpp:
Go to the source code of this file.
Defines | |
#define | DIAG_PRINT false |
#define | MAINPRINT false |
#define | NTIME 200 |
#define | SUBSONIC 1 |
#define | SUPERSONIC 2 |
#define | STRONGD 4 |
#define | ORIGINAL 5 |
#define | SHOCK 6 |
#define | ANTISHOCK 7 |
#define | ANTISHOCK2 8 |
Functions | |
STATIC void | DynaNewStep (void) |
STATIC void | DynaSaveLast (void) |
STATIC double | timestep_next (void) |
double | DynaPresChngFactor (void) |
void | DynaIonize (void) |
void | DynaStartZone (void) |
void | DynaEndZone (void) |
void | DynaEndIter (void) |
realnum | DynaFlux (double depth) |
void | DynaZero (void) |
void | DynaCreateArrays (void) |
STATIC void | advection_set_detault (bool lgWind) |
void | ParseDynaTime (char *chCard) |
void | ParseDynaWind (char *chCard) |
void | DynaPrtZone (void) |
void | DynaPunchTimeDep (FILE *ipPnunit, const char *chJob) |
void | DynaPunch (FILE *ipPnunit, char chJob) |
Variables | |
static int | ipUpstream = 0 |
static int | iphUpstream = 0 |
static int | ipyUpstream = 0 |
static double ** | UpstreamIon |
static double * | UpstreamElem |
static double * | Upstream_H2_molec |
static double * | Upstream_CO_molec |
static double | timestep_init |
static double | timestep |
static double | timestep_stop |
static double | timestep_factor |
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 |
static double | Dyn_dr |
static double | AdvecSpecificEnthalpy |
static double | Upstream_hden |
static realnum * | Old_histr |
static realnum * | Old_xLyman_depth |
static realnum * | Old_depth |
static realnum * | Old_hiistr |
static realnum * | Old_pressure |
static realnum * | Old_hden |
static realnum * | Old_DenMass |
static realnum * | EnthalpyDensity |
static realnum * | Old_ednstr |
static realnum * | Old_EnthalpyDensity |
static realnum ** | Old_H2_molec |
static realnum ** | Old_CO_molec |
static realnum *** | Old_xIonDense |
static realnum ** | Old_gas_phase |
static long int | nOld_zone |
static realnum | DivergePresInteg |
#define ANTISHOCK 7 |
#define ANTISHOCK2 8 |
#define DIAG_PRINT false |
#define MAINPRINT false |
#define NTIME 200 |
#define ORIGINAL 5 |
#define SHOCK 6 |
#define STRONGD 4 |
#define SUBSONIC 1 |
#define SUPERSONIC 2 |
STATIC void advection_set_detault | ( | bool | lgWind | ) |
Definition at line 1929 of file dynamics.cpp.
References co, conv, DEBUG_ENTRY, dynamics, t_conv::EdenErrorAllowed, t_conv::HeatCoolRelErrorAllowed, t_dynamics::lgAdvection, t_co::lgNoCOMole, t_phycon::lgPhysOK, t_thermal::lgPredNextTe, t_pressure::lgPres_magnetic_ON, t_pressure::lgPres_radiation_ON, t_pressure::lgPres_ram_ON, phycon, 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 1810 of file dynamics.cpp.
References t_dynamics::CO_molec, DEBUG_ENTRY, dynamics, EnthalpyDensity, t_dynamics::H2_molec, ipHYDROGEN, MALLOC, mole, t_mole::num_comole_calc, t_struc::nzlim, Old_CO_molec, Old_DenMass, Old_depth, Old_ednstr, Old_EnthalpyDensity, Old_gas_phase, Old_H2_molec, Old_hden, Old_hiistr, Old_histr, Old_pressure, Old_xIonDense, Old_xLyman_depth, t_dynamics::Rate, t_dynamics::Source, struc, Upstream_CO_molec, Upstream_H2_molec, UpstreamElem, and UpstreamIon.
void DynaEndIter | ( | void | ) |
routine called at end of iteration when advection is turned on
Definition at line 1256 of file dynamics.cpp.
References t_dynamics::AdvecLengthInit, DEBUG_ENTRY, t_radius::depth, DivergePresInteg, Dyn_dr, dynamics, ioQQQ, t_iterations::iter_malloc, iteration, iterations, t_dynamics::lgStatic, t_dynamics::n_initial_relax, radius, and t_radius::router.
Referenced by IterRestart().
void DynaEndZone | ( | void | ) |
DynaEndZone called at end of iteration when advection is turned on
Definition at line 1236 of file dynamics.cpp.
References DEBUG_ENTRY, t_radius::depth, DIAG_PRINT, DivergePresInteg, t_radius::drad, DynaFlux(), ioQQQ, radius, wind, and t_wind::windv.
Referenced by ZoneEnd().
Here is the call graph for this function:
realnum DynaFlux | ( | double | depth | ) |
Definition at line 1704 of file dynamics.cpp.
References DEBUG_ENTRY, dense, dynamics, t_dynamics::FluxCenter, t_dynamics::FluxIndex, t_dynamics::FluxScale, t_dynamics::lgFluxDScale, and t_dense::xMassDensity0.
Referenced by DynaEndZone(), and DynaPresChngFactor().
void DynaIonize | ( | void | ) |
DynaIonize, called from ionize to evaluate advective terms for current conditions
Definition at line 604 of file dynamics.cpp.
References AdvecSpecificEnthalpy, ASSERT, t_dynamics::CO_molec, t_dynamics::Cool, t_dynamics::dCooldT, DEBUG_ENTRY, dense, t_dynamics::dHeatdT, Dyn_dr, dynamics, EnthalpyDensity, t_phycon::EnthalpyDensity, t_dense::gas_phase, t_dynamics::H2_molec, t_dynamics::Heat, ioQQQ, ipHYDROGEN, iteration, t_dynamics::lgCoolHeat, t_dynamics::lgStatic, LIMELM, MAINPRINT, mole, N_H_MOLEC, t_dynamics::n_initial_relax, t_mole::num_comole_calc, t_struc::nzlim, nzone, phycon, POW2, t_pressure::PresGasCurr, pressure, t_dynamics::Rate, t_dynamics::Source, struc, t_phycon::te, timestep, wind, t_wind::windv, and t_dense::xMassDensity.
STATIC void DynaNewStep | ( | void | ) |
Definition at line 1533 of file dynamics.cpp.
References ASSERT, BIGFLOAT, t_struc::CO_molec, t_dynamics::convergence_error, DEBUG_ENTRY, t_struc::depth, dynamics, t_dynamics::error_scale1, t_struc::H2_molec, t_struc::hden, ipHYDROGEN, mole, nOld_zone, t_mole::num_comole_calc, t_struc::nzlim, nzone, Old_CO_molec, Old_depth, Old_H2_molec, Old_hden, Old_xIonDense, POW2, SMALLFLOAT, struc, and t_struc::xIonDense.
double DynaPresChngFactor | ( | void | ) |
DynaPresChngFactor, called from PressureChange to evaluate new density needed for current conditions and wind solution, returns ratio of new to old density, called when wind velocity is negative for D-critical solutions
Definition at line 219 of file dynamics.cpp.
References ANTISHOCK, ANTISHOCK2, ASSERT, cdEXIT, t_dynamics::chPresMode, DEBUG_ENTRY, dense, t_radius::depth, DIAG_PRINT, DivergePresInteg, DynaFlux(), dynamics, t_dense::gas_phase, ioQQQ, ipHYDROGEN, t_pressure::lgContRadPresOn, t_dynamics::lgSetPresMode, t_pressure::lgSonicPointAbortOK, t_dynamics::lgStatic, t_trace::lgTrace, MAX2, t_trace::nTrConvg, nzone, ORIGINAL, t_pressure::PresGasCurr, t_pressure::PresInteg, t_pressure::PresRamCurr, pressure, PresTotCurrent(), t_pressure::PresTotlCorrect, t_pressure::PresTotlCurr, t_pressure::PresTotlInit, radius, SHOCK, t_dynamics::ShockDepth, t_dynamics::ShockMach, sign(), SMALLFLOAT, STRONGD, SUBSONIC, SUPERSONIC, trace, wind, t_wind::windv, and t_dense::xMassDensity.
Referenced by lgConvPres().
Here is the call graph for this function:
void DynaPrtZone | ( | void | ) |
DynaPrtZone - called to print zone results
Definition at line 2306 of file dynamics.cpp.
References AdvecSpecificEnthalpy, ASSERT, t_dynamics::Cool, t_thermal::ctot, DEBUG_ENTRY, dense, dynamics, t_phycon::EnergyBinding, t_phycon::EnergyExcitation, t_phycon::EnergyIonization, EnthalpyDensity, t_dense::gas_phase, t_dynamics::Heat, ioQQQ, ipHYDROGEN, t_struc::nzlim, nzone, phycon, POW2, t_pressure::PresGasCurr, pressure, t_timesc::sound_speed_adiabatic, struc, thermal, timesc, wind, t_wind::windv, and t_dense::xMassDensity.
Referenced by PrtZone().
void DynaPunch | ( | FILE * | ipPnunit, | |
char | chJob | |||
) |
DynaPunch punch info related to advection
ipPnunit | ||
chJob |
Definition at line 2442 of file dynamics.cpp.
References AdvecSpecificEnthalpy, t_dynamics::Cool, t_dynamics::dCooldT, DEBUG_ENTRY, dense, t_radius::depth_mid_zone, dynamics, t_phycon::EnthalpyDensity, t_dense::gas_phase, t_dynamics::Heat, t_thermal::htot, ipHYDROGEN, phycon, radius, t_dynamics::Rate, t_dynamics::Source, thermal, and TotalInsanity().
Here is the call graph for this function:
void DynaPunchTimeDep | ( | FILE * | ipPnunit, | |
const char * | chJob | |||
) |
DynaPunchTimeDep - punch info about time dependent solution
ipPnunit | ||
*chJob |
Definition at line 2336 of file dynamics.cpp.
References cdIonFrac(), cdTemp(), colden, t_colden::colden, DEBUG_ENTRY, dense, dynamics, findspecies(), t_dense::gas_phase, ipCOL_HTOT, ipHYDROGEN, rfield, SDIV(), t_rfield::time_continuum_scale, t_dynamics::time_elapsed, timestep, and TotalInsanity().
Here is the call graph for this function:
STATIC void DynaSaveLast | ( | void | ) |
Definition at line 1653 of file dynamics.cpp.
References ASSERT, t_struc::CO_molec, DEBUG_ENTRY, t_struc::DenMass, dense, t_struc::depth, dynamics, t_struc::ednstr, EnthalpyDensity, t_dense::gas_phase, t_struc::H2_molec, t_struc::hden, t_struc::hiistr, t_struc::histr, ipHYDROGEN, mole, nOld_zone, t_mole::num_comole_calc, t_struc::nzlim, nzone, Old_CO_molec, Old_DenMass, Old_depth, Old_ednstr, Old_EnthalpyDensity, Old_gas_phase, Old_H2_molec, Old_hden, Old_hiistr, Old_histr, Old_pressure, Old_xIonDense, Old_xLyman_depth, t_dynamics::oldFullDepth, t_struc::pressure, struc, t_struc::xIonDense, and t_struc::xLyman_depth.
void DynaStartZone | ( | void | ) |
DynaStartZone called at start of iteration when advection is turned on
Definition at line 825 of file dynamics.cpp.
References AdvecSpecificEnthalpy, ASSERT, BIGFLOAT, COmole, DEBUG_ENTRY, t_radius::depth, Dyn_dr, hmi, ioQQQ, iphUpstream, ipHYDROGEN, ipUpstream, ipyUpstream, iteration, t_mole::lgElem_in_chemistry, MAX2, mole, molecule::nElem, nOld_zone, t_hmi::nProton, t_mole::num_comole_calc, Old_CO_molec, Old_depth, Old_EnthalpyDensity, Old_H2_molec, Old_hden, Old_xIonDense, radius, SMALLFLOAT, Upstream_CO_molec, Upstream_H2_molec, Upstream_hden, UpstreamElem, and UpstreamIon.
void DynaZero | ( | void | ) |
DynaZero zero some dynamics variables, called from zero.c
Definition at line 1733 of file dynamics.cpp.
References t_dynamics::AdvecLengthInit, AdvecSpecificEnthalpy, BIGFLOAT, t_dynamics::convergence_tolerance, t_dynamics::Cool, t_dynamics::CoolMax, t_dynamics::dCooldT, DEBUG_ENTRY, t_dynamics::dHeatdT, t_dynamics::discretization_error, DivergePresInteg, t_dynamics::dRad, dynamics, t_dynamics::error_scale2, t_dynamics::FluxCenter, t_dynamics::FluxIndex, t_dynamics::FluxScale, t_dynamics::Heat, t_dynamics::HeatMax, ipH_LIKE, t_dynamics::lgAdvection, t_dynamics::lgCoolHeat, t_dynamics::lgFluxDScale, t_dynamics::lgISO, t_dynamics::lgMETALS, t_dynamics::lgRecom, t_dynamics::lgSetPresMode, t_dynamics::lgStatic, t_dynamics::lgStatic_completed, t_dynamics::n_initial_relax, NISO, nOld_zone, t_dynamics::Rate, t_dynamics::time_elapsed, timestep_factor, and timestep_init.
void ParseDynaTime | ( | char * | chCard | ) |
ParseDynaTime parse the time command, called from ParseCommands, in dynamics.c
*chCard |
Definition at line 1984 of file dynamics.cpp.
References advection_set_detault(), caps(), cdEXIT, t_dense::chDenseLaw, DEBUG_ENTRY, dense, dynamics, FFmtRead(), INPUT_LINE_LENGTH, input_readarray(), ioQQQ, t_dynamics::lgStatic, lgtime_dt_specified, lgtime_Recom, MALLOC, nMatch(), NoNumb(), NTIME, nTime_flux, time_dt, time_dt_scale_factor, time_elapsed_time, time_flux_ratio, timestep, timestep_init, timestep_stop, wind, t_wind::windv, and t_wind::windv0.
Here is the call graph for this function:
void ParseDynaWind | ( | char * | chCard | ) |
ParseDynaWind parse the wind command, called from ParseCommands
*chCard |
Definition at line 2129 of file dynamics.cpp.
References advection_set_detault(), BIGDOUBLE, cdEXIT, t_dense::chDenseLaw, t_wind::comass, DEBUG_ENTRY, dense, dynamics, FFmtRead(), t_dynamics::FluxCenter, t_dynamics::FluxIndex, t_dynamics::FluxScale, INPUT_LINE_LENGTH, ioQQQ, t_pressure::lgContRadPresOn, t_wind::lgDisk, t_dynamics::lgFluxDScale, t_wind::lgWindOK, nMatch(), NoNumb(), pressure, wind, t_wind::windv, and t_wind::windv0.
Here is the call graph for this function:
STATIC double timestep_next | ( | void | ) |
Definition at line 145 of file dynamics.cpp.
References cdTemp(), DEBUG_ENTRY, dynamics, ioQQQ, t_dynamics::lgRecom, MAX2, MIN2, SDIV(), timestep, timestep_init, and TotalInsanity().
Here is the call graph for this function:
double AdvecSpecificEnthalpy [static] |
Definition at line 103 of file dynamics.cpp.
Referenced by DynaIonize(), DynaPrtZone(), DynaPunch(), DynaStartZone(), and DynaZero().
realnum DivergePresInteg [static] |
Definition at line 142 of file dynamics.cpp.
Referenced by DynaEndIter(), DynaEndZone(), DynaPresChngFactor(), and DynaZero().
double Dyn_dr [static] |
Definition at line 100 of file dynamics.cpp.
Referenced by DynaEndIter(), DynaIonize(), and DynaStartZone().
realnum * EnthalpyDensity [static] |
Definition at line 109 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaIonize(), DynaPrtZone(), and DynaSaveLast().
int iphUpstream = 0 [static] |
int ipUpstream = 0 [static] |
int ipyUpstream = 0 [static] |
bool lgtime_dt_specified |
int* lgtime_Recom |
long int nOld_zone [static] |
Definition at line 139 of file dynamics.cpp.
Referenced by DynaNewStep(), DynaSaveLast(), DynaStartZone(), and DynaZero().
long int nTime_flux [static] |
realnum** Old_CO_molec [static] |
Definition at line 130 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().
realnum * Old_DenMass [static] |
Definition at line 109 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().
realnum * Old_ednstr [static] |
realnum * Old_EnthalpyDensity [static] |
Definition at line 109 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaSaveLast(), and DynaStartZone().
realnum** Old_gas_phase [static] |
realnum** Old_H2_molec [static] |
Definition at line 129 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().
Definition at line 109 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().
realnum * Old_hiistr [static] |
realnum * Old_pressure [static] |
realnum*** Old_xIonDense [static] |
Definition at line 133 of file dynamics.cpp.
Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().
realnum * Old_xLyman_depth [static] |
double * time_dt [static] |
double * time_dt_scale_factor [static] |
double* time_elapsed_time [static] |
double * time_flux_ratio [static] |
double timestep [static] |
Definition at line 73 of file dynamics.cpp.
Referenced by DynaIonize(), DynaPunchTimeDep(), ParseDynaTime(), and timestep_next().
double timestep_factor [static] |
double timestep_init [static] |
Definition at line 73 of file dynamics.cpp.
Referenced by DynaZero(), ParseDynaTime(), and timestep_next().
double timestep_stop [static] |
double* Upstream_CO_molec [static] |
double* Upstream_H2_molec [static] |
double Upstream_hden [static] |
double* UpstreamElem [static] |
double** UpstreamIon [static] |