diff --git a/TrimSPlib.js b/TrimSPlib.js index 098ff96..157cc33 100644 --- a/TrimSPlib.js +++ b/TrimSPlib.js @@ -1194,21 +1194,17 @@ function CreateInpFile() { // This is the flag for checking layers let Check=0; let Layer=''; - let Li=''; - // This contains mapped object pairs of original:replace - let repAll = new Object(); // Loop over layers an create appropriate values for (var i=1; i<=All['numLayer'];i++){ - Li = 'L'+i; - Layer = TemplateLayer; - Layer = Layer.replace(/L1/g,Li); - TemplateFile = TemplateFile+"\n"+Layer; + // Arry containing 12 lines for each layer + let newLayer = ["","","","","","","","","","","",""]; + Check=0; // Composition of layers let LComp="L"+i+"Comp"; - let Comp = document.getElementById(LComp).value; - All[LComp] = Comp; + let Comp = All[LComp]; + if (Comp == "" || typeof Comp == 'undefined') {Check++;} let LElComp=parse_formula(Comp); for (key of Object.keys(LElComp)) { // Check if composition is understood @@ -1216,24 +1212,23 @@ function CreateInpFile() { Check++; } } - if (Comp == "" || typeof Comp == 'undefined') {Check++;} - // Write composition to results file header // Number of elements let LElem = "L"+i+"Elem"; All[LElem] = Object.keys(LElComp).length; + let nEl = All[LElem]; // Densities of layers - let Lrho="layer"+i+"rho"; + let Lrho="L"+i+"rho"; let rho = 1*All[Lrho]; - if (rho=="") {Check++;} + if (rho==0) {Check++;} // Thickness of layers let Ld ="L"+i+"d"; let d = All[Ld]; if (d=="") {Check++;} - + // Sanity check, is the layer supposed to have value? are they all there? if (Check!=0) { ErrMsg="Error: Bad chemical formula in Layer $i.\nPlease check!\n"; @@ -1241,9 +1236,6 @@ function CreateInpFile() { return ErrMsg; } - let tmp = "L"+i+"CK"; - All[tmp]=1.0; - let Sum = 0; for (key of Object.keys(LElComp)) { Sum=Sum+LElComp[key]; @@ -1252,35 +1244,26 @@ function CreateInpFile() { let Els = Object.keys(LElComp); - for (let NEl=1;NEl<=5;NEl++) { - let El = ""; - if (NEl <= Els.length) { - El = Els[NEl-1]; - } - let LEkey = "L"+i+"EL"; - let ElZ = elemPars[El].Z; - let ElW = elemPars[El].A; - let ElC = 0; - if (LElComp[El] != null){ElC=LElComp[El]/Sum;} - let ElE = elemPars[El].Elast; - let El030 = 30; - if (El=="") { El030 = 0.0;} - - All[LEkey+"Z"+NEl]=ElZ; - All[LEkey+"W"+NEl]=ElW; - All[LEkey+"C"+NEl]=ElC; - All[LEkey+"E"+NEl]=ElE; - All["L"+i+"030"+NEl]=El030; - + // first line: chemical formula, thickness, density, correction factor, number of elements + newLayer[0] += Comp + " " + d + " " + rho + " 1 " + nEl; + for (var j=0;j