Merge branch 'master' of bitbucket.org:zaher-salman/trimsp

This commit is contained in:
2023-01-04 09:50:44 +01:00
8 changed files with 474 additions and 72 deletions
+183 -33
View File
@@ -24,7 +24,7 @@
<button class="tablinks" onclick="openTab(event,'Layers')" id="btnLayers">Layers</button>
<button class="tablinks" onclick="openTab(event,'Scans')" id="btnScans">Scans</button>
<button class="tablinks" onclick="openTab(event,'Plots')" id="btnPlots">Plots</button>
<button class="tablinks" onclick="openTab(event,'Other')" id="btnOther">Other Params</button>
<button class="tablinks" onclick="openTab(event,'Other')" id="btnOther">Other Parameters</button>
</div>
<div id="Layers" class="tabcontent">
<table style="width: 100%;">
@@ -51,7 +51,7 @@
</tr>
<tr><td colspan="2">
<table id="LTable" border="2" cellpadding="10">
<tr><td><b>Layer #</b></td><td><b>Composition</b></td><td><b>Density [g/cm<sup>3</sup>]</b></td><td><b>Thickness [A]</b></td></tr>
<tr><td><b>Layer #</b></td><td><b>Composition</b></td><td><b>Density [g/cm<sup>3</sup>]</b></td><td><b>Thickness [Å]</b></td></tr>
</table>
</td></tr>
</table>
@@ -61,22 +61,23 @@
<tr><td collspan="2"><b>Projectile parameters</b></td></tr>
<tr><td>Projectile</td>
<td><select name="ProjType" id="ProjType" onchange="ProjSmartDefaults()" onload="ProjSmartDefaults()">
<option selected="selected" value="Muon">Muon</option>
<option value="Li8">Li8</option>
<option value="B12">B12</option>
<option value="H">H</option>
<option value="He">He</option>
<option selected="selected" value="muon">muon</option>
<option value="lithium-8">lithium-8</option>
<option value="boron-12">boron-12</option>
<option value="magnesium-31">magnesium-31</option>
<option value="H">H</option>
<option value="He">He</option>
</select>
</td>
</tr>
<tr><td>Number of projectiles</td>
<td><input name="numberProj" id="numberProj" type="text" size="7" value="1000" onchange="//ProjNumberLimit()"></td>
</tr>
<tr><td>Starting depth [A]</td><td><input name="z0" id="z0" type="text" size="7" value="0"></td></tr>
<tr><td>Depth increment [A]</td><td><input name="dz" id="dz" type="text" size="7" value="20"></td></tr>
<tr><td>Starting depth [Å]</td><td><input name="z0" id="z0" type="text" size="7" value="0"></td></tr>
<tr><td>Depth increment [Å]</td><td><input name="dz" id="dz" type="text" size="7" value="20"></td></tr>
<tr><td>Energy [eV]</td><td><input name="valEnergy" id="valEnergy" type="text" size="7" value="2000"></td></tr>
<tr><td>Energy sigma [eV]</td><td><input name="sigEnergy" id="sigEnergy" type="text" size="7" value="450"></td></tr>
<tr><td>Angel [deg]</td><td><input name="valAngle" id="valAngle" type="text" size="7" value="0"></td></tr>
<tr><td>Angle [deg]</td><td><input name="valAngle" id="valAngle" type="text" size="7" value="0"></td></tr>
<tr><td>Angle sigma [deg]</td><td><input name="sigAngle" id="sigAngle" type="text" size="7" value="15"></td></tr>
<tr><td>Random seed</td><td><input name="ranSeed" id="ranSeed" type="text" size="7" value="78741"></td></tr>
<tr><td><button onclick="document.getElementById('btnPlots').click();tester();">Start</button></td><td></td></tr>
@@ -89,22 +90,22 @@
<input type="checkbox" name="scanSeq" id="scanSeq" onChange="adjust_scans();"> Enable scan on
<select name="scanType" id="scanType" onchange="adjust_scans();">
<option value="scanLoop">Loop</option>
<option value="scanVals">Set of Values</option>
<option value="scanVals">Set of values</option>
</select>
<div id="ScansLine" style="visibility: hidden;">
<br>Set of Values: <input name="scanList" id="scanList" type="text" value="1000">
corresponding depth increment <input name="scanListdz" id="scanListdz" type="text" value="">
<br>Set of values: <input name="scanList" id="scanList" type="text" value="1000">
Corresponding depth increment: <input name="scanListdz" id="scanListdz" type="text" value="">
</div>
<table id="ScansTable" style="width: 100%;visibility: hidden;">
<tr>
<td colspan="3">Scan parameter
<select name="comboScan" id="comboScan" onchange="">
<option value="EScan">Energy</option>
<option value="SigEScan">Energy Sigma</option>
<option value="AngleScan">Angle</option>
<option value="SigAngleScan">Angle Sigma</option>
<option value="NProjScan">Number of Projectiles</option>
<option value="dScan">Thickness of layer1</option>
<option value="EScan">Energy [eV]</option>
<option value="SigEScan">Energy sigma [eV]</option>
<option value="AngleScan">Angle [deg]</option>
<option value="SigAngleScan">Angle sigma [deg]</option>
<option value="NProjScan">Number of projectiles</option>
<option value="dScan">Thickness of layer # 1</option>
</select>
</td>
</tr>
@@ -134,61 +135,188 @@
<div id="Other" class="tabcontent">
<table cellpadding="5">
<tr>
<td>EF</td>
<td>
<details>
<summary>EF</summary>
Cutoff energy of projectiles (in eV);
must be greater than zero.
Used for low projectile energies (< 1000 eV) and ESB = 0.
EF should be of the order of ~0.2 eV,
but not above SBE (for sputtering data).
With increasing projectile energy,
EF can be increased to save computing time.
</details>
</td>
<td>
<input name="parEF" id="parEF" type="number" size="7" step="0.1" value="0.5">
</td>
<td>KK0</td>
<td>
<details>
<summary>KK0</summary>
Maximum order of weak (simultaneous) collisions between projectile and target atoms:
<ol>
<li value="0">No weak collisions included.</li>
<li value="1">???</li>
<li value="2">Sufficient for most calculations.</li>
<li value="3">Only useful for very heavy particles; increases computing time.</li>
<li value="4">Only useful for very heavy particles; increases computing time.</li>
</ol>
</details>
</td>
<td>
<input name="parKK0" id="parKK0" type="number" step="1" min="0" max="4" value="2">
</td>
</tr>
<tr>
<td>ESB</td>
<td>
<details>
<summary>ESB</summary>
Surface binding energy for projectiles (in eV).
This value is zero for the noble gases,
but ESB should be larger than zero if the projectile is an active
chemically species.
ESB = SBE for self-sputtering calculations.
</details>
</td>
<td>
<input name="parESB" id="parESB" type="number" size="7" step="0.1" value="0.0">
</td>
<td>KK0R</td>
<td>
<details>
<summary>KK0R</summary>
Maximum order of weak (simultaneous) collisions between target atoms:
<ol>
<li value="0">No weak collisions included.</li>
<li value="1">???</li>
<li value="2">Sufficient for most calculations.</li>
<li value="3">Only useful for very heavy particles; increases computing time.</li>
<li value="4">Only useful for very heavy particles; increases computing time.</li>
</ol>
</details>
</td>
<td>
<input name="parKK0R" id="parKK0R" type="number" step="1" min="0" max="4" value="2">
</td>
</tr>
<tr>
<td>SHEATH</td>
<td>
<details>
<summary>SHEATH</summary>
Sheath potential (in eV);
typically 3 * kT (i.e., 3 * |projectile energy|).
</details>
</td>
<td>
<input name="parSHEATH" id="parSHEATH" type="number" size="7" step="0.1" value="0.0">
</td>
<td>KDEE1</td>
<td>
<details>
<summary>KDEE1</summary>
Inelastic energy loss model for projectiles:
<ol>
<li value="1">Nonlocal (Lindhard-Scharff).</li>
<li value="2">Local (Oen-Robinson).</li>
<li value="3">
Equipartition of local and nonlocal models (i.e., options 1 & 2).
</li>
<li value="4">
Nonlocal (Anderson-Ziegler tables for hydrogen);
must be used for hydrogen-like projectile with energies > 10 keV.
</li>
<li value="5">
Nonlocal (Ziegler tables for helium);
must be used for helium-like projectiles with energies > 50 keV.
</li>
</ol>
Note: options 1, 2, and 3 can only be used at energies below the stopping power maximum.
</details>
</td>
<td>
<input name="parKDEE1" id="parKDEE1" type="number" step="1" min="1" max="5" value="4">
</td>
</tr>
<tr>
<td>ERC</td>
<td>
<details>
<summary>ERC</summary>
Recoil cutoff energy (in eV);
usually equal to the surface binding energy.
</details>
</td>
<td>
<input name="parERC" id="parERC" type="number" size="7" step="0.1" value="0.0">
</td>
<td>KDEE2</td>
<td>
<details>
<summary>KDEE2</summary>
Inelastic energy loss for target atoms:
<ol>
<li value="1">Nonlocal (Lindhard-Scharff).</li>
<li value="2">Local (Oen-Robinson).</li>
<li value="3">
Equipartition of local and nonlocal models (i.e., options 1 & 2).
</li>
</ol>
Note: options 1, 2, and 3 can only be used at energies below the stopping power maximum.
</details>
</td>
<td>
<input name="parKDEE2" id="parKDEE2" type="number" step="1" min="1" max="3" value="3">
</td>
</tr>
<tr>
<td>RD</td>
<td>
<details>
<summary>RD</summary>
Depth (in Å) to which recoils are followed.
RD = 50 is usually sufficient for sputtering
(if the projectile energy is not too high).
Use RD = 100 * CW (i.e., the depth increment)
for following the full collision cascade.
</details>
</td>
<td>
<input name="parRD" id="parRD" type="number" size="7" step="0.1" value="50.0">
</td>
<td>IPOT</td>
<td>
<details>
<summary>IPOT</summary>
Interaction potential between projectile and target atoms:
<ol>
<li value="1">Krypton-Carbon (Kr-C) potential.</li>
<li value="2">Molière potential.</li>
<li value="3">Ziegler-Biersack-Littmark (ZBL) potential.</li>
</ol>
</details>
</td>
<td>
<input name="parIPOT" id="parIPOT" type="number" step="1" min="1" max="3" value="2">
</td>
</tr>
<tr>
<td>CA</td>
<td>
<details>
<summary>CA</summary>
Correction factor to the Firsov screening length for
collisions between projectile and target atoms
(only used in the application of the Molière potential);
usually on the order of ~1.0.
</details>
</td>
<td>
<input name="parCA" id="parCA" type="number" size="7" step="0.1" value="1.0">
</td>
<td>IPOTR</td>
<td>
<details>
<summary>IPOTR</summary>
Interaction potential between target atoms:
<ol>
<li value="1">Krypton-Carbon (Kr-C) potential.</li>
<li value="2">Molière potential.</li>
<li value="3">Ziegler-Biersack-Littmark (ZBL) potential.</li>
</ol>
</details>
</td>
<td>
<input name="parIPOTR" id="parIPOTR" type="number" step="1" min="0" max="3" value="1">
</td>
@@ -196,12 +324,34 @@
<tr>
<td></td>
<td></td>
<td>IRL</td>
<td>
<input name="parIRL" id="parIRL" type="number" step="1" min="0" max="2" value="0">
<details>
<summary>IRL</summary>
Collision recoils:
<ol>
<li value="0">
No recoils are generated (i.e., no sputtering effects);
used to speed up the calculation if only projectile ranges are of interest.
</li>
<li value="1">Calculate collision recoils.</li>
</ol>
</details>
</td>
<td>
<input name="parIRL" id="parIRL" type="number" step="1" min="0" max="1" value="0">
</td>
</tr>
</table>
<p>
For further details see:
</p>
<p>
W. Eckstein, <i>Computer Simulation of Ion-Solid Interactions</i>,<br>
Springer Series in Materials Science, Vol. 10 (Springer-Verlag, Berlin, 1991).<br>
<a href="https://doi.org/10.1007/978-3-642-73513-4">
https://doi.org/10.1007/978-3-642-73513-4
</a>
</p>
</div>
</div>
</td></tr>