Bohr Model
by Salman_S
HTML
<html>
<head>
<script type="text/javascript" src="https://www.reality-theory.net/random.js"></script>
<script type="text/javascript" src="https://www.reality-theory.net/jscharts.js"></script>
</head>
<body>
<div name="log">
<b>Executing the code will leave the page unresponsive for a few minutes.</b>
Time to compute = 6 to 8 minutes on a 2.5GHz CPU
<table id="results">
<tr>
<th>Distance</th>
<th>Charge^2</th>
<th>Energy(p)</th>
<th>Energy(p1)</th>
<th>Expectation(p)</th>
<th>Expectation(p1)</th>
<th>Average Expectation</th>
</tr>
</table>
</div>
</body>
</html>
CSS
body {
color: white;
background-color: black;
}
table, th, td {
border: 1px solid white;
border-collapse: collapse;
}
th, td {
padding: 15px;
}
JavaScript
var newElement = document.createElement('p');
var L = 1000000;
var w=10;
var f1 =0;
var f = 0;
var q = 0;
var en = 0;
var en1 = 0;
var edx = 0;
var edx1 = 0;
var kj = 1000000; // increase for accuracy
var m = 0;
var km = 5000000;
var d0 = 1822.9;
var d1 = 1822.9;
var intr = 0.5;
var rand = new Random();
function calculate(dist, st0, st1, i, S, Sy) {
// throw random lines
var p = d0 * rand.random();
var li = (dist + d0) * rand.random();
var p1 = d1 * rand.random();
var li1 = (dist + d1) * rand.random();
// p=Math.floor(p)
// li=Math.floor(li)
// p1=Math.floor(p1)
// li1=Math.floor(li1)
// put random lines through conditions
if (st1 + p1 + li1 > st0 + p - li)
{
// do nothing
f1++;
}
else
{
Sy[Math.floor(w*p1)]=Sy[Math.floor(w*p1)]+1;
S[Math.floor(w*p)]=S[Math.floor(w*p)]+1;
en = en + (li);
en1 = en1 + li1;
f++;
}
}
function main() {
// create an array 's' and 'l' and initialize all elements to 0
var fr = [];
for (var i = 0; i <= km;i++)
{
fr.push([0,0]);
}
var mp = 249801.3-1822.9
for ( var m=1; m <10; m++)
{
var S = [];
var Sy = [];
for (var i = 0; i <= w*d0;i++)
{
S.push(0);
Sy.push(0);
}
var dist = 2*mp*intr + d0;
var st1 =(L/2) - mp*intr;
var st0 =(L/2) + d0 + mp*intr ;
f = 0; f1 = 0; edx = 0; edx1 = 0; en = 0.0; en1=0; ent=0;
for ( var i = 1; i < kj; i++)
{
setTimeout(calculate(dist, st0, st1, i, S, Sy), 1000)
}
en = f/en;
en1 = f/en1;
//document.lf.log.value += m+" "+dist+" "+en+"\n";
for ( var ind = 0; ind<=Math.floor(w*d0); ind++)
{
// CALCULATE EXPECTATION VALUE AFTER INTERACTION HAS TAKEN PLACE
edx = edx + (ind) * S[ind];
edx1 = edx1 + (ind) * Sy[ind];
}
// fr[m][0] = dist;
// fr[m][1] = en;
edx1 = (edx1 / f)- (0.5 * w*d1)+0.5 ;
edx = (edx / f)- (0.5 * w*d1)+0.5;
var table =...