cloudy trunk
Defines | Functions | Variables

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 "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 realnumOld_histr
static realnumOld_xLyman_depth
static realnumOld_depth
static realnumOld_hiistr
static realnumOld_pressure
static realnumOld_hden
static realnumOld_DenMass
static realnumEnthalpyDensity
static realnumOld_ednstr
static realnumOld_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 Documentation

#define ANTISHOCK   7

Definition at line 216 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define ANTISHOCK2   8

Definition at line 217 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define DIAG_PRINT   false

Definition at line 53 of file dynamics.cpp.

Referenced by DynaEndZone(), and DynaPresChngFactor().

#define MAINPRINT   false

Definition at line 54 of file dynamics.cpp.

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

#define NTIME   200

Definition at line 85 of file dynamics.cpp.

Referenced by ParseDynaTime().

#define ORIGINAL   5

Definition at line 214 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define SHOCK   6

Definition at line 215 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define STRONGD   4

Definition at line 213 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define SUBSONIC   1

Definition at line 210 of file dynamics.cpp.

Referenced by DynaPresChngFactor().

#define SUPERSONIC   2

Definition at line 211 of file dynamics.cpp.

Referenced by DynaPresChngFactor().


Function Documentation

STATIC void advection_set_detault ( bool  lgWind)
void DynaCreateArrays ( void  )
void DynaEndIter ( void  )
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)
void DynaIonize ( void  )
STATIC void DynaNewStep ( void  )
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 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  )
void DynaPunch ( FILE *  ipPnunit,
char  chJob 
)

DynaPunch punch info related to advection

Parameters:
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().

Referenced by PunchDo().

Here is the call graph for this function:

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

DynaPunchTimeDep - punch info about time dependent solution

Parameters:
ipPnunit
*chJob

Definition at line 2336 of file dynamics.cpp.

References cdIonFrac(), cdTemp(), t_colden::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().

Referenced by PunchDo().

Here is the call graph for this function:

STATIC void DynaSaveLast ( void  )
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 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.

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 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.

Referenced by ParseCommands().

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().

Referenced by DynaEndIter().

Here is the call graph for this function:


Variable Documentation

double AdvecSpecificEnthalpy [static]

Definition at line 103 of file dynamics.cpp.

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

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(), DynaNewStep(), and DynaStartZone().

Definition at line 109 of file dynamics.cpp.

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

int iphUpstream = 0

Definition at line 39 of file dynamics.cpp.

Referenced by DynaEndIter(), and DynaStartZone().

int ipUpstream = 0 [static]

Definition at line 39 of file dynamics.cpp.

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

int ipyUpstream = 0

Definition at line 39 of file dynamics.cpp.

Referenced by DynaEndIter(), and DynaStartZone().

Definition at line 83 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

Definition at line 84 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

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]

Definition at line 88 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

realnum** Old_CO_molec [static]

Definition at line 130 of file dynamics.cpp.

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

Definition at line 109 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

Definition at line 109 of file dynamics.cpp.

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

Definition at line 109 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

Definition at line 109 of file dynamics.cpp.

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

realnum** Old_gas_phase [static]

Definition at line 136 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

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().

Definition at line 109 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

realnum* Old_histr [static]

Definition at line 109 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

Definition at line 109 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

realnum*** Old_xIonDense [static]

Definition at line 133 of file dynamics.cpp.

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

Definition at line 109 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

double * time_dt

Definition at line 79 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

Definition at line 79 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double* time_elapsed_time [static]

Definition at line 79 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double * time_flux_ratio

Definition at line 79 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double timestep

Definition at line 73 of file dynamics.cpp.

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

Definition at line 73 of file dynamics.cpp.

Referenced by DynaEndIter(), and DynaZero().

double timestep_init [static]

Definition at line 73 of file dynamics.cpp.

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

double timestep_stop

Definition at line 73 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double* Upstream_CO_molec [static]

Definition at line 66 of file dynamics.cpp.

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

double* Upstream_H2_molec [static]

Definition at line 63 of file dynamics.cpp.

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

double Upstream_hden [static]

Definition at line 106 of file dynamics.cpp.

Referenced by DynaStartZone().

double* UpstreamElem [static]

Definition at line 60 of file dynamics.cpp.

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

double** UpstreamIon [static]

Definition at line 58 of file dynamics.cpp.

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

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated for cloudy by doxygen 1.7.3