UNPKG

biojs-vis-pdbviewer

Version:

A BioJS 2.0 component to view protein structures

36 lines (35 loc) 1.27 kB
Clazz.declarePackage ("JM.FF"); Clazz.load (["JM.FF.Calculation"], "JM.FF.UFFVDWCalc", null, function () { c$ = Clazz.declareType (JM.FF, "UFFVDWCalc", JM.FF.Calculation); Clazz.overrideMethod (c$, "setData", function (calc, ia, ib, dd) { this.a = this.calcs.minAtoms[ia]; this.b = this.calcs.minAtoms[ib]; var parA = this.calcs.getParameter (this.a.sType); var parB = this.calcs.getParameter (this.b.sType); var Xa = parA.dVal[2]; var Da = parA.dVal[3]; if (parB == null || parB.dVal == null) System.out.println ("OHOH"); var Xb = parB.dVal[2]; var Db = parB.dVal[3]; var Dab = 4.1868 * Math.sqrt (Da * Db); var Xab = Math.sqrt (Xa * Xb); calc.addLast ([[ia, ib], [Xab, Dab]]); }, "JU.Lst,~N,~N,~N"); Clazz.overrideMethod (c$, "compute", function (dataIn) { this.getPointers (dataIn); var Xab = this.dData[0]; var Dab = this.dData[1]; this.calcs.setPairVariables (this); var term = Xab / this.rab; var term6 = term * term * term; term6 *= term6; this.energy = Dab * term6 * (term6 - 2.0); if (this.calcs.gradients) { this.dE = Dab * 12.0 * (1.0 - term6) * term6 * term / Xab; this.calcs.addForces (this, 2); }if (this.calcs.logging) this.calcs.appendLogData (this.calcs.getDebugLine (5, this)); return this.energy; }, "~A"); });