00001 /* This file is part of Cloudy and is copyright (C)1978-2007 by Gary J. Ferland 00002 * For conditions of distribution and use see copyright notice in license.txt */ 00004 void DynaEndIter(void); 00005 00007 void DynaStartZone(void); 00008 00010 void DynaEndZone(void); 00011 00013 void DynaIonize(void); 00014 00018 double DynaPresChngFactor(void); 00019 00021 void DynaZero( void ); 00022 00024 void DynaCreateArrays( void ); 00025 00029 void ParseDynaWind( char *chCard ); 00030 00034 void ParseDynaTime( char *chCard ); 00035 00037 void DynaPrtZone( void ); 00038 00043 void DynaPunch(FILE* ipPnunit , char chJob ); 00044 00049 void DynaPunchTimeDep( FILE* ipPnunit , const char *chJob ); 00050 00051 float DynaFlux(double depth); 00052 00054 EXTERN struct t_dynamics 00055 { 00057 bool lgAdvection; 00058 00060 double Cool, Heat, dCooldT, dHeatdT; 00061 00063 double CoolMax, HeatMax; 00064 00066 double Rate; 00067 00069 double **Source /*[LIMELM][LIMELM+2]*/; 00070 00072 double *H2_molec; 00073 double *CO_molec; 00074 00076 bool lgISO[NISO]; 00077 00079 bool lgMETALS; 00080 00082 bool lgCoolHeat; 00083 00086 bool lg_coronal_time_init; 00087 00089 bool lgStatic; 00090 00092 double time_elapsed; 00093 00095 bool lgRecom; 00096 00098 bool lgStatic_completed; 00099 00101 double AdvecLengthInit; 00102 00104 double FluxCenter; 00105 00107 char chPresMode[20]; 00108 00110 double ShockDepth; 00111 00114 double ShockMach; 00115 00117 double FluxScale; 00118 00120 bool lgFluxDScale; 00121 00123 double FluxIndex; 00124 00126 double dRad; 00127 00129 double oldFullDepth; 00130 00140 /* the error from comparing this iteration with the previous one */ 00141 double convergence_error; 00142 00144 double convergence_tolerance; 00145 00147 double discretization_error; 00148 00150 double error_scale1 , error_scale2; 00151 00154 bool lgSetPresMode; 00155 00157 float dDensityDT; 00160 long iteration_first_dynamics; 00161 00162 } dynamics;