Example #1
0
 def getDBlocks(self):
     self.dBk, self.lBkID, lTT, tD = {}, [], [], self.dIA['tDimBkG']
     nX, nY, aDRI = self.nX, self.nY, self.cSonne.aDRInv
     #         aPD = np.array(self.dIA['basisR3'] + [-v for v in self.dIA['basisR3']])
     #         aArea = np.array([self.aDim[1]*self.aDim[2], self.aDim[0]*self.aDim[2],
     #                           self.aDim[0]*self.aDim[1]]*2)
     #         aLtCol = [np.dot(cPD, aDRI)*aArea[k] for k, cPD in enumerate(aPD)]
     #         aLtCol = np.array([max(aLtCol[k], aLtCol[k + 3]) for k in range(3)])
     #         aLtCol /= sum(aLtCol)
     for i in reversed(range(self.nZ)):
         tLZ = (i, self.nZ - i - 1)
         for j in range(self.nY):
             tLY = (j, self.nY - j - 1)
             for k in range(self.nX):
                 tLX = (k, self.nX - k - 1)
                 tPMid = (-(nX // 2) * tD[0] + ((nX + 1) % 2) * tD[0] / 2. +
                          k * tD[0], -(nY // 2) * tD[1] +
                          ((nY + 1) % 2) * tD[1] / 2. + j * tD[1],
                          tD[2] / 2. + i * tD[2])
                 pRSunl = Fkt.getLenNewCS(tPMid, aDRI)
                 lTT.append((pRSunl, tPMid, self.getTLayer(tLX, tLY, tLZ)))
     self.getLAEdgeXtr([lTT[0][1], lTT[-1][1]])
     lTT.sort(reverse=True)
     for (i, (pRSunl, tPMid, tLC)) in enumerate(lTT):
         self.lBkID.append((pRSunl, tLC))
         self.dBk[tLC] = Block(self.dIA, self.aDim, self.tSigRays,
                               self.lAEdgeXtr, pRSunl, tPMid, tLC, i)
     for keyBk in self.dBk:
         self.updateBlock(keyBk)
Example #2
0
 def __init__(self,
              dInA,
              dInTp,
              cMk,
              IDBlt,
              vS=P0,
              vDB=vUz,
              vDZ=vUz,
              lenBl=1.,
              widBl=1.,
              shpBl='circle',
              ageBl=1):
     self.dIA = dInA
     self.dITp = dInTp
     self.cMk = cMk
     self.cM = self.dIA['Mode']
     self.IDBt = IDBlt
     self.pS = vS
     self.vDirBt = vDB
     self.vDirZw = vDZ
     self.shpBt = shpBl
     self.lenBt = lenBl
     self.widBt = widBl
     self.getArea()
     self.pMid = self.pS + (self.lenBt / 2.) * self.vDirBt
     self.pRBt = Fkt.getLenNewCS(self.pMid, self.vDirBt)
     self.ageBt = ageBl
     self.addToBlock()