Note : Some parts of the source code are omitted from these listings (mainly functions for debugging the code)..
Globals: fake_rossi_ecat_global_v311.php
<?php // php energy calculator globals v3 110305 global $dbg; global $feed_on; global $observed_power,$observed_runtime; // KWH, hrs global $section_max, $section_volume, $section_name, $section_abrv,$section_mass; global $material_max, $material_name, $material_abrv, $material_cmt, $material_mj_per_l, $material_mj_per_kg, $material_kwh_per_l, $material_kwh_per_kg, $material_sp_heat; global $rad_max, $rad_name, $rad_abrv, $rad_kw_per_kg, $rad_kw_per_l, $rad_sp_gravity; global $expt_num, $expt_max, $expt_name, $expt_abrv, $expt_power, $expt_time, $expt_comment, $expt_sec_from, $expt_sec_to, $expt_sec_max, $expt_sec, $expt_mat; global $g_expt; // current experiment global $color_real, $color_fake; global $unknown_val; global $pKW,$pKWH,$pMJ,$pH,$pL,$pKG,$pMJpKG,$pMJpL,$pKWHpKG,$pKWHpL,$pSPH; // print spans global $pkJmol,$pgmol,$pgcm3,$pkJg; global $paH, $paH2, $paO, $paO2, $paO3, $paH2O; // common molecules global $paB, $paB2, $paB3; global $paMg, $paMg2, $paMg3; // stuff for element/molecular calculations global $am; // atomic/molecular mass global $dkgL; // density[] // AB reactions ['AB'] global $mab_ab_title,$mab_ab_formula,$mab_a_name,$mab_b_name; global $mab_a_pa, $mab_b_pa; // pATOM formats global $mab_a_m, $mab_b_m, $mab_tot_m, $mab_a_mfac, $mab_b_mfac; global $mab_a_dens, $mab_b_dens; global $mab_a_num, $mab_b_num; global $mab_a_elt, $mab_b_elt; global $mab_a_v, $mab_b_v, $mab_tot_v, $mab_a_vfac, $mab_b_vfac; global $table_bgcolor; // specific heat global $sph_max, $sph_material, $sph_sph, $sph_tmax, $sph_tmin, $sph_comment, $sph_mjL; global $send_holmes; // magnesium-steam global $kJmolMg,$kJkGMG,$MJkGMG,$kJmolH2,$kJkGH2,$MJkGH2,$MJpLH2,$MJpLMG; ?>
Functions: fake_rossi_ecat_calc_v311.php
<?php // php energy calculator include(INCLUDE_GLOBALS); define('AF_MJ2KWH','0.27778'); $material_max = 0; $rad_max = 0; $section_max = 0; $expt_max = 0; function pUNIT($a_string) // print the UNIT in a span, with its own class { include(INCLUDE_GLOBALS); $r = <<< PRINT_UNITS <span class="afUnits">{$a_string}</span> PRINT_UNITS; return $r; } // Pre-format all the common units : the names are picture-coded $pKW = pUNIT("kW"); $pKWH = pUNIT("kWH"); $pMJ = pUNIT("MJ"); $pH = pUNIT("Hrs"); $pL = pUNIT("L"); $pKG = pUNIT("kg"); $pMJpKG = pUNIT("MJ/kg"); $pMJpL = pUNIT("MJ/L"); $pKWHpKG = pUNIT("kWH/kg"); $pKWHpL = pUNIT("kWH/L"); $pSPH = pUNIT("MJ/kg.K"); $pkJmol = pUNIT("kJ/mol"); $pgmol = pUNIT("g/mol"); $pgcm3 = pUnit("g/cm3"); $pkJg = pUnit("kJ/g"); function print_val_fmt($a_val) { include(INCLUDE_GLOBALS); $l_absval = abs($a_val); if ( $l_absval <= 0.00000000001 ) { $r = ""; } else if ( $l_absval < 0.0001 ) { $r = sprintf("%4.7f",$a_val); } else if ( $l_absval < 0.001 ) { $r = sprintf("%4.6f",$a_val); } else if ( $l_absval < 0.01 ) { $r = sprintf("%4.5f",$a_val); } else if ( $l_absval < 0.1 ) { $r = sprintf("%4.4f",$a_val); } else if ( $l_absval < 1.0 ) { $r = sprintf("%4.3f",$a_val); } else if ( $l_absval < 10.0 ) { $r = sprintf("%4.2f",$a_val); } else if ( $l_absval < 100.0 ) { $r = sprintf("%4.1f",$a_val); } else { $r = sprintf("%4.0f",$a_val); } return $r; } function pV($a_val) // shorthand { return print_val_fmt($a_val); } function print_unit_fmt($a_val,$a_unit) // changes format to three significant digits { include(INCLUDE_GLOBALS); $l_absval = abs($a_val); if ( $l_absval <= 0.00000000001 ) { $r = ""; } else { $v = print_val_fmt($a_val); $r = sprintf("%s %s",$v,$a_unit); } return $r; } function pUF($a_val,$a_unit) // shorthand { print_unit_fmt($a_val,$a_unit); } function td_fmt3($v,$z,$f,$u,$s) // val, formats for zero,float,unknown style { if ($v==0) { $r = '<td align="center" valign="top"' . $s . '>' . $z . '</td>'; } else if ( $v >= 999 ) { $r = '<td align="center" valign="top"' . $s . '>' . $u . '</td>'; } else { $r = '<td align="right" valign="top"' . $s . '>' . sprintf($f,$v) . '</td>'; } return $r; } function pATOM($a,$s) // Print an Atom with subscript { include(INCLUDE_GLOBALS); $r = "<span class=\"afAtom\">$a</span>"; if($s>1) { $r .= "<span class=\"afSubs\">$s</span>"; } return $r; } $paH = pATOM('H',1); $paH2 = pATOM('H',2); $paO = pATOM('O',1); $paO2 = pATOM('O',2); $paO3 = pATOM('O',3); $paH2O = $paH2 . $paO; $paB = pATOM('B',1); $paB2 = pATOM('B',2); $paB3 = pATOM('B',3); $paMg = pATOM('Mg',1); $paMg2 = pATOM('Mg',2); $paMg3 = pATOM('Mg',3); function print_direct_energy_mass($a_mass,$a_mj_per_kg) { include(INCLUDE_GLOBALS); $l_mj = $a_mass *$a_mj_per_kg; $l_kwh = AF_MJ2KWH * $l_mj; $l_mj_str = print_unit_fmt($l_mj,"MJ"); $l_kwh_str = print_unit_fmt($l_kwh,"kWH"); echo <<< ENERGY_MASS {$l_mj_str} ({$l_kwh_str}) ENERGY_MASS; } function set_section($a_section,$a_name,$a_abrv,$a_volume,$a_mass) { include(INCLUDE_GLOBALS); if($section_max < $a_section ) { $section_max = $a_section; } $section_name[$a_section] = $a_name; $section_abrv[$a_section] = $a_abrv; $section_volume[$a_section] = $a_volume; $section_mass[$a_section] = $a_mass; } function print_section_table_row($a_sec) { include(INCLUDE_GLOBALS); if($dbg>9) { printf("<br/>DBG sec %d name $s </br>",$a_mat,$section_name[$a_sec]); } $fmt1 = 'valign="top"'; $fmt2 = 'align="right" valign="top"'; if ( isset($section_name[$a_sec]) ) { printf("<tr>"); printf("<td %s>%s</td>",$fmt1, $section_name[$a_sec]); printf("<td %s>%s</td>",$fmt1, $section_abrv[$a_sec]); echo td_fmt3($section_mass[$a_sec],"-","%6.3f","???",''); echo td_fmt3($section_volume[$a_sec],"-","%6.3f","???",''); printf("</tr>"); } } function print_section_table($a_sec_from,$a_sec_to) { include(INCLUDE_GLOBALS); echo <<< SEC_TABLE_HEAD <table width="400" border="1" class="afTable" style="background-color: $table_bgcolor[0];"> <tr> <th width="189" scope="col" rowspan="2">Section</th> <th width="189" scope="col" rowspan="2">Abrev</th> <th width="80" scope="col" align="right" style="border-bottom: 0px;">Mass</th> <th width="80" scope="col" align="right" style="border-bottom: 0px;">Volume</th> </tr> <tr><td align="right">$pKG</td><td align="right">$pL</td> </tr> SEC_TABLE_HEAD; for($l_sec=$a_sec_from;$l_sec<=$a_sec_to;$l_sec++) { if( isset($section_name[$l_sec]) ) { print_section_table_row($l_sec); } } echo <<< SEC_TABLE_TAIL </table> SEC_TABLE_TAIL; } function set_material($a_mat,$a_mat_name,$a_mat_abrv,$a_mat_mj_per_kg,$a_mat_mj_per_l,$a_mat_sp_heat,$a_cmt) { include(INCLUDE_GLOBALS); if($material_max < $a_mat ) { $material_max = $a_mat; } $material_name[$a_mat] = $a_mat_name; $material_abrv[$a_mat] = $a_mat_abrv; $material_cmt[$a_mat] = $a_mat_cmt; $material_mj_per_l[$a_mat] = $a_mat_mj_per_l; $material_kwh_per_l[$a_mat] = $a_mat_mj_per_l == $unknown_val? $unknown_val : $a_mat_mj_per_l * AF_MJ2KWH; $material_mj_per_kg[$a_mat] = $a_mat_mj_per_kg; $material_kwh_per_kg[$a_mat] = $a_mat_mj_per_kg == $unknown_val? $unknown_val : $a_mat_mj_per_kg * AF_MJ2KWH; $material_sp_heat[$a_mat] = $a_mat_sp_heat; } function print_material_table_row($a_mat) { include(INCLUDE_GLOBALS); if($dbg>9) { printf("<br/>DBG mat %d name $s </br>",$a_mat,$material_name[$a_mat]); } $fmt1 = 'valign="top"'; $fmt2 = 'align="right" valign="top"'; if ( isset($material_name[$a_mat]) ) { printf("<tr>"); printf("<td %s>%s</td>",$fmt1, $material_name[$a_mat]); printf("<td %s>%s</td>",$fmt1, $material_abrv[$a_mat]); echo td_fmt3($material_mj_per_kg[$a_mat],"-","%6.3f","???",'style="border-right:0px;"' ); echo td_fmt3($material_kwh_per_kg[$a_mat],"-","%6.3f","???",''); echo td_fmt3($material_mj_per_l[$a_mat],"-","%6.3f","???",'style="border-right:0px;"'); echo td_fmt3($material_kwh_per_l[$a_mat],"-","%6.3f","???",''); printf("<td %s>%s </td>",$fmt1,$material_cmnt[$a_mat]); printf("</tr>"); } } function print_material_table($a_mat_from,$a_mat_to) { include(INCLUDE_GLOBALS); echo <<< MAT_TABLE_HEAD <table width="700" border="1" class="afTable" style="background-color: $table_bgcolor[0];"> <tr> <th scope="col" valign="top" rowspan="2" style="width: 150px;">Material</th> <th scope="col" valign="top" rowspan="2" style="width: 100px;">Abrev</th> <th scope="col" valign="top" colspan="2" style="width: 100px;">Energy<br />by Mass</th> <th scope="col" valign="top" colspan="2" style="width: 100px;">Energy<br />by Volume</th> <th scope="col" valign="top" rowspan="2" style="width: 200px;" >Comment</th> </tr> <td style="width: 100px; border-top: 0px; border-right: 0px;" align="right" >$pMJpKG</td> <td style="width: 100px; border-top: 0px;" align="right" >$pKWHpKG</td> <td style="width: 100px; border-top: 0px; border-right: 0px;" align="right" >$pMJpL</td> <td style="width: 100px; border-top: 0px;" align="right" >$pKWHpL</td> </tr> MAT_TABLE_HEAD; for($l_mat=$a_mat_from;$l_mat<=$a_mat_to;$l_mat++) { if( isset($material_name[$l_mat]) ) { print_material_table_row($l_mat); } } echo <<< MAT_TABLE_TAIL </table> MAT_TABLE_TAIL; } function set_expt($a_expt,$a_name,$a_abrv,$a_power,$a_time,$a_cmnt) { include(INCLUDE_GLOBALS); $g_expt = $a_expt; if($expt_max < $a_expt ) { $expt_max = $a_expt; } $expt_name[$a_expt] = $a_name; $expt_abrv[$a_expt] = $a_abrv; $expt_power[$a_expt] = $a_power; $expt_time[$a_expt] = $a_time; $expt_comment[$a_expt] = $a_cmnt; $expt_sec_max[$a_expt] = 0; $expt_sec_from[$a_expt] = 999999999; $expt_sec_to[$a_expt] = -999999999; } function set_expt_sec($a_sec,$a_mat) { include(INCLUDE_GLOBALS); $l_sec = ++$expt_sec_max[$g_expt]; $expt_sec[$g_expt][$l_sec] = $a_sec; $expt_mat[$g_expt][$l_sec] = $a_mat; if ( $expt_sec_from[$g_expt] < $l_sec ) { $expt_sec_from[$g_expt] = $l_sec; } if ( $expt_sec_to[$g_expt] > $l_sec ) { $expt_sec_to[$g_expt] = $l_sec; } } function print_expt_table_row_v3($a_expt) { include(INCLUDE_GLOBALS); $l_tot_energy = 0; $l_prt_sec_num = 0; for($l_sec_num=1;$l_sec_num<= $expt_sec_max[$a_expt];$l_sec_num++) { $l_mat = $expt_mat[$a_expt][$l_sec_num]; $l_sec = $expt_sec[$a_expt][$l_sec_num]; $l_energy_kwh = $section_volume[$l_sec]*$material_kwh_per_l[$l_mat]; $l_tot_energy += $l_energy_kwh; $l_prt_sec_num++; $l_sec_abrv[$l_prt_sec_num] = $section_abrv[$l_sec]; $l_mat_abrv[$l_prt_sec_num] = $material_abrv[$l_mat]; $l_sec_kwh[$l_prt_sec_num] = print_unit_fmt($l_energy_kwh,$pKWH); } $l_runtime = $l_tot_energy/$expt_power[$a_expt]; if ( $l_runtime <= $expt_time[$a_expt] ) { $time_color = $color_real; $result = "REAL"; } else { $time_color = $color_fake; $result= "FAKE?"; } $l_hrs_expt = print_unit_fmt($expt_time[$a_expt],$pH); $l_hrs_fake = print_unit_fmt($l_runtime,$pH); $l_kw_expt = print_unit_fmt($expt_power[$a_expt],$pKW); $l_kwh_fake = print_unit_fmt($l_tot_energy,$pKWH); echo <<< EXPT_ROW_V3 <tr> <th width="110" rowspan="4" align="left" valign="top">{$expt_abrv[$a_expt]}</th> <th width="70" align="left" style="border-bottom: 0px; border-right: 0px;">Section</th> <td width="70" align="center" style="border-bottom: 0px; border-right: 0px;">{$l_sec_abrv[1]} </td> <td width="70" align="center" style="border-bottom: 0px; border-right: 0px;">{$l_sec_abrv[2]}</td> <td width="70" align="center" style="border-bottom: 0px; border-right: 0px;">{$l_sec_abrv[3]}</td> <th width="70" rowspan="2" valign="top" style="border-bottom: 0px;">Fake<br /> Energy</th> <th width="70" rowspan="2" valign="top" style="border-bottom: 0px; ">Expt<br /> Power</th> <td valign="top" colspan="2" style="background-color:$time_color;">$result</td> </tr> <tr> <th height="19" align="left" style="border-bottom: 0px; border-right: 0px;">Material</th> <td align="center" style="border-bottom: 0px; border-right: 0px;">{$l_mat_abrv[1]}</td> <td align="center" style="border-bottom: 0px; border-right: 0px;">{$l_mat_abrv[2]}</td> <td align="center" style="border-bottom: 0px; border-right: 0px;">{$l_mat_abrv[3]}</td> <th width="65" style="border-bottom: 0px red ; border-right: 0px; background-color:$time_color;">Fake</th> <th width="65" style="border-bottom: 0px; background-color:$time_color;">Expt</th> </tr> <tr> <th align="left" style="border-right: 0px;">Energy</th> <td align="right" style="border-right: 0px;">{$l_sec_kwh[1]}</td> <td align="right" style="border-right: 0px;">{$l_sec_kwh[2]}</td> <td align="right" style="border-right: 0px;">{$l_sec_kwh[3]}</td> <td>$l_kwh_fake</td> <td>$l_kw_expt</td> <td align="right" style="border-right: 0px; border-top: 0px red; background-color:$time_color;">{$l_hrs_fake}</td> <td align="right" style="border-top: 0px; background-color:$time_color;">{$l_hrs_expt}</td> </tr> <tr> <td height="28" colspan="8" align="left" valign="top">$expt_comment[$a_expt]</td> </tr> EXPT_ROW_V3; } function print_expt_table_v3($a_expt_from,$a_expt_to) { include(INCLUDE_GLOBALS); echo <<< EXPT_TABLE_HEAD3 <table width="700" border="1" class="afTable"> EXPT_TABLE_HEAD3; for($l_expt=$a_expt_from;$l_expt<=$a_expt_to;$l_expt++) { if($dbg>3) { printf("<tr><td>EXPT {$l_expt} NAME {$expt_name[$l_expt]} </td></tr>\n"); } if (isset($expt_name[$l_expt]) ){ print_expt_table_row_v3($l_expt); } } echo <<< EXPT_TABLE_TAIL3 </table> EXPT_TABLE_TAIL3; // <tr><td colspan="7">Units<br />Power: kW Energy: kWH Time: Hours Mass: kg Volume : Liters </td></tr> } function print_expt_table_row_v4($a_expt,$bgcolor) { include(INCLUDE_GLOBALS); $l_tot_energy = 0; $l_prt_sec_num = 0; for($l_sec_num=1;$l_sec_num<= $expt_sec_max[$a_expt];$l_sec_num++) { $l_mat = $expt_mat[$a_expt][$l_sec_num]; $l_sec = $expt_sec[$a_expt][$l_sec_num]; $l_energy_kwh = $section_volume[$l_sec]*$material_kwh_per_l[$l_mat]; $l_tot_energy += $l_energy_kwh; $l_prt_sec_num++; $l_sec_abrv[$l_prt_sec_num] = $section_abrv[$l_sec]; $l_mat_abrv[$l_prt_sec_num] = $material_abrv[$l_mat]; $l_sec_kwh[$l_prt_sec_num] = print_unit_fmt($l_energy_kwh,$pKWH); } $l_runtime = $l_tot_energy/$expt_power[$a_expt]; if ( $l_runtime <= $expt_time[$a_expt] ) { $time_color = $color_real; $result = "REAL"; } else { $time_color = $color_fake; $result= "FAKE?"; } $l_hrs_expt = print_unit_fmt($expt_time[$a_expt],$pH); $l_hrs_fake = print_unit_fmt($l_runtime,$pH); $l_kw_expt = print_unit_fmt($expt_power[$a_expt],$pKW); $l_kwh_fake = print_unit_fmt($l_tot_energy,$pKWH); echo <<< EXPT_ROW_V4 <tr style="background-color: $bgcolor;"> <th colspan="8" align="left" valign="top" >{$expt_name[$a_expt]}</th> </tr> <tr style="background-color: $bgcolor;"> <th width="70" align="left" style="border-bottom: 0px; border-right: 0px; ">Section</th> <td width="70" align="center" style="border-bottom: 0px; border-right: 0px;">{$l_sec_abrv[1]} </td> <td width="70" align="center" style="border-bottom: 0px; border-right: 0px;">{$l_sec_abrv[2]}</td> <td width="70" align="center" style="border-bottom: 0px; border-right: 0px;">{$l_sec_abrv[3]}</td> <th width="70" rowspan="2" valign="top" style="border-bottom: 0px;">Fake<br /> Energy</th> <th width="70" rowspan="2" valign="top" style="border-bottom: 0px; ">Expt<br /> Power</th> <td valign="top" colspan="2" style="background-color:$time_color;">$result</td> </tr> <tr style="background-color: $bgcolor;"> <th height="19" align="left" style="border-bottom: 0px; border-right: 0px;">Material</th> <td align="center" style="border-bottom: 0px; border-right: 0px;">{$l_mat_abrv[1]}</td> <td align="center" style="border-bottom: 0px; border-right: 0px;">{$l_mat_abrv[2]}</td> <td align="center" style="border-bottom: 0px; border-right: 0px;">{$l_mat_abrv[3]}</td> <th width="65" style="border-bottom: 0px red ; border-right: 0px; background-color:$time_color;">Fake</th> <th width="65" style="border-bottom: 0px; background-color:$time_color;">Expt</th> </tr> <tr style="background-color: $bgcolor;"> <th align="left" style="border-right: 0px;">Energy</th> <td align="right" style="border-right: 0px;">{$l_sec_kwh[1]}</td> <td align="right" style="border-right: 0px;">{$l_sec_kwh[2]}</td> <td align="right" style="border-right: 0px;">{$l_sec_kwh[3]}</td> <td>$l_kwh_fake</td> <td>$l_kw_expt</td> <td align="right" style="border-right: 0px; border-top: 0px red; background-color:$time_color;">{$l_hrs_fake}</td> <td align="right" style="border-top: 0px; background-color:$time_color;">{$l_hrs_expt}</td> </tr> <tr style="background-color: $bgcolor;"> <td height="28" colspan="8" align="left" valign="top">$expt_comment[$a_expt]</td> </tr> EXPT_ROW_V4; } function print_expt_table_v4($a_expt_from,$a_expt_to,$send_table) { include(INCLUDE_GLOBALS); $bgindx = 0; if($send_table) { echo <<< EXPT_TABLE_HEAD4A <table width="700" border="1" class="afTable"> EXPT_TABLE_HEAD4A; } for($l_expt=$a_expt_from;$l_expt<=$a_expt_to;$l_expt++) { if (isset($expt_name[$l_expt]) ) { if($send_table) { $bgindx = $bgindx==0?1:0; } if(!$send_table) { echo <<< EXPT_TABLE_HEAD4B <table width="700" border="1" class="afTable" > EXPT_TABLE_HEAD4B; } print_expt_table_row_v4($l_expt,$table_bgcolor[$bgindx]); if(!$send_table) { echo <<< EXPT_TABLE_TAIL4B </table><br /> EXPT_TABLE_TAIL4B; } } } if($send_table) { $bgindx = $bgindx==0?1:0; $bgcolor = $table_bgcolor[$bgindx]; $l_width = "50px"; echo <<< EXPT_TABLE_TAIL4A <tr ><td colspan="10" style="background-color: $bgcolor;"> <span style="display: inline-block; width: $l_width; background-color: $color_fake"; >FAKE?</span> means that the fake could run longer than the experiment, and is NOT eliminated <br /><span style="display: inline-block; width: $l_width; background-color: $color_real"; >REAL</span> means that the fake is ELIMINATED by an experiment, so the device could be REAL </td></tr> </table> <br /> EXPT_TABLE_TAIL4A; } // <tr><td colspan="7">Units<br />Power: kW Energy: kWH Time: Hours Mass: kg Volume : Liters </td></tr> } // used for radioactive materials function set_rad($a_rad,$a_rad_name,$a_rad_abrv,$a_rad_kw_per_kg,$a_rad_kw_per_l,$a_rad_sp_gravity) { include(INCLUDE_GLOBALS); if($rad_max < $a_rad ) { $rad_max = $a_rad; } $rad_name[$a_rad] = $a_rad_name; $rad_abrv[$a_rad] = $a_rad_abrv; $rad_kw_per_l[$a_rad] = $a_rad_kw_per_l; $rad_kw_per_kg[$a_rad] = $a_rad_kw_per_kg; $rad_sp_gravity[$a_rad] = $a_rad_sp_gravity; } function print_rad_table_row($a_rad) { include(INCLUDE_GLOBALS); if($dbg>9) { printf("<br/>DBG rad %d name $s </br>",$a_rad,$rad_name[$a_rad]); } $fmt1 = 'valign="top"'; $fmt2 = 'align="right" valign="top"'; if ( isset($rad_name[$a_rad]) ) { printf("<tr>"); printf("<td %s>%s</td>",$fmt1, $rad_name[$a_rad]); printf("<td %s>%s</td>",$fmt1, $rad_abrv[$a_rad]); printf("<td %s>%6.3f</td>",$fmt2, $rad_kw_per_kg[$a_rad]); printf("<td %s>%6.3f</td>",$fmt2, $rad_kw_per_l[$a_rad]); printf("<td %s>%6.3f</td>",$fmt2, $rad_sp_gravity[$a_rad]); printf("</tr>"); } } function print_rad_table($a_rad_from,$a_rad_to) { include(INCLUDE_GLOBALS); echo <<< RAD_TABLE_HEAD <table width="500" border="1" class="afTable" style="background-color: $table_bgcolor[0];"> <tr> <th width="100" scope="col" valign="top">Material</th> <th width="80" scope="col" valign="top">Abrev</th> <th width="80" scope="col" valign="top">Power<br />by<br />Mass<br>kW/kg</th> <th width="80" scope="col" valign="top">Power<br />by<br />Volume<br>kW/L</th> <th width="80" scope="col" valign="top">Specific<br />gravity</th> </tr> RAD_TABLE_HEAD; for($l_rad=$a_rad_from;$l_rad<=$a_rad_to;$l_rad++) { if( isset($rad_name[$l_rad]) ) { print_rad_table_row($l_rad); } } echo <<< RAD_TABLE_TAIL </table> RAD_TABLE_TAIL; } function set_sph($index,$mat,$sph,$tmax,$tmin,$cmt) { include(INCLUDE_GLOBALS); $sph_material[$index] = $mat; $sph_sph[$index] = $sph; $sph_tmax[$index] = $tmax; $sph_tmin[$index] = $tmin; $sph_comment[$index] = $cmt; $sph_mjL[$index] = $sph * ($tmax - $tmin) * 1000 / 1000000 ; // *1000 :cc/L /100000 : j to MJ } function print_sph_table($sph_from,$sph_to) { include(INCLUDE_GLOBALS); echo <<< HEAT_SINK_END1 <table width="474" border="1" style="background-color: $table_bgcolor[0];"> <tr> <th width="65">Material </th> <th width="78">Specific<br /> Heat</th> <th width="103">Maximum<br /> Temperature</th> <th width="103">Minimum<br /> Temperature</th> <th width="103">MJ/<br /> Liter</th> <th width="210">Comments</th> </tr> HEAT_SINK_END1; for($sph= $sph_from;$sph<=$sph_to;$sph++) { echo <<< HEAT_SINK_ROW <tr> <td>$sph_material[$sph]</td> <td>$sph_sph[$sph]</td> <td>$sph_tmax[$sph]</td> <td>$sph_tmin[$sph]</td> <td>$sph_mjL[$sph]</td> <td>$sph_comment[$sph]</td> </tr> HEAT_SINK_ROW; } echo <<< HEAT_SINK_END2 </table> HEAT_SINK_END2; } ?>
Set Values: fake_rossi_ecat_setvalues_v311.php
<?php // php energy calculator $color_real = "#66ff66"; $color_fake = "#ff6666"; // alternating colors for dense tables $table_bgcolor[0] = "#F0F0F0"; $table_bgcolor[1] = "#E0E0E0"; $unknown_val = 999; // sections define('AF_C',1); define('AF_H',2); define('AF_V',3); define('AF_R',4); define('AF_RCH',5); define('AF_DEMO',5); $mat_num = 0; $rad_num = 0; define('RAD_HF178',++$rad_num); define('RAD_PU238',++$rad_num); function set_ecat_values_031() { include(INCLUDE_GLOBALS); // sections VOL-MASS set_section(AF_C,"Control Box","Ctrl",60,7); set_section(AF_H,"Horizontal Arm","Horz",22,0); set_section(AF_V,"Vertical Arm","Vert",9,0); set_section(AF_R,"Reactor","React",0.5*$section_volume[AF_H],30); set_section(AF_RCH,"Reactor Chamber","Chamber",1,0); set_section(AF_DEMO1,"Section Name 1","SEC-1",12,11); set_section(AF_DEMO2,"Section Name 2","SEC-2",22,21); set_section(AF_DEMO3,"Section Name 3","SEC-3",32,31); // materials mass,vol, sp-heat $mjkg_h = 143; $mjL_h = 5.6; $mjkg_b = 58.9; $mjL_b = 137.8; define('MAT_NONE',++$mat_num); set_material(MAT_NONE,"None","-",0,0,0,""); define('MAT_BAT_START',$mat_num+1); define('MAT_LEAD_BAT',++$mat_num); set_material(MAT_LEAD_BAT,"Lead-Acid Batteries","Lead B",0.14,0.36,0,""); define('MAT_LI_ION_BAT',++$mat_num); set_material(MAT_LI_ION_BAT,"Lithium-Ion Batteries","L-i B",0.72,3.6,0,""); define('MAT_BAT_FIN',$mat_num); define('MAT_FC_START',$mat_num+1); define('MAT_CHA_FC',++$mat_num); set_material(MAT_CHA_FC,"Compressed Hydrogen/External Air Fuel Cell","CH/Air-FC",$mjkg_h,$mjL_h,0,""); define('MAT_LHA_FC',++$mat_num); set_material(MAT_LHA_FC,"Liquid Hydrogen/External Air Fuel Cell","LH/Air-FC",143,10.1,0,""); define('MAT_CHCO_FC',++$mat_num); set_material(MAT_CHCO_FC,"Compressed Hydrogen/Compressed Oxygen Fuel Cell","CH/CO-FC",$mab_a_mfac['CH-CO']*$mjkg_h,$mab_a_vfac['CH-CO']*$mjL_h,0,""); define('MAT_LHLO_FC',++$mat_num); set_material(MAT_LHLO_FC,"Liquid Hydrogen/Liquid Oxygen Fuel Cell","LH/LO-FC",$mab_a_mfac['LH-LO']*$mjkg_h,$mab_a_vfac['LH-LO']*$mjL_h,0,""); define('MAT_FC_FIN',$mat_num); define('MAT_HO_START',$mat_num+1); define('MAT_CHA',++$mat_num); set_material(MAT_CHA,"Compressed Hydrogen/External Air","CH/Air",$mjkg_h,$mjL_h,0,""); define('MAT_LHA',++$mat_num); set_material(MAT_LHA,"Liquid Hydrogen/External Air","LH/Air",143,10.1,0,""); define('MAT_CHCO',++$mat_num); set_material(MAT_CHCO,"Compressed Hydrogen/Compressed Oxygen","CH/CO",$mab_a_mfac['CH-CO']*$mjkg_h,$mab_a_vfac['CH-CO']*$mjL_h,0,""); define('MAT_LHLO',++$mat_num); set_material(MAT_LHLO,"Liquid Hydrogen/Liquid Oxygen","LH/LO",$mab_a_mfac['LH-LO']*$mjkg_h,$mab_a_vfac['LH-LO']*$mjL_h,0,""); define('MAT_HO_FIN',$mat_num); define('MAT_BO_START',$mat_num+1); define('MAT_BO_AIR',++$mat_num); set_material(MAT_BO_AIR,"Boron/External Air","B/Air",$mjkg_b,$mjL_b,0,""); define('MAT_BO_CO',++$mat_num); set_material(MAT_BO_CO,"Boron/Compressed Oxygen","B/CO",$mab_a_mfac['B-CO']*$mjkg_b,$mab_a_vfac['B-CO']*$mjL_b,0,""); define('MAT_BO_LO',++$mat_num); set_material(MAT_BO_LO,"Boron/Liquid Oxygen","B/LO",$mab_a_mfac['B-LO']*$mjkg_b,$mab_a_vfac['B-LO']*$mjL_b,0,""); define('MAT_BO_FIN',$mat_num); define('MAT_DSL_AIR',++$mat_num); set_material(MAT_DSL_AIR,"Diesel/Air","Dsl/Air",46.2,37.3,0,""); define('MAT_MG_H2O',++$mat_num); set_material(MAT_MG_H2O,"Magnesium/Steam","Mg/Steam",24.8837,43.24799,0,""); // define('MAT_BO_H2O',++$mat_num); // set_material(MAT_BO_H2O,"Boron/Steam + Hydrogen/Air","B/St + H/Air",2*58.9,2*137.8,0,""); define('MAT_DEMO',++$mat_num); set_material(MAT_DEMO,"Material 1","MAT-1",12.3,45.6,0,""); set_rad(RAD_HF178,"Haffnium 178","Hf178",$unknown_val,0,0); set_rad(RAD_PU238,"Plutonium 238","Pu238",0.5,0,0); define('FLOW_JAN',17.5); // L/h define('FLOW_FEB',3000); $sph_max = 0; $tmin = 14; define('SPH_START',$sph_max+1); define('SPH_H2O',++$sph_max); set_sph(SPH_H2O,"Water",4.21,100,$tmin,"Boils"); define('SPH_BE',++$sph_max); set_sph(SPH_BE,"Be",3.38,1287,$tmin,"Melts. Poisonous"); define('SPH_IRON',++$sph_max); set_sph(SPH_IRON,"Iron",3.53,1538,$tmin,"Melts"); define('SPH_LEAD',++$sph_max); set_sph(SPH_LEAD,"Lead",1.44,327.46,$tmin,"Melts"); define('SPH_FIN',$sph_max); define('MAT_SPH_START',$mat_num+1); define('MAT_SPH_H2O',++$mat_num); set_material(MAT_SPH_H2O,"SPH " . $sph_material[SPH_H2O],"SPH " . $sph_material[SPH_H2O],$unknown_value,$sph_mjL[SPH_H2O],0,"From SPH Table"); define('MAT_SPH_BE',++$mat_num); set_material(MAT_SPH_BE,"SPH " . $sph_material[SPH_BE],"SPH " . $sph_material[SPH_BE],$unknown_value,$sph_mjL[SPH_BE],0,"From SPH Table"); define('MAT_SPH_IRON',++$mat_num); set_material(MAT_SPH_IRON,"SPH " . $sph_material[SPH_IRON],"SPH " . $sph_material[SPH_IRON],$unknown_value,$sph_mjL[SPH_IRON],0,"From SPH Table"); define('MAT_SPH_LEAD',++$mat_num); set_material(MAT_SPH_LEAD,"SPH " . $sph_material[SPH_LEAD],"SPH " . $sph_material[SPH_LEAD],$unknown_value,$sph_mjL[SPH_LEAD],0,"From SPH Table"); define('MAT_SPH_FIN',$mat_num); $expt_num = 0; $cmt_a = " with ALL sections"; $cmt_b = " with MAIN unit -- excluding Control Box"; $cmt_c = " with HORIZONTAL unit"; $cmt_d = " with ESTIMATED reactor volume"; $cmt_e = " with reactor CHAMBER volume"; $cmt_jan_a = "January" . $cmt_a; $cmt_jan_b = "January" . $cmt_b; $cmt_feb_a = "February" . $cmt_a; $cmt_feb_b = "February" . $cmt_b; $cmt_feb_c = "February" . $cmt_c; $cmt_feb_d = "February" . $cmt_d; $cmt_feb_e = "February" . $cmt_e; // experiments function set_expt_multi($a_ctrl,$a_main) { include(INCLUDE_GLOBALS); if($dbg>3) echo "set_expt_multi($a_ctrl,$a_main) expt $expt_num"; $cmt_a = " with ALL sections"; $cmt_b = " with MAIN unit -- excluding Control Box"; $cmt_c = " with HORIZONTAL unit"; $cmt_d = " with ESTIMATED reactor volume"; $cmt_e = " with reactor CHAMBER volume"; $cmt_jan_a = "January" . $cmt_a; $cmt_jan_b = "January" . $cmt_b; $cmt_feb_a = "February" . $cmt_a; $cmt_feb_b = "February" . $cmt_b; $cmt_feb_c = "February" . $cmt_c; $cmt_feb_d = "February" . $cmt_d; $cmt_feb_e = "February" . $cmt_e; set_expt(++$expt_num,"Control Box: $material_name[$a_ctrl] Main Unit: $material_name[$a_main]","All Secs Li/i",10,0.5,$cmt_jan_a); set_expt_sec(AF_C,$a_ctrl); // expt number is in a global set_expt_sec(AF_H,$a_main); set_expt_sec(AF_V,$a_main); set_expt(++$expt_num,"Main Unit: $material_name[$a_main]","Main Secs Li/i",10,0.5,$cmt_jan_b); set_expt_sec(AF_C,MAT_NONE); // expt number is in a global set_expt_sec(AF_H,$a_main); set_expt_sec(AF_V,$a_main); set_expt(++$expt_num,"Horizontal Arm: $material_name[$a_main]","Main Secs Li/i",16,18,$cmt_feb_c); set_expt_sec(AF_C,MAT_NONE); set_expt_sec(AF_H,$a_main); set_expt_sec(AF_V,MAT_NONE); set_expt(++$expt_num,"Reactor: $material_name[$a_main]","React Sec Li/i",16,18,$cmt_feb_d); set_expt_sec(AF_C,MAT_NONE); set_expt_sec(AF_R,$a_main); set_expt_sec(AF_V,MAT_NONE); set_expt(++$expt_num,"Reactor chamber: $material_name[$a_main]","React Sec Li/i",16,18,$cmt_feb_e); set_expt_sec(AF_C,MAT_NONE); set_expt_sec(AF_RCH,$a_main); set_expt_sec(AF_V,MAT_NONE); if($dbg>3) echo "... expt $expt_num <br />"; } define('EXPT_MULTI_START',$expt_num+1); set_expt_multi(MAT_LI_ION_BAT,MAT_LHA); define('EXPT_MULTI_FIN',$expt_num); define('EXPT_BAT_START',$expt_num+1); set_expt_multi(MAT_LI_ION_BAT,MAT_LI_ION_BAT); define('EXPT_BAT_FIN',$expt_num); // experiments define('EXPT_LHA_START',$expt_num+1); set_expt_multi(MAT_LHA_FC,MAT_LHA); define('EXPT_LHA_FIN',$expt_num); // experiments define('EXPT_CHA_START',$expt_num+1); set_expt_multi(MAT_CHA_FC,MAT_CHA); define('EXPT_CHA_FIN',$expt_num); define('EXPT_CHCO_START',$expt_num+1); set_expt_multi(MAT_CHCO_FC,MAT_CHCO); define('EXPT_CHCO_FIN',$expt_num); define('EXPT_LHLO_START',$expt_num+1); set_expt_multi(MAT_LHLO_FC,MAT_LHLO); define('EXPT_LHLO_FIN',$expt_num); // experiments define('EXPT_BOA_START',$expt_num+1); set_expt_multi(MAT_LHA_FC,MAT_BO_AIR); define('EXPT_BOA_FIN',$expt_num); // experiments define('EXPT_BOCO_START',$expt_num+1); set_expt_multi(MAT_LHA_FC,MAT_BO_CO); define('EXPT_BOCO_FIN',$expt_num); // experiments define('EXPT_BOLO_START',$expt_num+1); set_expt_multi(MAT_LHA_FC,MAT_BO_LO); define('EXPT_BOLO_FIN',$expt_num); // experiments define('EXPT_MGS_START',$expt_num+1); set_expt_multi(MAT_LHA_FC,MAT_MG_H2O); define('EXPT_MGS_FIN',$expt_num); // experiments define('EXPT_DFA_START',$expt_num+1); set_expt_multi(MAT_LHA_FC,MAT_DSL_AIR); define('EXPT_DFA_FIN',$expt_num); define('EXPT_SPHH2O_START',$expt_num+1); set_expt_multi(MAT_LHA_FC,MAT_SPH_H2O); define('EXPT_SPHH2O_FIN',$expt_num); define('EXPT_SPHBE_START',$expt_num+1); set_expt_multi(MAT_LHA_FC,MAT_SPH_BE); define('EXPT_SPHBE_FIN',$expt_num); define('EXPT_SPHIRON_START',$expt_num+1); set_expt_multi(MAT_LHA_FC,MAT_SPH_IRON); define('EXPT_SPHIRON_FIN',$expt_num); define('EXPT_SPHLEAD_START',$expt_num+1); set_expt_multi(MAT_LHA_FC,MAT_SPH_LEAD); define('EXPT_SPHLEAD_FIN',$expt_num); // experiments define('EXPT_JAN_DEMO_ALL',++$expt_num); define('EXPT_DEMO_START',$expt_num); set_expt(EXPT_JAN_DEMO_ALL,"Experiment 1 : All sections contain MAT-1","All sections contain MAT-1",10,0.5,"Fake can run longer than the experiment: fake is NOT eliminated"); set_expt_sec(AF_DEMO1,MAT_DEMO); set_expt_sec(AF_DEMO2,MAT_DEMO); set_expt_sec(AF_DEMO3,MAT_DEMO); define('EXPT_FEB_DEMO_ALL',++$expt_num); set_expt(EXPT_FEB_DEMO_ALL,"Experiment 2 : Only SEC-2 contain MAT-1","Only SEC-2 contains MAT-1",16,18,"Fake cannot run as long as the experiment -- Fake is eliminated"); set_expt_sec(AF_DEMO1,MAT_NONE); set_expt_sec(AF_DEMO2,MAT_DEMO); set_expt_sec(AF_DEMO3,MAT_NONE); define('EXPT_DEMO_FIN',$expt_num); } ?>
Set 'mole' Values: fake_rossi_ecat_setmoles_v311.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <?php // atomic weight calc test section function calc_moles() { include(INCLUDE_GLOBALS); $am['B'] = 10.811; $dkgL['B'] = 2.52; // 2.34? g/cc == kg/L $am['H'] = 1.0071; $am['H2'] = 2*$am['H']; $dkgL['H2'] = 0.08988 * 0.001 ; // wiki 0.08988 g/L ==> kg/L $dkgL['H2-700B'] = $dkgL['H2'] * (5.6/0.01079); // wiki-ED $dkgL['H2-L'] = 0.07099; // wiki 0.07099 g/cm3 = kg/L // $dkgL['H2-L']= 67.8*0.001; // kg/m3 ==> kg/L $am['O'] = 15.999; $am['O2'] = 2*15.999; $dkgL['O2'] = 1.429 * 0.001 ; // wiki 1.429 g/L == kg/L $dkgL['O2-700B'] = $dkgL['O2'] * $dkgL['H2-700B'] / $dkgL['H2']; // ratio H2 $dkgL['O2-L'] = 1.141; // 1.141 g·cm-3 == kg/L $am['Al'] = 26.98153868; $dkgL['Al'] = 2.698; // g/cc == kg/L $am['Mg'] = 24.3050; $dkgL['Mg'] = 1.738; // g/cc == kg/L $dkgL['MgO'] = 3.58; // g/cc == kg/L $l_formula = "2 {$paH2} + {$paO2} ===> 2 {$paH2O}"; calc_moles_ab('CH-CO','Compressed Hydrogen/Compressed Oxygen',$l_formula,'Compressed H2','H2',$paH2,2,$dkgL['H2-700B'],'Compressed O2','O2',$paO2,1,$dkgL['O2-700B']); $l_formula = "2 {$paH2} + {$paO2} ===> 2 {$paH2O}"; calc_moles_ab('LH-LO','Liquid Hydrogen/Liquid Oxygen',$l_formula,'Liquid H2','H2',$paH2,2,$dkgL['H2-L'],'Liquid O2','O2',$paO2,1,$dkgL['O2-L']); $l_formula = "4 {$paB} + 3 {$paO2} ===> 2 {$paB2}{$paO3}"; calc_moles_ab('B-CO','Boron/Compressed Oxygen',$l_formula,'Solid B','B',$paB,4,$dkgL['B'],'Compressed O2','O2',$paO2,3,$dkgL['O2-700B']); $l_formula = "4 {$paB} + 3 {$paO2} ===> 2 {$paB2}{$paO3}"; calc_moles_ab('B-LO','Boron/Liquid Oxygen',$l_formula,'Solid B','B',$paB,4,$dkgL['B'],'Liquid O2','O2',$paO2,3,$dkgL['O2-L']); $l_formula = "{$paMg} + {$paH2O} ===> {$paH2}"; calc_moles_ab('MG-H2O','Magnesium/Steam',$l_formula,'Solid Mg','Mg',$paMg,1,$dkgL['Mg'],'H2O Steam','H2O',$paH2,1,$dkgL['H2']); } function calc_moles_ab($ab,$ab_title,$ab_formula,$a_name,$a_elt,$a_pa,$a_num,$a_dens,$b_name,$b_elt,$b_pa,$b_num,$b_dens) { include(INCLUDE_GLOBALS); $mab_ab_title[$ab] = $ab_title; $mab_ab_formula[$ab] = $ab_formula; $mab_a_name[$ab] = $a_name; $mab_b_name[$ab] = $b_name; $mab_a_pa[$ab] = $a_pa; $mab_b_pa[$ab] = $b_pa; $mab_a_num[$ab] = $a_num; $mab_b_num[$ab] = $b_num; $mab_a_elt[$ab] = $a_elt; $mab_b_elt[$ab] = $b_elt; $mab_a_m[$ab] = $a_num * $am[$a_elt]; $mab_b_m[$ab] = $b_num * $am[$b_elt]; $mab_tot_m[$ab] = $mab_a_m[$ab] + $mab_b_m[$ab]; $mab_a_mfac[$ab] = $mab_a_m[$ab]/$mab_tot_m[$ab]; $mab_b_mfac[$ab] = $mab_b_m[$ab]/$mab_tot_m[$ab]; $mab_a_dens[$ab] = $a_dens; $mab_b_dens[$ab] = $b_dens; $mab_a_v[$ab] = $mab_a_m[$ab] / $a_dens; $mab_b_v[$ab] = $mab_b_m[$ab] / $b_dens; $mab_tot_v[$ab] = $mab_a_v[$ab] + $mab_b_v[$ab]; $mab_a_vfac[$ab] = $mab_a_v[$ab]/$mab_tot_v[$ab]; $mab_b_vfac[$ab] = $mab_b_v[$ab]/$mab_tot_v[$ab]; } function print_moles_ab($ab) { include(INCLUDE_GLOBALS); if($dbg>3) echo "Title: AB[$ab] $mab_ab_title[$ab]"; echo <<< PRINT_MOLES_AB <pre> Formula: $mab_ab_formula[$ab] $mab_a_pa[$ab] ($mab_a_name[$ab]) $mab_b_pa[$ab] ($mab_b_name[$ab]) $mab_a_pa[$ab] mass : $mab_a_num[$ab] * {$am[$mab_a_elt[$ab]]} = $mab_a_m[$ab] $mab_b_pa[$ab] mass : $mab_b_num[$ab] * {$am[$mab_b_elt[$ab]]} = $mab_b_m[$ab] Total mass : $mab_tot_m[$ab] $mab_a_pa[$ab] mass fac : $mab_a_m[$ab] / $mab_tot_m[$ab] = $mab_a_mfac[$ab] $mab_b_pa[$ab] mass fac : $mab_b_m[$ab] / $mab_tot_m[$ab] = $mab_b_mfac[$ab] Volume : mass / density $mab_a_pa[$ab] volume : $mab_a_m[$ab] / $mab_a_dens[$ab] = $mab_a_v[$ab] $mab_b_pa[$ab] volume : $mab_b_m[$ab] / $mab_b_dens[$ab] = $mab_b_v[$ab] Total vol : $mab_tot_v[$ab] $mab_a_pa[$ab] vol fac : $mab_a_v[$ab]/$mab_tot_v[$ab] = $mab_a_vfac[$ab] $mab_b_pa[$ab] vol fac : $mab_b_v[$ab]/$mab_tot_v[$ab] = $mab_b_vfac[$ab] </pre> PRINT_MOLES_AB; } function calc_moles_mg_steam() { include(INCLUDE_GLOBALS); $kJmolMg = 360 + 285.8 - 41; $kJkGMG = $kJmolMg / $am['Mg'] ; $MJkGMG = $kJkGMG ; $MJpLMG = $MJkGMG * $dkgL['Mg']; $kJmolH2 = 285.8; // to water $kJkGH2 = $kJmolH2 / $am['H2'] ; // OK $MJkGH2 = $kJkGH2 ; // OK $MJpLH2 = $MJkGH2 * $dkgL['H2-L']; } function print_moles_mg_steam() { include(INCLUDE_GLOBALS); echo <<< MG_STEAM_1 <p><a href="http://www.chemguide.co.uk/inorganic/group2/reacth2o.html" target="_blank">Reactions of Metals and Water</a></p> <p>Magnesium combines with STEAM to produce Magnesium Oxide and Hydrogen. </p> <p> <pre> MG_STEAM_1; echo pATOM("Mg",1) . " + " . pATOM("H",2) . pATOM("O",1); echo " ==>" ; echo pATOM("Mg",1) . pATOM("O",1) . " + " . pATOM("H",2) . " dH -360 <em>kJ/mol</em></p>"; echo <<< MG_STEAM_2 <p>The hydrogen can then be burned with Air or Oxygen to produce water. <br /><a href="http://chemistry.about.com/od/physicalchemistrythermo/a/thermochemlaws.htm" target="_blank">H2O</a>: H2 (g) + 1/2 O2 (g) ==> H2O (l); dH = -285.8 <em>kJ/mol</em> <br /> (Remove <a href="http://www.sciencegeek.net/Chemistry/taters/Unit7Thermochemical.htm" target="_blank">Latent Heat</a> 41 kJ/<em>mol</em> = -285.8 + 41 <em>kJ/mol</em> )</p> MG_STEAM_2; echo "Check math by comparing liquid H /External O2"; echo "<br />Total (from H2) is " . pV(-$kJmolH2) . " <em>kJ/mol</em>."; echo "<br />Atomic weight: " . pV($am['H2']) . " <em>g/mol</em>."; echo "<br />Density (L): " . pV($dkgL['H2-L']) . "<em> g/cm3</em>"; echo "<br />Energy by mass : (" . pV($kJmolH2) . " <em>kJ/mol</em>)/(" . pV($am['H2']) . "<em>g/mol</em> )"; echo "<br /> = " . pV($kJkGH2) . " <em>kJ/g</em> = " . pV($MJkGH2) . " <em>MJ/kg</em>"; echo "<br />Energy by volume: " . pV($MJpLH2) . "<em> MJ/L</em>"; echo "<br />"; echo "<br />Comparison to Wiki values<br /><br />"; $lp_MJkGH2_calc = sprintf("%4.3f",$MJkGH2); $lp_MJkGH2_wiki = sprintf("%4.3f",$material_mj_per_kg[MAT_LHA]); $lp_MJkLH2_calc = sprintf("%4.3f",$MJkLH2); $lp_MJkLH2_wiki = sprintf("%4.3f",$material_mj_per_l[MAT_LHA]); echo <<< WATER_TABLE <table width="500" border="1" class="afTable" style="background-color: $table_bgcolor[0];"> <tr> <th scope="col" > </th> <th scope="col" width="200" align="right">Energy by Mass</th> <th scope="col" width="200" align="right">Energy by Volume</th> </tr> <tr> <th scope="row">Wiki</th> <td align="right">$lp_MJkGH2_wiki</td> <td align="right">$lp_MJkLH2_wiki</td> </tr> <tr> <th scope="row">Calculation</th> <td align="right">$lp_MJkGH2_calc</td> <td align="right">$lp_MJkLH2_wiki</td> </tr> </table> WATER_TABLE; $lp_kJmolMg = pV($kJmolMg); $lp_kJkGMG = pV($kJkGMG); $lp_MJkGMG = pV($MJkGMG); $lp_MJpLMG = pV($MJpLMG); echo <<< MG_DENS_1 <br /> Total (from Mg/Steam + H/O) is -{$kJmolMg} <em>kJ/mol</em>. Atomic weight : {$am['Mg']} <em>g/mol</em> Density : {$dkgL['Mg']} <em>g/cm3</em> Energy by mass : ({$lp_kJmolMg} <em>kJ/mol</em>) / ({$am['Mg']} <em>g/mol</em>) = $lp_kJkGMG <em>kJ/g</em> = $lp_MJkGMG <em>MJ/kg </em> Energy by volume : {$lp_MJpLMG } <em>MJ/L</em> </pre> MG_DENS_1; } calc_moles(); calc_moles_mg_steam(); ?>
Print 'mole' Values: fake_rossi_ecat_moles_v311.php
<h1><?php do_level_1(); ?> Calculations</h1> <h2><?php do_level_2(); ?> Wiki Energy Densities</h2> <div class="oneColLiqCtrHdrDiv2"> <p>The Wiki of Energy Densities doesn't have entries for all cases where (for instance) Hydrogen is used with Compressed or Liquid Oxygen.</p> <p>This section calculates how much the "wiki" Energy Densities by Mass and by Volume are reduced if the available space has to be shared between the Hydrogen and Oxygen.</p> <p> </p> <h2><?php do_level_2(); ?> Reference Documents</h2> <div class="oneColLiqCtrHdrDiv2"> <p><a href="http://en.wikipedia.org/wiki/Hydrogen" target="_blank">Wiki : Hydrogen </a>***<br /> <a href="http://en.wikipedia.org/wiki/Oxygen" target="_blank">Wiki: Oxygen</a> ***<br /> </p> <p><a href="http://en.wikipedia.org/wiki/Amount_of_substance" target="_blank">Amount of Substance</a><br /> <a href="http://en.wikipedia.org/wiki/Molar_volume" target="_blank">Molar Volume</a><br /> <a href="http://en.wikipedia.org/wiki/Molar_mass" target="_blank">Molar Mass</a> g/mol</p> <p><a href="http://www.webqc.org/periodictable-Boron-B.html" target="_blank">Periodic Table with Properties</a><br /> <a href="http://en.wikipedia.org/wiki/Liquid_hydrogen" target="_blank">Liquid Hydrogen</a><br /> <a href="http://ie.jrc.ec.europa.eu/publications/scientific_publications/2003/P2003-181=EUR20995EN.pdf" target="_blank">Hydrogen</a><br /> <a href="http://www.sse.gr/NATO/EreunaKaiTexnologiaNATO/2.Fuel_cells_for_land_sea_and_air_vehicles/RTO-TR-AVT-103/TR-AVT-103-06.pdf" target="_blank">Oxygen Storage</a> <br /> <a href="http://www.seasdtc.com/events/2008_conference/downloads/pdf/propulsion_power_generation_and_energy_management/PPEM003_paper.pdf" target="_blank">Hydrogen/LOX storage</a> </p> </div> <h2><?php do_level_2(); ?> Atoms and Molecules</h2> <pre><?php echo <<< HYDR_1 H mass {$am['H']} H2 mass {$am['H2']} Gas Density : {$dkgL['H2']} kg/L Compressed Density : {$dkgL['H2-700B']} kg/L (700 Bar) Liquid Density : {$dkgL['H2-L']} kg/L O mass {$am['O']} O2 mass {$am['O2']} Gas Density : {$dkgL['O2']} kg/L Compressed Density : {$dkgL['O2-700B']} kg/L (700 Bar) Liquid Density : {$dkgL['O2-L']} kg/L B mass {$am['B']} Solid Density : {$dkgL['B']} kg/L HYDR_1; ?></pre> <?php af_feed(); ?> <h2><?php do_level_2(); ?> Compressed hydrogen + Compressed Oxygen</h2> <div class="oneColLiqCtrHdrDiv2"> <?php print_moles_ab('CH-CO'); ?> </div> <h2><?php do_level_2(); ?> Liquid hydrogen + Liquid Oxygen</h2> <div class="oneColLiqCtrHdrDiv2"> <?php print_moles_ab('LH-LO'); ?> </div> <?php af_feed(); ?> <h2><?php do_level_2(); ?> Boron + Compressed Oxygen</h2> <div class="oneColLiqCtrHdrDiv2"> <?php print_moles_ab('B-CO'); ?> </div> <h2><?php do_level_2(); ?> Boron + Liquid Oxygen</h2> <div class="oneColLiqCtrHdrDiv2"> <?php print_moles_ab('B-LO'); ?> </div> <?php af_feed(); ?> <h2><?php do_level_2(); ?> Magnesium and Steam</h2> <div class="oneColLiqCtrHdrDiv2"> <?php print_moles_mg_steam(); ?> </div> <h2><?php do_level_2(); ?> Embedded Calculations</h2> <div class="oneColLiqCtrHdrDiv2"> <p>All calculations in this document are performed with the PHP programming language which generates the document.</p> <p><a href="http://lenr.qumbu.com/fake_rossi_source_v311.php">Partial PHP Source Code</a></p> </div> </div>
The body of the report also contains PHP function calls and expressions.
Samples of these calls are in
Function Calls: fake_rossi_ecat_calctest_v305.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <?php $version_num = 3.05; $version = "Version " . $version_num . ", March 18, 2011"; $title = "Calculator Test Page" ;?> <?php include_once("fake_rossi_ecat_includes_v305.php"); ?> <?php include_once("fake_rossi_ecat_v1_email.php"); ?> <?php include_once("fake_rossi_ecat_calc_v305.php"); ?> </head> <body class="oneColLiqCtrHdr"> <div id="container"> <div id="header"> <h1>How to Make and Detect a FAKE Rossi/Focardi eCAT LENR<br />Energy Calculator Test Page</h1> <p>Alan Fletcher <!-- end #header --> <br /> Version 305, March 18, 2011<br /> </p> </div> <div id="mainContent"> <h1><?php do_level_1(); ?> Calculator Test</h1> <p>Convert <?php printf("1 MJ = %5.4f KWH",AF_MJ2KWH); ?> Obtained from : <a href="http://www.convertworld.com/en/energy/kWh.html" target="_blank">convertworld.com</a> <!-- end #mainContent --> </p> <pre><?php set_section(AF_C,"Control Box","Ctrl",60,123); if($dbg>9) { print_section(AF_C); echo "<br />"; } set_section(AF_H,"Horizontal Arm","Horz",21,345); if ($dbg> 9 ) { print_section(AF_H); echo "<br />"; } set_section(AF_V,"Vertical Arm","Vert",9,34.56); if($dbg > 9) { print_section(AF_V); } echo "<br />"; set_section(AF_R,"Reactor","React",1,0); if($dbg > 9) { print_section(AF_R); } ?></pre> NOTE: These are just <strong>TEST</strong> values <p/>Sections: <p> <?php print_section_table(1,9); ?> </p> <pre><?php set_material(1,"None","-",0,0,0); set_material(2,"Lithium Ion Battery","Li/i Bat",12,34,56); set_material(3,"Compressed Hydrogen + Air Fuel Cell","H/Air FC",98,76,54); if($dbg>9) { print_material(1); echo "<br />"; print_material(2); echo "<br />"; print_material(3); echo "<br />"; print_material(4); echo "<br />"; } ?></pre> Materials <p> <?php print_material_table(1,$material_max); ?> <p>Experiments :</p> <?php IF($dbg>0) ECHO "<p>(Some debug switches are turned on )</p>\n"; set_expt(1,"Experiment 1","Expt-1",10,8,"January"); set_expt_sec(AF_C,1); set_expt_sec(AF_H,2); set_expt_sec(AF_V,3); if($dbg>3) { print_expt(1); } set_expt(3,"Experiment 2","Expt-2",16,18,"February"); set_expt_sec(AF_C,1); set_expt_sec(AF_R,2); set_expt_sec(AF_V,1); if($dbg>3) { print_expt(3); } ?> ?> <br />Version 4 <?php print_expt_table_v4(1,$expt_max,false); ?> <p>GREEN if ROSSI is confirmed, RED if it COULD be a fake.</p> <p> </p> </div> <div id="footer"> <p>Version 1, March 5, 2011 <?php send_email(); ?> <a href="http://lenr.qumbu.com/" target="_blank">Home</a></p> <!-- end #footer --></div> <!-- end #container --></div> </body> </html>
Disclaimer: Like Topsy, the programming aspects of this paper just "growed".