UNPKG

dirtybomb

Version:
226 lines (198 loc) 10.5 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <base data-ice="baseUrl" href="../../"> <title data-ice="title">src/NuclearMaterial.js | API Document</title> <link type="text/css" rel="stylesheet" href="css/style.css"> <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css"> <script src="script/prettify/prettify.js"></script> <script src="script/manual.js"></script> </head> <body class="layout-container" data-ice="rootContainer"> <header> <a href="./">Home</a> <a href="identifiers.html">Reference</a> <a href="source.html">Source</a> <a href="test.html" data-ice="testLink">Test</a> <a data-ice="repoURL" href="https://github.com/austincawley/dirtybomb" class="repo-url-github">Repository</a> <div class="search-box"> <span> <img src="./image/search.png"> <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span> </span> <ul class="search-result"></ul> </div> </header> <nav class="navigation" data-ice="nav"><div> <ul> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Bomb.js~Bomb.html">Bomb</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Dirtybomb.js~Dirtybomb.html">Dirtybomb</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/NuclearMaterial.js~NuclearMaterial.html">NuclearMaterial</a></span></span></li> <li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">Dispersion</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Dispersion/Atmosphere.js~Atmosphere.html">Atmosphere</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Dispersion/DynamicGaussianDecayPuff.js~DynamicGaussianDecayPuff.html">DynamicGaussianDecayPuff</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Dispersion/DynamicGaussianPuff.js~DynamicGaussianPuff.html">DynamicGaussianPuff</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Dispersion/GaussianDecayPlume.js~GaussianDecayPlume.html">GaussianDecayPlume</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Dispersion/GaussianDecayPuff.js~GaussianDecayPuff.html">GaussianDecayPuff</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Dispersion/GaussianPlume.js~GaussianPlume.html">GaussianPlume</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Dispersion/GaussianPuff.js~GaussianPuff.html">GaussianPuff</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Dispersion/Source.js~Source.html">Source</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-Vector">Vector</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-integrate">integrate</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-Dispersion">Dispersion</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-SourceType">SourceType</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-Coord">Coord</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-STD_Y_COEFF">STD_Y_COEFF</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-STD_Z_COEFF">STD_Z_COEFF</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-Stat">Stat</a></span></span></li> </ul> </div> </nav> <div class="content" data-ice="content"><h1 data-ice="title">src/NuclearMaterial.js</h1> <pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">/** * Created by austin on 6/16/16. */ /** * Predefined isotopes: Cobalt 60 Strontium 90 Iodine 129 Caesium 135 Caesium 137 Polonium 210 Radon 222 Radium 226 Torium 232 Uranium 233 Uranium 235 Uranium 238 Plutonium 238 Plutonium 239 Plutonium 240 Americium 241 Curium 242 * * * @type {*[]} */ const ISOTOPES = [ {name: &quot;Cobalt&quot;, element: &quot;Co&quot;, mass: 60, halfLife: 166349000, decayMode: &quot;beta,gamma,gamma&quot;}, {name: &quot;Strontium&quot;, element: &quot;Sr&quot;, mass: 90, halfLife: 908839000, decayMode: &quot;betaminus&quot;}, {name: &quot;Iodine&quot;, element: &quot;I&quot;, mass: 129, halfLife: 495444000000000, decayMode: &quot;beta,gamma&quot;}, {name: &quot;Caesium&quot;, element: &quot;Cs&quot;, mass: 135, halfLife: 7.25328e+13, decayMode: &quot;beta&quot;}, {name: &quot;Caesium&quot;, element: &quot;Cs&quot;, mass: 137, halfLife: 952072000, decayMode: &quot;beta,gamma&quot;}, {name: &quot;Polonium&quot;, element: &quot;Po&quot;, mass: 210, halfLife: 11955700, decayMode: &quot;alpha&quot;}, {name: &quot;Radon&quot;, element: &quot;Rn&quot;, mass: 222, halfLife: 330350, decayMode: &quot;alpha&quot;}, {name: &quot;Radium&quot;, element: &quot;Ra&quot;, mass: 226, halfLife: 50491100000, decayMode: &quot;alpha&quot;}, {name: &quot;Thorium&quot;, element: &quot;Th&quot;, mass: 232, halfLife: 443375000000000000, decayMode: &quot;alpha&quot;}, {name: &quot;Uranium&quot;, element: &quot;U&quot;, mass: 233, halfLife: 5023860000000, decayMode: &quot;alpha&quot;}, {name: &quot;Uranium&quot;, element: &quot;U&quot;, mass: 235, halfLife: 22209800000000000, decayMode: &quot;alpha&quot;}, {name: &quot;Uranium&quot;, element: &quot;U&quot;, mass: 238, halfLife: 140996000000000000, decayMode: &quot;alpha&quot;}, {name: &quot;Plutonium&quot;, element: &quot;Pu&quot;, mass: 238, halfLife: 2767540000, decayMode: &quot;alpha&quot;}, {name: &quot;Plutonium&quot;, element: &quot;Pu&quot;, mass: 239, halfLife: 760837000000, decayMode: &quot;alpha&quot;}, {name: &quot;Plutonium&quot;, element: &quot;Pu&quot;, mass: 240, halfLife: 207108000000, decayMode: &quot;alpha&quot;}, {name: &quot;Americium&quot;, element: &quot;Am&quot;, mass: 241, halfLife: 13638900000, decayMode: &quot;alpha&quot;}, {name: &quot;Curium&quot;, element: &quot;Cm&quot;, mass: 242, halfLife: 13824000, decayMode: &quot;alpha&quot;} ]; /** * Provides a few presets of common nuclear material as well as the ability to define a custom material */ class NuclearMaterial { /** * * @param {number|string} halfLifeOrName - either * @param {number} [atomicMass] - necessary with name if using preset (u) * @param {number} mass - Total mass of substance (g) * @param {string} [decayMode=&apos;&apos;] * * @example * // 100 grams of Cobalt-60 * let cobalt60 = new NuclearMaterial(&quot;Cobalt&quot;, 60, 100); * * // 100 grams of Plutonium-238 * let pu238 = new NuclearMaterial(2767540000, 238, 100); */ constructor(halfLifeOrName, atomicMass, mass, decayMode = &apos;&apos;) { if (typeof halfLifeOrName === &apos;number&apos;) { /** * * @type {number} * @private */ this._halfLife = halfLifeOrName; /** * @type {number|*} * @private */ this._atomicMass = atomicMass; /** * * @type {string} * @private */ this._decayMode = decayMode; } else { let isotopePreset; for (let i of ISOTOPES) { if (i.name === halfLifeOrName &amp;&amp; i.mass == Math.round(atomicMass)) { isotopePreset = i; break; } } if (!isotopePreset) throw new Error(&apos;There is no preset for &apos; + halfLifeOrName + &apos;-&apos;+ atomicMass); this._halfLife = isotopePreset.halfLife; // Map to known substances this._atomicMass = isotopePreset.mass; this._decayMode = isotopePreset.decayMode; } /** * * @type {number} * @private */ this._mass = mass; } /** * * @returns {number} */ get mass() { return this._mass; } /** * * @returns {number|*} */ get atomicMass() { return this._atomicMass; } /** * * @returns {number|*} */ get halfLife() { return this._halfLife; } /** * * @returns {string|*} */ get decayMode() { return this._decayMode; } } NuclearMaterial.PRESETS = ISOTOPES; export default NuclearMaterial;</code></pre> </div> <footer class="footer"> Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a> </footer> <script src="script/search_index.js"></script> <script src="script/search.js"></script> <script src="script/pretty-print.js"></script> <script src="script/inherited-summary.js"></script> <script src="script/test-summary.js"></script> <script src="script/inner-link.js"></script> <script src="script/patch-for-local.js"></script> </body> </html>