dynamics.cpp File Reference

#include "cddefines.h"
#include "cddrive.h"
#include "struc.h"
#include "input.h"
#include "colden.h"
#include "radius.h"
#include "thirdparty.h"
#include "rfield.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 "rt.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
#define N_INITIAL_RELAX   2

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)
float 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 float time_continuum_scale = -1.
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 float * Old_histr
static float * Old_xLyman_depth
static float * Old_depth
static float * Old_hiistr
static float * Old_pressure
static float * Old_hden
static float * Old_DenMass
static float * EnthalpyDensity
static float * Old_ednstr
static float * Old_EnthalpyDensity
static float ** Old_H2_molec
static float ** Old_CO_molec
static float *** Old_xIonDense
static float ** Old_gas_phase
static long int nOld_zone
static float DivergePresInteg


Define Documentation

#define ANTISHOCK   7

Definition at line 217 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define ANTISHOCK2   8

Definition at line 218 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define DIAG_PRINT   false

Definition at line 51 of file dynamics.cpp.

Referenced by DynaEndZone(), and DynaPresChngFactor().

#define MAINPRINT   false

Definition at line 52 of file dynamics.cpp.

Referenced by DynaEndIter(), DynaIonize(), and DynaStartZone().

#define N_INITIAL_RELAX   2

Referenced by DynaEndIter().

#define NTIME   200

Definition at line 84 of file dynamics.cpp.

Referenced by ParseDynaTime().

#define ORIGINAL   5

Definition at line 215 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define SHOCK   6

Definition at line 216 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define STRONGD   4

Definition at line 214 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define SUBSONIC   1

Definition at line 211 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define SUPERSONIC   2

Definition at line 212 of file dynamics.cpp.

Referenced by DynaPresChngFactor().


Function Documentation

static void advection_set_detault ( bool  lgWind  )  [static]

void DynaCreateArrays ( void   ) 

void DynaEndIter ( void   ) 

void DynaEndZone ( void   ) 

DynaEndZone called at end of iteration when advection is turned on

Definition at line 1253 of file dynamics.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, 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:

float DynaFlux ( double  depth  ) 

void DynaIonize ( void   ) 

static void DynaNewStep ( void   )  [static]

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

Todo:
2 this should be setable at run time as per Robin Williams email rshock = 4e16;

Todo:
2 Switch to supersonic when bad enough failure for STRONGD -- need to improve this logic when the p(rho) data is cleaner

Definition at line 220 of file dynamics.cpp.

References ANTISHOCK, ANTISHOCK2, ASSERT, t_dynamics::chPresMode, DEBUG_ENTRY, DEBUG_EXIT, 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, 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, RT_radiative_acceleration(), 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   ) 

void DynaPunch ( FILE *  ipPnunit,
char  chJob 
)

DynaPunch punch info related to advection

Parameters:
ipPnunit 
chJob 

Definition at line 2428 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().

Referenced by PunchDo().

Here is the call graph for this function:

void DynaPunchTimeDep ( FILE *  ipPnunit,
const char *  chJob 
)

DynaPunchTimeDep - punch info about time dependent solnt

Parameters:
ipPnunit 
*chJob 

Definition at line 2320 of file dynamics.cpp.

References cdIonFrac(), cdTemp(), t_colden::colden, colden, DEBUG_ENTRY, DEBUG_EXIT, dense, dynamics, findspecies(), t_dense::gas_phase, ipCOL_HTOT, ipHYDROGEN, SDIV(), time_continuum_scale, t_dynamics::time_elapsed, timestep, and TotalInsanity().

Referenced by PunchDo().

Here is the call graph for this function:

static void DynaSaveLast ( void   )  [static]

void DynaStartZone ( void   ) 

void DynaZero ( void   ) 

void ParseDynaTime ( char *  chCard  ) 

ParseDynaTime parse the time command, called from ParseCommands, in dynamics.c

Parameters:
*chCard 

Definition at line 1967 of file dynamics.cpp.

References advection_set_detault(), caps(), cdEXIT(), t_dense::chDenseLaw, DEBUG_ENTRY, DEBUG_EXIT, 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.

Referenced by ParseCommands().

Here is the call graph for this function:

void ParseDynaWind ( char *  chCard  ) 

ParseDynaWind parse the wind command, called from ParseCommands

Parameters:
*chCard 

Todo:
2 Need to include divergence terms in pressure balance if flux index is != 0

Todo:
2 Need to include divergence terms in pressure balance if flux index is != 0

Definition at line 2110 of file dynamics.cpp.

