Пример #1
0
 def sputter(self, adatomList):
     #number of particles per ms to reach sputter rate
     initServ = InitValService()
     noa = initServ.getParticleRate(self.initVal)
     pServ = ParticleService()
     for i in range(noa):
         adatom = pServ.createAdatom(self.initVal)
         adatomList.addParticle(adatom)
Пример #2
0
 def atomFlow(self, initval, cluster):
     initServ = InitValService()
     for adCluster in cluster.getContacts():
         if adCluster.getN()>cluster.getN():
             continue
         else:
             flow = initServ.getAtomFlow(initval, adCluster.getR())
             if adCluster.atomFlow(-1*flow) == True:
                 cluster.atomFlow(flow)
             else:
                 cluster.atomFlow(adCluster.getN())
                 adCluster.atomFlow(-1* adCluster.getN())
Пример #3
0
 def setClusterRev(self, initval, cluster, coalescenceList):
     """
     Gets the interface Atoms of the clusters
     associated with a coalescence group and
     calculates the event radius
     """
     initServ = InitValService()
     R = cluster.getR()
     liste = coalescenceList.findCluster(cluster)
     N = liste.getInterN()
     rev = initServ.getREv(initval, N)
     cluster.setREv( rev / numpy.power(3, N-1) + R )
Пример #4
0
 def createAdatom(self, initval):
     """
     Erzeugt ein Adatom und
     fuegt es zur Liste hinzu
     """
     assert(initval.getValue('area') > 0), 'erzeugeAdatome: Area zu klein'
     assert(initval.getValue('radius') > 0), 'erzeugeAdatome: Radius zu klein'
     
     initServ = InitValService()
     
     x = (random.random() - 0.5) * initval.getValue('area')
     y = (random.random() - 0.5) * initval.getValue('area')
     r = initval.getValue('radius')
     rev = initServ.getAdatomEventRadius(initval) + r
     
     adatom = Particle(x,y,r,rev)
     
     return adatom
Пример #5
0
 def getFusedREv(self, initval, pl):
     initServ = InitValService()
     N = pl.getInterN()
     return initServ.getREv(initval, N)