| 
														
															@@ -192,10 +192,12 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             width: 0, 
														 | 
														
														 | 
														
															             width: 0, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             height: 0 
														 | 
														
														 | 
														
															             height: 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           }, 
														 | 
														
														 | 
														
															           }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          units: 'nm', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           source_units: 'nm', 
														 | 
														
														 | 
														
															           source_units: 'nm', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           isSourceOtherUnits: false, 
														 | 
														
														 | 
														
															           isSourceOtherUnits: false, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          units: 'nm', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           simulationRuntime: { 
														 | 
														
														 | 
														
															           simulationRuntime: { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            r_units: 'nm', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            r_source_units: 'nm', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             mode_n: [], 
														 | 
														
														 | 
														
															             mode_n: [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             mode_n_names: [], 
														 | 
														
														 | 
														
															             mode_n_names: [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             mode_types: range(0, 2), 
														 | 
														
														 | 
														
															             mode_types: range(0, 2), 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -210,6 +212,13 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             trace2: {}, 
														 | 
														
														 | 
														
															             trace2: {}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             total_mode_n_evaluated: 4, 
														 | 
														
														 | 
														
															             total_mode_n_evaluated: 4, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           }, 
														 | 
														
														 | 
														
															           }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          plotData: { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            pWLs: [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            pQsca: [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            pQabs: [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            pQsca_n: [[], []], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            pQabs_n: [[], []], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           simulationSetup: { 
														 | 
														
														 | 
														
															           simulationSetup: { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             stepWL: 0.5, 
														 | 
														
														 | 
														
															             stepWL: 0.5, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fromWL: 300.0, 
														 | 
														
														 | 
														
															             fromWL: 300.0, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -298,11 +307,21 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       source_units: { 
														 | 
														
														 | 
														
															       source_units: { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         handler: function () { 
														 | 
														
														 | 
														
															         handler: function () { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           this.setXaxisTitle(); 
														 | 
														
														 | 
														
															           this.setXaxisTitle(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          let su = this.source_units; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          let rsu = this.simulationRuntime.r_source_units; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          this.plotData.pWLs = this.simulationRuntime.WLs.slice(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          if (su !== rsu) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            this.plotData.pWLs.forEach(function(part, index) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                this[index] = 1/this[index] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }, this.plotData.pWLs); // use as this 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          // this.reverseChartData(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          this.plotResults(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       }, 
														 | 
														
														 | 
														
															       }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       isSourceOtherUnits: { 
														 | 
														
														 | 
														
															       isSourceOtherUnits: { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         handler: function () { 
														 | 
														
														 | 
														
															         handler: function () { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.setEmptyChart(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          // this.setEmptyChart(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           this.setXaxisTitle(); 
														 | 
														
														 | 
														
															           this.setXaxisTitle(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           if (!this.isSourceOtherUnits) { 
														 | 
														
														 | 
														
															           if (!this.isSourceOtherUnits) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             this.source_units = this.units; 
														 | 
														
														 | 
														
															             this.source_units = this.units; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -327,6 +346,34 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           this.window.width = window.innerWidth; 
														 | 
														
														 | 
														
															           this.window.width = window.innerWidth; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           this.window.height = window.innerHeight*0.8; 
														 | 
														
														 | 
														
															           this.window.height = window.innerHeight*0.8; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }, 
														 | 
														
														 | 
														
															         }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      reverseChartData() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.chart.traces.forEach(function(part, index) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          let tmp = this[index].x.reverse(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          console.log(this[index].name) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          console.log(tmp); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          // tmp = tmp.reverse(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          console.log(tmp); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          this[index].x = tmp; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          tmp = this[index].y.reverse(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          this[index].y = tmp; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }, this.chart.traces); // use arr as this 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // let trace_sca = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //   x: this.simulationRuntime.WLs, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //   y: this.simulationRuntime.Qsca_n[mode_type][mode_n], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //   type: 'scatter', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //   name: 'Qsca ' + mode_names[mode_type] + ' ' + mode_n_names[mode_n + 1].name 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // this.chart.traces.push(trace_sca); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // this.simulationRuntime.WLs = this.simulationRuntime.WLs.reverse(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // this.simulationRuntime.Qsca = this.simulationRuntime.Qsca.reverse(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // this.simulationRuntime.Qabs = this.simulationRuntime.Qabs.reverse(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // Qsca: [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // Qabs: [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // Qsca_n: [[], []], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // Qabs_n: [[], []], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       runSimulation: function() { 
														 | 
														
														 | 
														
															       runSimulation: function() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           this.$buefy.notification.open({ 
														 | 
														
														 | 
														
															           this.$buefy.notification.open({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             duration: 200, 
														 | 
														
														 | 
														
															             duration: 200, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -348,61 +395,70 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                   }, 20); 
														 | 
														
														 | 
														
															                   }, 20); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }, 
														 | 
														
														 | 
														
															         }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       runMie: function () { 
														 | 
														
														 | 
														
															       runMie: function () { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let t0 = performance.now(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let fromWL = parseFloat(this.simulationSetup.fromWL); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let toWL = parseFloat(this.simulationSetup.toWL); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let stepWL = parseFloat(this.simulationSetup.stepWL); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let R = parseFloat(this.simulationSetup.R); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let reN = parseFloat(this.simulationSetup.reN); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let imN = parseFloat(this.simulationSetup.imN); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.simulationRuntime.r_units = this.units; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.simulationRuntime.r_source_units = this.source_units; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let Qsca = [], Qabs = []; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let Qsca_n = [[], []], Qabs_n = [[], []]; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          const nmie = this.nmie; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          nmie.ClearTarget(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          nmie.AddTargetLayerReIm(R, reN, imN); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let WLs = range(fromWL, toWL, stepWL); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.simulationRuntime.WLs = WLs; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let total_mode_n = this.simulationSetup.total_mode_n; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let mode_n = []; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          mode_n = rangeInt(Number(total_mode_n), 1); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.simulationRuntime.total_mode_n_evaluated = total_mode_n; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let mode_types = range(0, 2); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.simulationSetup.mode_n = mode_n; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.simulationSetup.mode_types = mode_types; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let t0 = performance.now(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let fromWL = parseFloat(this.simulationSetup.fromWL); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let toWL = parseFloat(this.simulationSetup.toWL); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let stepWL = parseFloat(this.simulationSetup.stepWL); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let R = parseFloat(this.simulationSetup.R); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let reN = parseFloat(this.simulationSetup.reN); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let imN = parseFloat(this.simulationSetup.imN); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let Qsca = [], Qabs = []; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let Qsca_n = [[], []], Qabs_n = [[], []]; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        const nmie = this.nmie; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        nmie.ClearTarget(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        nmie.AddTargetLayerReIm(R, reN, imN); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let WLs = range(fromWL, toWL, stepWL); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.simulationRuntime.WLs = WLs; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let total_mode_n = this.simulationSetup.total_mode_n; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let mode_n = []; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        mode_n = rangeInt(Number(total_mode_n), 1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.simulationRuntime.total_mode_n_evaluated = total_mode_n; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let mode_types = range(0, 2); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.simulationSetup.mode_n = mode_n; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.simulationSetup.mode_types = mode_types; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        mode_types.forEach(function (mode_type) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          mode_n.forEach(function () { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            Qsca_n[mode_type].push([]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            Qabs_n[mode_type].push([]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        WLs.forEach(function (WL) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          nmie.SetModeNmaxAndType(-1, -1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          nmie.SetWavelength(WL); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          nmie.RunMieCalculation(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          Qsca.push(nmie.GetQsca()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          Qabs.push(nmie.GetQabs()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           mode_types.forEach(function (mode_type) { 
														 | 
														
														 | 
														
															           mode_types.forEach(function (mode_type) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            mode_n.forEach(function () { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-              Qsca_n[mode_type].push([]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-              Qabs_n[mode_type].push([]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            mode_n.forEach(function (n) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              nmie.SetModeNmaxAndType(n, mode_type); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              nmie.RunMieCalculation(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              Qsca_n[mode_type][n - 1].push(nmie.GetQsca()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              Qabs_n[mode_type][n - 1].push(nmie.GetQabs()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }); 
														 | 
														
														 | 
														
															             }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          }); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          WLs.forEach(function (WL) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            nmie.SetModeNmaxAndType(-1, -1); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            nmie.SetWavelength(WL); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            nmie.RunMieCalculation(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            Qsca.push(nmie.GetQsca()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            Qabs.push(nmie.GetQabs()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            mode_types.forEach(function (mode_type) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-              mode_n.forEach(function (n) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                nmie.SetModeNmaxAndType(n, mode_type); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                nmie.RunMieCalculation(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                Qsca_n[mode_type][n - 1].push(nmie.GetQsca()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                Qabs_n[mode_type][n - 1].push(nmie.GetQabs()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-              }); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }); 
														 | 
														
														 | 
														
															             }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          }); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.simulationRuntime.Qsca = Qsca; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.simulationRuntime.Qabs = Qabs; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.simulationRuntime.Qsca_n = Qsca_n; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.simulationRuntime.Qabs_n = Qabs_n; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.simulationRuntime.Qsca = Qsca; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.simulationRuntime.Qabs = Qabs; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.simulationRuntime.Qsca_n = Qsca_n; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.simulationRuntime.Qabs_n = Qabs_n; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          let t1 = performance.now(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.ttime = ((t1 - t0) / 1000).toFixed(2); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          // console.log("It took " + this.ttime + " s."); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let t1 = performance.now(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.ttime = ((t1 - t0) / 1000).toFixed(2); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // console.log("It took " + this.ttime + " s."); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+         
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.plotData.pWLs = WLs; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.plotData.pQsca = Qsca; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.plotData.pQabs = Qabs; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.plotData.pQsca_n = Qsca_n; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.plotData.pQabs_n = Qabs_n; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          this.changes++; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.changes++; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        }, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       setIsPlotMode: function () { 
														 | 
														
														 | 
														
															       setIsPlotMode: function () { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           let total_mode_n = this.simulationSetup.total_mode_n; 
														 | 
														
														 | 
														
															           let total_mode_n = this.simulationSetup.total_mode_n; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           total_mode_n++; 
														 | 
														
														 | 
														
															           total_mode_n++; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -457,14 +513,14 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       setQtotalChart: function () { 
														 | 
														
														 | 
														
															       setQtotalChart: function () { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let traceQsca, traceQabs; 
														 | 
														
														 | 
														
															         let traceQsca, traceQabs; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         traceQsca = { 
														 | 
														
														 | 
														
															         traceQsca = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          x: this.simulationRuntime.WLs, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          y: this.simulationRuntime.Qsca, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          x: this.plotData.pWLs, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          y: this.plotData.pQsca, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           type: 'scatter', 
														 | 
														
														 | 
														
															           type: 'scatter', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           name: 'Qsca' 
														 | 
														
														 | 
														
															           name: 'Qsca' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }; 
														 | 
														
														 | 
														
															         }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         traceQabs = { 
														 | 
														
														 | 
														
															         traceQabs = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          x: this.simulationRuntime.WLs, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          y: this.simulationRuntime.Qabs, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          x: this.plotData.pWLs, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          y: this.plotData.pQabs, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           type: 'scatter', 
														 | 
														
														 | 
														
															           type: 'scatter', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           name: 'Qabs' 
														 | 
														
														 | 
														
															           name: 'Qabs' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }; 
														 | 
														
														 | 
														
															         }; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -496,8 +552,8 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (is_mode_plot[mode_n] === false) continue; 
														 | 
														
														 | 
														
															             if (is_mode_plot[mode_n] === false) continue; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (this.plotSelector.isPlotQsca === true) { 
														 | 
														
														 | 
														
															             if (this.plotSelector.isPlotQsca === true) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															               let trace_sca = { 
														 | 
														
														 | 
														
															               let trace_sca = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                x: this.simulationRuntime.WLs, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                y: this.simulationRuntime.Qsca_n[mode_type][mode_n], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                x: this.plotData.pWLs, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                y: this.plotData.pQsca_n[mode_type][mode_n], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                   type: 'scatter', 
														 | 
														
														 | 
														
															                   type: 'scatter', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 name: 'Qsca ' + mode_names[mode_type] + ' ' + mode_n_names[mode_n + 1].name 
														 | 
														
														 | 
														
															                 name: 'Qsca ' + mode_names[mode_type] + ' ' + mode_n_names[mode_n + 1].name 
														 | 
													
												
											
												
													
														| 
														 | 
														
															               }; 
														 | 
														
														 | 
														
															               }; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -505,8 +561,8 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (this.plotSelector.isPlotQabs === true) { 
														 | 
														
														 | 
														
															             if (this.plotSelector.isPlotQabs === true) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															               let trace_abs = { 
														 | 
														
														 | 
														
															               let trace_abs = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                x: this.simulationRuntime.WLs, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                y: this.simulationRuntime.Qabs_n[mode_type][mode_n], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                x: this.plotData.pWLs, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                y: this.plotData.pQabs_n[mode_type][mode_n], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 type: 'scatter', 
														 | 
														
														 | 
														
															                 type: 'scatter', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 name: 'Qabs ' + mode_names[mode_type] + ' ' + mode_n_names[mode_n + 1].name 
														 | 
														
														 | 
														
															                 name: 'Qabs ' + mode_names[mode_type] + ' ' + mode_n_names[mode_n + 1].name 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }; 
														 | 
														
														 | 
														
															                 }; 
														 |