|
@@ -0,0 +1,60 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="en">
|
|
|
+<head>
|
|
|
+ <meta charset="UTF-8">
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
|
+ <title>Scattnlay web</title>
|
|
|
+ <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
+<input type="number" id="fromWL" step="any" value="400.0">from WL<br>
|
|
|
+<input type="number" id="toWL" step="any" value="800">to WL<br>
|
|
|
+<input type="number" id="R" step="any" value="100">R<br>
|
|
|
+<input type="number" id="reN" step="any" value="4">Re(n)<br>
|
|
|
+<input type="number" id="imN" step="any" value="0">Im(n)<br>
|
|
|
+
|
|
|
+<button id="Evaluate">Run Mie!</button>
|
|
|
+<div id="PlotQsca"></div>
|
|
|
+ <script src="/nmie.js"></script>
|
|
|
+ <script>
|
|
|
+ var fromWL = parseFloat(document.getElementById("fromWL").value);
|
|
|
+ var toWL = parseFloat(document.getElementById("toWL").value);
|
|
|
+ var R = parseFloat(document.getElementById("R").value);
|
|
|
+ var reN = parseFloat(document.getElementById("reN").value);
|
|
|
+ var imN = parseFloat(document.getElementById("imN").value);
|
|
|
+ const range = (start, stop, step = 1) =>
|
|
|
+ Array(Math.ceil((stop - start) / step)).fill(start).map((x, y) => x + y * step)
|
|
|
+ Module.addOnPostRun(() => {
|
|
|
+ const nmie = new Module.nmie()
|
|
|
+ Evaluate.onclick = () => {
|
|
|
+ nmie.AddTargetLayerReIm(R, reN, imN)
|
|
|
+ var WLs = range(fromWL,toWL,1)
|
|
|
+ var Qsca = [], Qabs = [];
|
|
|
+ WLs.forEach(function(WL) {
|
|
|
+ nmie.SetWavelength(WL);
|
|
|
+ nmie.RunMieCalculation();
|
|
|
+ Qsca.push(nmie.GetQsca());
|
|
|
+ Qabs.push(nmie.GetQabs());
|
|
|
+ });
|
|
|
+ console.log('Qsca = ', Qsca);
|
|
|
+ var trace1 = {
|
|
|
+ x: WLs,
|
|
|
+ y: Qsca,
|
|
|
+ type: 'scatter',
|
|
|
+ };
|
|
|
+
|
|
|
+ var trace2 = {
|
|
|
+ x: WLs,
|
|
|
+ y: Qabs,
|
|
|
+ type: 'scatter'
|
|
|
+ };
|
|
|
+
|
|
|
+ var data = [trace1, trace2];
|
|
|
+
|
|
|
+ Plotly.newPlot('PlotQsca', data, {}, {showSendToCloud: true});
|
|
|
+ };
|
|
|
+ })
|
|
|
+ </script>
|
|
|
+</body>
|
|
|
+</html>
|