IAM Program Manual A.1 General Description This program computes a matrix of Incident Angle Modifiers (IAM's) for cylindrical solar collectors using three-dimensional Monte Carlo ray tracing. IAM's are defined as the ratio of a collector's performance at any angle of incidence [(tau-alpha)] to the collector's performance at normal incidence [(tau-alpha) normal]. The [(tau-alpha)] is defined as the ratio of photons absorbed by all collector tubes to the number of photons incident upon the aperture plane in the absence of tubes. Pho- tons are traced in an enclosure through possibly many surface interac- tions until the photon is either absorbed by a surface or exits the vol- ume of interest. The geometry of the collector cylinders is taken to be concentric with the inner cylinder being the collector tube and the out- ter cylinder being the glass cover. Any number of cylinders can be used with any spacing desired. The use of a back plane is also available for modeling reflected radiation from a roof or back plane reflector. An input deck (iam.in), using free-form input, where successive values input must be separated by one or more spaces, is used to define control information, material properties and collector geometry. An ampersand (&) may be used in the first column of a line to specify a comment line, ignored by the program. The following sections briefly describe the input for each the program. A.2 Units It is important that all input be in a consistent set of units. Any consistent set of units can be used, for example cm, m, ft or in. A.3 Input Deck The input deck is named "iam.in" and is written in free-form style. Suggested values are included in parenthesis at the end of the description. Line 1 --- Title Item Variable Name Description 1 headin title of the problem, may be up to 40 characters including spaces; must be left- justified, i.e. it is taken as the characters in columns 1 through 40. Line 2 --- Control Information Item Variable Name Description 1 num_photons number of photons emitted for each photon loop (10,000) 2 nplost_max maximum number of lost photons permitted before execution of program is terminated (10) 3 num_ploops maximum number of photon loops to be executed before moving on to next incident direction (100) 4 seed0 initial seed to be used for the random number gen- erator, if 0 is entered, a "random" initial seed is generated from the date and time of execution (0) 5 tol desired tolerance for results (0.01) Line 3 --- Directions and Materials Item Variable Name Description 1 n_long number of longitudinal incident angles from which to emit photons (5) 2 n_tran number of transverse incident angles from which to emit photons (10) 3 num_cyls number of cylinders in collector array 4 num_surfaces number of general surfaces (0, currently not available) 5 num_mats_surf number of opaque surface materials to be read in the surface materials input section 6 num_mats_glass number of semi-transparent materials to be read in the glass materials input section Line 4 --- Print Control Item Variable Name Description 1 iprint controls the amount of output sent to the output file "iam.out" (0) iprint = 0 ===> minimal output is sent to iam.out iprint = 1 ===> modest output is sent to iam.out iprint =-1 ===> massive output is sent to iam.out 2 iprint_ran controls the output of information regarding the random number generator, RNG (0) iprint_ran = 0 ===> no RNG output iprint_ran = 1 ===> the seeds used for initializing the RNG are sent to iam.out 3 idebug controls the amount of debugging information sent to the output file "iam.dbg" (0) idebug = 0 ===> no debug information sent to iam.dbg idebug = 1 ===> modest amounts of debugging information is sent to iam.dbg idebug =-1 ===> large amounts of debugging information sent to iam.dbg idebug =-2 ===> massive amounts of debugging information sent to iam.dbg 4 idata data check only flag (0) idata = 1 ===> the whole input deck will be read, validity of the input data verified and execution of the program will be terminated - no IAM's will be calculated idata = 0 ===> after the validity of the data is verified, normal execution of the program continues - IAM's will be calculated 5 iglass a flag telling the program whether or not the col- lector cylinders will have glass covers (1) iglass = 1 ===> normal execution of the program occurs with the simulation of glass covers iglass = 0 ===> the program is executed without glass cov- ers around the collector cylinders (ro is taken as the radius of the uncovered absorbing cylinder) Line 5 --- Aperture Plane Definition Item Variable Name Description 1 xmina the x-value of the aperture plane minimum 2 xmaxa the x-value of the aperture plane maximum 3 ymina the y-value of the aperture plane minimum 4 ymaxa the y-value of the aperture plane maximum Line 6 --- Back Plane Definition Item Variable Name Description 1 xminb the x-value of the back plane minimum 2 xmaxb the x-value of the back plane maximum 3 yminb the y-value of the back plane minimum 4 ymaxb the y-value of the back plane maximum 5 matnob material number of the back plane Next "n_long" Lines --- Longitudinal Incidence Angles Item Variable Name Description 1 n longitudinal incidence angle number 2 thetal(n) longitudinal incidence angle Next "n_tran" Lines --- Transverse Incidence Angles Item Variable Name Description 1 n transverse incidence angle number 2 thetat(n) transverse incidence angle Next "num_cyls" Lines --- Cylinder Descriptions Item Variable Name Description 1 n cylinder number 2 x0(n) x-value of cylinder's origin 3 y0(n) y-value of cylinder's origin 4 z0(n) z-value of cylinder's origin The origin of the cylinder is on the axis of the cylinder at the +x end of the cylinder. 5 length_cyl(n) length of cylinder 6 ro(n) outside radius of the glass cover (or radius of the absorber if iglass = 0) 7 ri(n) radius of opaque, absorbing cylinder 8 betad(n) angle of elevation of cylinder (degrees), currently not used 9 matno_glass(n) material number of the glass cover 10 matno_cyli(n) material number of the collector cylinder Next "num_mats_surf" Lines --- Opaque Surface Material Descriptions Item Variable Name Description 1 n material number 2 rho_s(n) specular reflectance of material n 3 rho_ss(n) semi-specular reflectance of material n 4 rho_d(n) diffuse reflectance of material n 0 <= rho_s + rho_ss + rho_d <= 1.0 5 r_ss(n) semi-specular weighting exponent (0 - 10) 6 r_d(n) diffuse weighting exponent (1) Next "num_mats_glass" Lines --- Semi-transparent Surface Materials Item Variable Name Description 1 n glass material number 2 n_glass(n) index of refraction for glass material n (1.5) 3 k_glass(n) extinction coefficient for glass material n (0.13/cm) 4 t(n) thickness of glass material n It is very important that the product of the extinction coefficient and the glass thickness be dimensionless. The extinction coefficient will range from 0.04/cm for "water white" glass to 0.32/cm for "green glass." Soda-lime glass, with a normal transmittance of 0.9, has an extinc- tion coefficient of approximately 0.13/cm. A.4 Execution of IAM Program With the executable file "iam.exe" (simply "iam" for UNIX) and the input deck "iam.in" in the same directory, the program is executed by typing "iam" and pressing the RETURN or ENTER key. On Windows systems, the pro- gram can alternatively be executed by double-clicking on its icon. Output to the screen will be information about the current status of the program's execution. After each photon loop is completed, a line of information is written to the screen. This includes: Item Description 1 whether or not the results have converged for this incident direction 2 current incident direction number 3 photon loop number for this incident direction 4 number of photons emitted in the photon loop 5 current convergence tolerance 6 desired convergence tolerance Upon completion of the program, the final photon tallies for each incident direction are written to the screen: Item Description 1 direction number 2 transmittance-absorptance product (tau-alpha) 3 number of photons absorbed by the cylinders 4 number of photons absorbed by the glass covers A.5 Output Files During the execution, a number of files are written to the active directory: File Name Description iam.tab contains tables of incidence angles and IAM's formatted for input into TRNSYS; also contains selected collector parameters sufficient to identify completely the geometry (these although present, are ignored by TRNSYS) iam.out contains information about the input deck, material properties, collector geometry, detailed results for each incident direction and detailed results for the entire run, including error termination information iam.dbg contains detailed information about ray-tracing calculations, if a debugging option is selected iam.tmp currently not used iam.plt contains data used to plot the collector geometry and photon emissions, currently not used iam.lst currently not used A.6 Access to the IAM Program The following files are available at CSU's Solar Energy Applications Laboratory web page (http://www.ColoState.EDU/Orgs/SEAL/research/IAM/ iam.html): File Name Description manual text file of this manual iam.f90 complete source code written in ANSI Fortran 90 iam.in.1 sample input file with four collector tubes, copy this file to "iam.in" to execute the program with this input deck iam.in.2 sample input file with eight collector tubes, copy this file to "iam.in" to execute the program with this input deck iam.tab.1 results of running the program with iam.in.1 as the input deck iam.tab.2 results of running the program with iam.in.2 as the input deck iamdos.exe executable which can be run under Windows iamsun.exe executable which can be run on a Sun platform