00001
00002
00003
00004 #include "cddefines.h"
00005 #include "radius.h"
00006 #include "thermal.h"
00007 #include "dense.h"
00008 #include "lines_service.h"
00009 #include "grainvar.h"
00010 #include "lines.h"
00011
00012 void lines_grains(void)
00013 {
00014 double
00015 dhtot,
00016 hold;
00017 long i,
00018 nd;
00019
00020 DEBUG_ENTRY( "lines_grains()" );
00021
00022 if( !gv.lgGrainPhysicsOn )
00023 {
00024 DEBUG_EXIT( "lines_grains()" );
00025 return;
00026 }
00027
00028
00029 i = StuffComment( "grains" );
00030 linadd( 0., (float)i , "####", 'i');
00031
00032
00033 dhtot = 0.;
00034 for( nd=0; nd < gv.nBin; nd++ )
00035 {
00036
00037 dhtot += gv.bin[nd]->GasHeatPhotoEl;
00038 }
00039
00040
00041 gv.TotalDustHeat += (float)(dhtot*radius.dVeff);
00042
00043 gv.dphmax = MAX2((float)(dhtot/thermal.htot),gv.dphmax);
00044
00045 gv.dclmax = MAX2(gv.dclmax,(float)(gv.GasCoolColl/thermal.htot));
00046
00047
00048 hold = SDIV(dense.EdenTrue);
00049 gv.GrnElecDonateMax =
00050 (float)MAX2( gv.GrnElecDonateMax , gv.TotalEden/hold );
00051
00052
00053 gv.GrnElecHoldMax =
00054 (float)MAX2( gv.GrnElecHoldMax , -gv.TotalEden/hold );
00055
00056
00057 linadd(dhtot,0,"GrGH",'h');
00058
00059
00060 linadd(thermal.heating[0][25],0,"GrTH",'h');
00061
00062
00063 linadd(MAX2(0.,gv.GasCoolColl),0,"GrGC",'c');
00064
00065
00066 linadd(MAX2(0.,-gv.GasCoolColl),0,"GrGC",'c');
00067
00068
00069 linadd(gv.GrainHeatSum,0,"GraT",'i');
00070
00071
00072 linadd(gv.GrainHeatInc,0,"GraI",'i');
00073
00074
00075 linadd(gv.GrainHeatLya,1216,"GraL",'i');
00076
00077
00078 linadd(gv.GrainHeatCollSum,0,"GraC",'i');
00079
00080
00081 linadd(gv.GrainHeatDif,0,"GraD",'i');
00082
00083 DEBUG_EXIT( "lines_grains()" );
00084 return;
00085
00086 }