Energy.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Measure
  17. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  18. * @license http://framework.zend.com/license/new-bsd New BSD License
  19. * @version $Id$
  20. */
  21. /**
  22. * Implement needed classes
  23. */
  24. #require_once 'Zend/Measure/Abstract.php';
  25. #require_once 'Zend/Locale.php';
  26. /**
  27. * Class for handling energy conversions
  28. *
  29. * @category Zend
  30. * @package Zend_Measure
  31. * @subpackage Zend_Measure_Energy
  32. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  33. * @license http://framework.zend.com/license/new-bsd New BSD License
  34. */
  35. class Zend_Measure_Energy extends Zend_Measure_Abstract
  36. {
  37. const STANDARD = 'JOULE';
  38. const ATTOJOULE = 'ATTOJOULE';
  39. const BOARD_OF_TRADE_UNIT = 'BOARD_OF_TRADE_UNIT';
  40. const BTU = 'BTU';
  41. const BTU_THERMOCHEMICAL = 'BTU_TERMOCHEMICAL';
  42. const CALORIE = 'CALORIE';
  43. const CALORIE_15C = 'CALORIE_15C';
  44. const CALORIE_NUTRITIONAL = 'CALORIE_NUTRITIONAL';
  45. const CALORIE_THERMOCHEMICAL = 'CALORIE_THERMOCHEMICAL';
  46. const CELSIUS_HEAT_UNIT = 'CELSIUS_HEAT_UNIT';
  47. const CENTIJOULE = 'CENTIJOULE';
  48. const CHEVAL_VAPEUR_HEURE = 'CHEVAL_VAPEUR_HEURE';
  49. const DECIJOULE = 'DECIJOULE';
  50. const DEKAJOULE = 'DEKAJOULE';
  51. const DEKAWATT_HOUR = 'DEKAWATT_HOUR';
  52. const DEKATHERM = 'DEKATHERM';
  53. const ELECTRONVOLT = 'ELECTRONVOLT';
  54. const ERG = 'ERG';
  55. const EXAJOULE = 'EXAJOULE';
  56. const EXAWATT_HOUR = 'EXAWATT_HOUR';
  57. const FEMTOJOULE = 'FEMTOJOULE';
  58. const FOOT_POUND = 'FOOT_POUND';
  59. const FOOT_POUNDAL = 'FOOT_POUNDAL';
  60. const GALLON_UK_AUTOMOTIVE = 'GALLON_UK_AUTOMOTIVE';
  61. const GALLON_US_AUTOMOTIVE = 'GALLON_US_AUTOMOTIVE';
  62. const GALLON_UK_AVIATION = 'GALLON_UK_AVIATION';
  63. const GALLON_US_AVIATION = 'GALLON_US_AVIATION';
  64. const GALLON_UK_DIESEL = 'GALLON_UK_DIESEL';
  65. const GALLON_US_DIESEL = 'GALLON_US_DIESEL';
  66. const GALLON_UK_DISTILATE = 'GALLON_UK_DISTILATE';
  67. const GALLON_US_DISTILATE = 'GALLON_US_DISTILATE';
  68. const GALLON_UK_KEROSINE_JET = 'GALLON_UK_KEROSINE_JET';
  69. const GALLON_US_KEROSINE_JET = 'GALLON_US_KEROSINE_JET';
  70. const GALLON_UK_LPG = 'GALLON_UK_LPG';
  71. const GALLON_US_LPG = 'GALLON_US_LPG';
  72. const GALLON_UK_NAPHTA = 'GALLON_UK_NAPHTA';
  73. const GALLON_US_NAPHTA = 'GALLON_US_NAPHTA';
  74. const GALLON_UK_KEROSENE = 'GALLON_UK_KEROSINE';
  75. const GALLON_US_KEROSENE = 'GALLON_US_KEROSINE';
  76. const GALLON_UK_RESIDUAL = 'GALLON_UK_RESIDUAL';
  77. const GALLON_US_RESIDUAL = 'GALLON_US_RESIDUAL';
  78. const GIGAELECTRONVOLT = 'GIGAELECTRONVOLT';
  79. const GIGACALORIE = 'GIGACALORIE';
  80. const GIGACALORIE_15C = 'GIGACALORIE_15C';
  81. const GIGAJOULE = 'GIGAJOULE';
  82. const GIGAWATT_HOUR = 'GIGAWATT_HOUR';
  83. const GRAM_CALORIE = 'GRAM_CALORIE';
  84. const HARTREE = 'HARTREE';
  85. const HECTOJOULE = 'HECTOJOULE';
  86. const HECTOWATT_HOUR = 'HECTOWATT_HOUR';
  87. const HORSEPOWER_HOUR = 'HORSEPOWER_HOUR';
  88. const HUNDRED_CUBIC_FOOT_GAS = 'HUNDRED_CUBIC_FOOT_GAS';
  89. const INCH_OUNCE = 'INCH_OUNCE';
  90. const INCH_POUND = 'INCH_POUND';
  91. const JOULE = 'JOULE';
  92. const KILOCALORIE_15C = 'KILOCALORIE_15C';
  93. const KILOCALORIE = 'KILOCALORIE';
  94. const KILOCALORIE_THERMOCHEMICAL = 'KILOCALORIE_THERMOCHEMICAL';
  95. const KILOELECTRONVOLT = 'KILOELECTRONVOLT';
  96. const KILOGRAM_CALORIE = 'KILOGRAM_CALORIE';
  97. const KILOGRAM_FORCE_METER = 'KILOGRAM_FORCE_METER';
  98. const KILOJOULE = 'KILOJOULE';
  99. const KILOPOND_METER = 'KILOPOND_METER';
  100. const KILOTON = 'KILOTON';
  101. const KILOWATT_HOUR = 'KILOWATT_HOUR';
  102. const LITER_ATMOSPHERE = 'LITER_ATMOSPHERE';
  103. const MEGAELECTRONVOLT = 'MEGAELECTRONVOLT';
  104. const MEGACALORIE = 'MEGACALORIE';
  105. const MEGACALORIE_15C = 'MEGACALORIE_15C';
  106. const MEGAJOULE = 'MEGAJOULE';
  107. const MEGALERG = 'MEGALERG';
  108. const MEGATON = 'MEGATON';
  109. const MEGAWATTHOUR = 'MEGAWATTHOUR';
  110. const METER_KILOGRAM_FORCE = 'METER_KILOGRAM_FORCE';
  111. const MICROJOULE = 'MICROJOULE';
  112. const MILLIJOULE = 'MILLIJOULE';
  113. const MYRIAWATT_HOUR = 'MYRIAWATT_HOUR';
  114. const NANOJOULE = 'NANOJOULE';
  115. const NEWTON_METER = 'NEWTON_METER';
  116. const PETAJOULE = 'PETAJOULE';
  117. const PETAWATTHOUR = 'PETAWATTHOUR';
  118. const PFERDESTAERKENSTUNDE = 'PFERDESTAERKENSTUNDE';
  119. const PICOJOULE = 'PICOJOULE';
  120. const Q_UNIT = 'Q_UNIT';
  121. const QUAD = 'QUAD';
  122. const TERAELECTRONVOLT = 'TERAELECTRONVOLT';
  123. const TERAJOULE = 'TERAJOULE';
  124. const TERAWATTHOUR = 'TERAWATTHOUR';
  125. const THERM = 'THERM';
  126. const THERM_US = 'THERM_US';
  127. const THERMIE = 'THERMIE';
  128. const TON = 'TON';
  129. const TONNE_COAL = 'TONNE_COAL';
  130. const TONNE_OIL = 'TONNE_OIL';
  131. const WATTHOUR = 'WATTHOUR';
  132. const WATTSECOND = 'WATTSECOND';
  133. const YOCTOJOULE = 'YOCTOJOULE';
  134. const YOTTAJOULE = 'YOTTAJOULE';
  135. const YOTTAWATTHOUR = 'YOTTAWATTHOUR';
  136. const ZEPTOJOULE = 'ZEPTOJOULE';
  137. const ZETTAJOULE = 'ZETTAJOULE';
  138. const ZETTAWATTHOUR = 'ZETTAWATTHOUR';
  139. /**
  140. * Calculations for all energy units
  141. *
  142. * @var array
  143. */
  144. protected $_units = array(
  145. 'ATTOJOULE' => array('1.0e-18', 'aJ'),
  146. 'BOARD_OF_TRADE_UNIT' => array('3600000', 'BOTU'),
  147. 'BTU' => array('1055.0559', 'Btu'),
  148. 'BTU_TERMOCHEMICAL' => array('1054.3503', 'Btu'),
  149. 'CALORIE' => array('4.1868', 'cal'),
  150. 'CALORIE_15C' => array('6.1858', 'cal'),
  151. 'CALORIE_NUTRITIONAL' => array('4186.8', 'cal'),
  152. 'CALORIE_THERMOCHEMICAL' => array('4.184', 'cal'),
  153. 'CELSIUS_HEAT_UNIT' => array('1899.1005', 'Chu'),
  154. 'CENTIJOULE' => array('0.01', 'cJ'),
  155. 'CHEVAL_VAPEUR_HEURE' => array('2647795.5', 'cv heure'),
  156. 'DECIJOULE' => array('0.1', 'dJ'),
  157. 'DEKAJOULE' => array('10', 'daJ'),
  158. 'DEKAWATT_HOUR' => array('36000', 'daWh'),
  159. 'DEKATHERM' => array('1.055057e+9', 'dathm'),
  160. 'ELECTRONVOLT' => array('1.6021773e-19', 'eV'),
  161. 'ERG' => array('0.0000001', 'erg'),
  162. 'EXAJOULE' => array('1.0e+18', 'EJ'),
  163. 'EXAWATT_HOUR' => array('3.6e+21', 'EWh'),
  164. 'FEMTOJOULE' => array('1.0e-15', 'fJ'),
  165. 'FOOT_POUND' => array('1.3558179', 'ft lb'),
  166. 'FOOT_POUNDAL' => array('0.04214011', 'ft poundal'),
  167. 'GALLON_UK_AUTOMOTIVE' => array('158237172', 'gal car gasoline'),
  168. 'GALLON_US_AUTOMOTIVE' => array('131760000', 'gal car gasoline'),
  169. 'GALLON_UK_AVIATION' => array('158237172', 'gal jet gasoline'),
  170. 'GALLON_US_AVIATION' => array('131760000', 'gal jet gasoline'),
  171. 'GALLON_UK_DIESEL' => array('175963194', 'gal diesel'),
  172. 'GALLON_US_DIESEL' => array('146520000', 'gal diesel'),
  173. 'GALLON_UK_DISTILATE' => array('175963194', 'gal destilate fuel'),
  174. 'GALLON_US_DISTILATE' => array('146520000', 'gal destilate fuel'),
  175. 'GALLON_UK_KEROSINE_JET' => array('170775090', 'gal jet kerosine'),
  176. 'GALLON_US_KEROSINE_JET' => array('142200000', 'gal jet kerosine'),
  177. 'GALLON_UK_LPG' => array('121005126.0865275', 'gal lpg'),
  178. 'GALLON_US_LPG' => array('100757838.45', 'gal lpg'),
  179. 'GALLON_UK_NAPHTA' => array('160831224', 'gal jet fuel'),
  180. 'GALLON_US_NAPHTA' => array('133920000', 'gal jet fuel'),
  181. 'GALLON_UK_KEROSINE' => array('170775090', 'gal kerosine'),
  182. 'GALLON_US_KEROSINE' => array('142200000', 'gal kerosine'),
  183. 'GALLON_UK_RESIDUAL' => array('189798138', 'gal residual fuel'),
  184. 'GALLON_US_RESIDUAL' => array('158040000', 'gal residual fuel'),
  185. 'GIGAELECTRONVOLT' => array('1.6021773e-10', 'GeV'),
  186. 'GIGACALORIE' => array('4186800000', 'Gcal'),
  187. 'GIGACALORIE_15C' => array('4185800000', 'Gcal'),
  188. 'GIGAJOULE' => array('1.0e+9', 'GJ'),
  189. 'GIGAWATT_HOUR' => array('3.6e+12', 'GWh'),
  190. 'GRAM_CALORIE' => array('4.1858', 'g cal'),
  191. 'HARTREE' => array('4.3597482e-18', 'Eh'),
  192. 'HECTOJOULE' => array('100', 'hJ'),
  193. 'HECTOWATT_HOUR' => array('360000', 'hWh'),
  194. 'HORSEPOWER_HOUR' => array('2684519.5', 'hph'),
  195. 'HUNDRED_CUBIC_FOOT_GAS' => array('108720000', 'hundred ft� gas'),
  196. 'INCH_OUNCE' => array('0.0070615518', 'in oc'),
  197. 'INCH_POUND' => array('0.112984825', 'in lb'),
  198. 'JOULE' => array('1', 'J'),
  199. 'KILOCALORIE_15C' => array('4185.8', 'kcal'),
  200. 'KILOCALORIE' => array('4186','8', 'kcal'),
  201. 'KILOCALORIE_THERMOCHEMICAL' => array('4184', 'kcal'),
  202. 'KILOELECTRONVOLT' => array('1.6021773e-16', 'keV'),
  203. 'KILOGRAM_CALORIE' => array('4185.8', 'kg cal'),
  204. 'KILOGRAM_FORCE_METER' => array('9.80665', 'kgf m'),
  205. 'KILOJOULE' => array('1000', 'kJ'),
  206. 'KILOPOND_METER' => array('9.80665', 'kp m'),
  207. 'KILOTON' => array('4.184e+12', 'kt'),
  208. 'KILOWATT_HOUR' => array('3600000', 'kWh'),
  209. 'LITER_ATMOSPHERE' => array('101.325', 'l atm'),
  210. 'MEGAELECTRONVOLT' => array('1.6021773e-13', 'MeV'),
  211. 'MEGACALORIE' => array('4186800', 'Mcal'),
  212. 'MEGACALORIE_15C' => array('4185800', 'Mcal'),
  213. 'MEGAJOULE' => array('1000000', 'MJ'),
  214. 'MEGALERG' => array('0.1', 'megalerg'),
  215. 'MEGATON' => array('4.184e+15', 'Mt'),
  216. 'MEGAWATTHOUR' => array('3.6e+9', 'MWh'),
  217. 'METER_KILOGRAM_FORCE' => array('9.80665', 'm kgf'),
  218. 'MICROJOULE' => array('0.000001', '�J'),
  219. 'MILLIJOULE' => array('0.001', 'mJ'),
  220. 'MYRIAWATT_HOUR' => array('3.6e+7', 'myWh'),
  221. 'NANOJOULE' => array('1.0e-9', 'nJ'),
  222. 'NEWTON_METER' => array('1', 'Nm'),
  223. 'PETAJOULE' => array('1.0e+15', 'PJ'),
  224. 'PETAWATTHOUR' => array('3.6e+18', 'PWh'),
  225. 'PFERDESTAERKENSTUNDE' => array('2647795.5', 'ps h'),
  226. 'PICOJOULE' => array('1.0e-12', 'pJ'),
  227. 'Q_UNIT' => array('1.0550559e+21', 'Q unit'),
  228. 'QUAD' => array('1.0550559e+18', 'quad'),
  229. 'TERAELECTRONVOLT' => array('1.6021773e-7', 'TeV'),
  230. 'TERAJOULE' => array('1.0e+12', 'TJ'),
  231. 'TERAWATTHOUR' => array('3.6e+15', 'TWh'),
  232. 'THERM' => array('1.0550559e+8', 'thm'),
  233. 'THERM_US' => array('1.054804e+8', 'thm'),
  234. 'THERMIE' => array('4185800', 'th'),
  235. 'TON' => array('4.184e+9', 'T explosive'),
  236. 'TONNE_COAL' => array('2.93076e+10', 'T coal'),
  237. 'TONNE_OIL' => array('4.1868e+10', 'T oil'),
  238. 'WATTHOUR' => array('3600', 'Wh'),
  239. 'WATTSECOND' => array('1', 'Ws'),
  240. 'YOCTOJOULE' => array('1.0e-24', 'yJ'),
  241. 'YOTTAJOULE' => array('1.0e+24', 'YJ'),
  242. 'YOTTAWATTHOUR' => array('3.6e+27', 'YWh'),
  243. 'ZEPTOJOULE' => array('1.0e-21', 'zJ'),
  244. 'ZETTAJOULE' => array('1.0e+21', 'ZJ'),
  245. 'ZETTAWATTHOUR' => array('3.6e+24', 'ZWh'),
  246. 'STANDARD' => 'JOULE'
  247. );
  248. }