References advection_set_detault(), BIGDOUBLE, cdEXIT(), t_dense::chDenseLaw, t_wind::comass, DEBUG_ENTRY, DEBUG_EXIT, dense, dynamics, FFmtRead(), t_dynamics::FluxCenter, t_dynamics::FluxIndex, t_dynamics::FluxScale, INPUT_LINE_LENGTH, ioQQQ, t_pressure::lgContRadPresOn, t_dynamics::lgFluxDScale, t_wind::lgWindOK, nMatch(), NoNumb(), pressure, wind, t_wind::windv, and t_wind::windv0.

Referenced by ParseCommands().

Here is the call graph for this function:

static double timestep_next ( void   )  [static]

Definition at line 144 of file dynamics.cpp.

References cdTemp(), DEBUG_ENTRY, DEBUG_EXIT, dynamics, ioQQQ, t_dynamics::lgRecom, MAX2, MIN2, SDIV(), timestep, timestep_init, and TotalInsanity().

Referenced by DynaEndIter().

Here is the call graph for this function:


Variable Documentation

double AdvecSpecificEnthalpy [static]

Definition at line 102 of file dynamics.cpp.

Referenced by DynaIonize(), DynaPrtZone(), DynaPunch(), DynaStartZone(), and DynaZero().

float DivergePresInteg [static]

Definition at line 141 of file dynamics.cpp.

Referenced by DynaEndIter(), DynaEndZone(), DynaPresChngFactor(), and DynaZero().

double Dyn_dr [static]

Definition at line 99 of file dynamics.cpp.

Referenced by DynaEndIter(), DynaIonize(), DynaNewStep(), and DynaStartZone().

float * EnthalpyDensity [static]

Definition at line 108 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaIonize(), DynaPrtZone(), and DynaSaveLast().

int iphUpstream = 0 [static]

Definition at line 37 of file dynamics.cpp.

Referenced by DynaEndIter(), and DynaStartZone().

int ipUpstream = 0 [static]

Definition at line 37 of file dynamics.cpp.

Referenced by DynaEndIter(), DynaIonize(), and DynaStartZone().

int ipyUpstream = 0 [static]

Definition at line 37 of file dynamics.cpp.

Referenced by DynaEndIter(), and DynaStartZone().

Definition at line 82 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

Definition at line 83 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

long int nOld_zone [static]

Definition at line 138 of file dynamics.cpp.

Referenced by DynaNewStep(), DynaSaveLast(), DynaStartZone(), and DynaZero().

long int nTime_flux [static]

Definition at line 87 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

float** Old_CO_molec [static]

Definition at line 129 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().

float * Old_DenMass [static]

Definition at line 108 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

float * Old_depth [static]

Definition at line 108 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaIonize(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().

float * Old_ednstr [static]

Definition at line 108 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

float * Old_EnthalpyDensity [static]

Definition at line 108 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaSaveLast(), and DynaStartZone().

float** Old_gas_phase [static]

Definition at line 135 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

float** Old_H2_molec [static]

Definition at line 128 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().

float * Old_hden [static]

Definition at line 108 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().

float * Old_hiistr [static]

Definition at line 108 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

float* Old_histr [static]

Definition at line 108 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

float * Old_pressure [static]

Definition at line 108 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

float*** Old_xIonDense [static]

Definition at line 132 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaIonize(), DynaNewStep(), DynaSaveLast(), and DynaStartZone().

float * Old_xLyman_depth [static]

Definition at line 108 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

float time_continuum_scale = -1. [static]

Definition at line 75 of file dynamics.cpp.

Referenced by DynaEndIter(), and DynaPunchTimeDep().

double * time_dt [static]

Definition at line 78 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double * time_dt_scale_factor [static]

Definition at line 78 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double* time_elapsed_time [static]

Definition at line 78 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double * time_flux_ratio [static]

Definition at line 78 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double timestep [static]

Definition at line 71 of file dynamics.cpp.

Referenced by DynaEndIter(), DynaIonize(), DynaPunchTimeDep(), ParseDynaTime(), and timestep_next().

double timestep_factor [static]

Definition at line 71 of file dynamics.cpp.

Referenced by DynaEndIter(), and DynaZero().

double timestep_init [static]

Definition at line 71 of file dynamics.cpp.

Referenced by DynaZero(), ParseDynaTime(), and timestep_next().

double timestep_stop [static]

Definition at line 71 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double* Upstream_CO_molec [static]

Definition at line 64 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaIonize(), and DynaStartZone().

double* Upstream_H2_molec [static]

Definition at line 61 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaIonize(), and DynaStartZone().

double Upstream_hden [static]

Definition at line 105 of file dynamics.cpp.

Referenced by DynaStartZone().

double* UpstreamElem [static]

Definition at line 58 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaIonize(), and DynaStartZone().

double** UpstreamIon [static]

Definition at line 56 of file dynamics.cpp.

Referenced by DynaCreateArrays(), DynaIonize(), and DynaStartZone().


Generated for cloudy by doxygen 1.5.9