Exemplo n.º 1
0
 def OnwallIneffectiveCollision(self, mole, oldMol, index):
     operator = Operators()
     newMol = operator.OnWall(oldMol)
     PEnew = CRO().CalculatePE(mole, newMol)
     KEnew = 0.0
     mole.numHit[index] = mole.numHit[index] + 1
     t = mole.PE1[index] + mole.KE1[index]
     if (t >= PEnew):
         a = (random.uniform(0, 1) *
              (1 - self.KELossRate)) + self.KELossRate
         KEnew = (mole.PE1[index] - PEnew + mole.KE1[index]) * a
         mole.moleculeTable[index] = newMol
         mole.PE1[index] = PEnew
         mole.KE1[index] = KEnew
         if (mole.PE1[index] < mole.minPE[index]):
             mole.minStruct[index] = mole
             mole.minPE[index] = mole.PE1[index]
             mole.minHit[index] = mole.numHit[index]
Exemplo n.º 2
0
	def OnwallIneffectiveCollision(self,mole,oldMol, index,shiftcost,flowcost,N):
		operator = Operators()
		newMol = operator.OnWall(oldMol)
		PEnew = CRO().CalculatePE(newMol,shiftcost,flowcost,N)
		KEnew = 0.0
		#mole.numHit[index] = mole.numHit[index] + 1
		t = mole.PE[index] + mole.KE1[index]
		if (t>=PEnew):
			a = (random.uniform(0,1) * (1-self.KELossRate))+self.KELossRate
			#KEnew = (mole.PE[index] - PEnew + mole.KE[index])*a
			'''
			#mole.KE1[index] = KEnew
			if(mole.PE[index]<mole.minPE[index]):
				mole.minStruct.append(mole)
				#mole.minPE[index] = mole.PE[index]
				#mole.minHit[index] = mole.numHit[index]
			#endif
			'''
		mole.moleculeTable.append(newMol)
		mole.KE1.append(KEnew)
		#print(mole.moleculeTable)
		mole.PE.append(PEnew)
		mole.KE1.append(KEnew)