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 */ 00003 /*RT_radiative_acceleration radiative acceleration due to incident continuum, calls rt_line_driving for lines*/ 00004 #include "cddefines.h" 00005 #include "physconst.h" 00006 #include "rfield.h" 00007 #include "opacity.h" 00008 #include "wind.h" 00009 #include "dense.h" 00010 #include "rt.h" 00011 00012 void RT_radiative_acceleration(void) 00013 { 00014 long int i; 00015 double rforce; 00016 00017 DEBUG_ENTRY( "RT_radiative_acceleration()" ); 00018 /*radiative acceleration due to incident continuum, calls rt_line_driving for lines 00019 *used for wind solution derives AccelLine and AccelCont */ 00020 00021 rforce = 0.; 00022 for( i=0; i < rfield.nflux; i++ ) 00023 { 00024 rforce += (rfield.flux[i] + rfield.outlin[i] + rfield.outlin_noplot[i]+ rfield.ConInterOut[i])* 00025 rfield.anu[i]*(opac.opacity_abs[i] + opac.opacity_sct[i]); 00026 } 00027 00028 /* radiative acceleration; xMassDensity is gm per cc, eval when PTOT called */ 00029 wind.AccelLine = (float)(RT_line_driving()/SPEEDLIGHT/dense.xMassDensity); 00030 wind.AccelCont = (float)(rforce*EN1RYD/SPEEDLIGHT/dense.xMassDensity); 00031 /* this is numerically unstable */ 00032 wind.AccelPres = 0.; 00033 /* total acceleration */ 00034 wind.AccelTot = wind.AccelCont + wind.AccelLine + wind.AccelPres; 00035 /*fprintf(ioQQQ," debuggrad acc\t%.2f %.2e %.2e %.2e\n", 00036 fnzone,wind.AccelLine, wind.AccelCont,opac.opacity_abs[997] );*/ 00037 /*if( wind.AccelCont > 1. ) 00038 { 00039 for( i=0; i < rfield.nflux; i++ ) 00040 { 00041 rforce = (rfield.flux[i] + rfield.outlin[i] + rfield.outlin_noplot[i]+ rfield.ConInterOut[i])* 00042 rfield.anu[i]*(opac.opacity_abs[i] + opac.opacity_sct[i]); 00043 fprintf(ioQQQ,"debugg rforce\t%.3e\t%.2e\t%.2e\n", 00044 rfield.anu[i], 00045 (rfield.flux[i] + rfield.outlin[i] + rfield.outlin_noplot[i]+ rfield.ConInterOut[i]), 00046 (opac.opacity_abs[i] + opac.opacity_sct[i]) ); 00047 } 00048 }*/ 00049 00050 DEBUG_EXIT( "RT_radiative_acceleration()" ); 00051 return; 00052 }