cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Macros | 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.

Macros

#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
 

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

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

realnum * EnthalpyDensity
static

Definition at line 109 of file dynamics.cpp.

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

int iphUpstream =0
static

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
static

Definition at line 39 of file dynamics.cpp.

Referenced by DynaEndIter(), and DynaStartZone().

bool lgtime_dt_specified

Definition at line 83 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

int* lgtime_Recom

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

realnum * Old_DenMass
static

Definition at line 109 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

realnum * Old_depth
static

Definition at line 109 of file dynamics.cpp.

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

realnum * Old_ednstr
static

Definition at line 109 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

realnum * Old_EnthalpyDensity
static

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

realnum * Old_hden
static

Definition at line 109 of file dynamics.cpp.

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

realnum * Old_hiistr
static

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

realnum * Old_pressure
static

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

realnum * Old_xLyman_depth
static

Definition at line 109 of file dynamics.cpp.

Referenced by DynaCreateArrays(), and DynaSaveLast().

double * time_dt
static

Definition at line 79 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double * time_dt_scale_factor
static

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
static

Definition at line 79 of file dynamics.cpp.

Referenced by DynaEndIter(), and ParseDynaTime().

double timestep
static

Definition at line 73 of file dynamics.cpp.

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

double timestep_factor
static

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
static

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


Generated for cloudy by doxygen 1.8.3.1