Esempio n. 1
0
  def getKinematics( self , dphi , elstate ):
  
    kin = Kinematics(self.rank,self.nstr)

    kin.F = eye(self.rank)
  
    for i in range(len(dphi)):
      for j in range(self.rank):
        for k in range(self.rank):
          kin.F[j,k] += dphi[i,k]*elstate[self.rank*i+j]

    kin.E = 0.5*(dot(kin.F.transpose(),kin.F)-eye(self.rank))

    kin.strain[0] = kin.E[0,0]
    kin.strain[1] = kin.E[1,1]

    if self.rank == 2:
      kin.strain[2] = 2.0*kin.E[0,1]
    elif self.rank == 3:
      kin.strain[2] =     kin.E[2,2]
      kin.strain[3] = 2.0*kin.E[1,2]
      kin.strain[4] = 2.0*kin.E[0,2]
      kin.strain[5] = 2.0*kin.E[0,1]
    
    return kin
 def getKinematics(self, dphi, elstate):
     kin = Kinematics(2, 3)
     kin.F = eye(2)
     for i in range(len(dphi)):
         for j in range(2):
             for k in range(2):
                 kin.F[j, k] += dphi[i, k] * elstate[2 * i + j]
     # kin.E = 0.5 * (dot(kin.F.transpose(), kin.F) - eye(2))
     # kin.strain[0] = kin.E[0, 0]
     # kin.strain[1] = kin.E[1, 1]
     # kin.strain[2] = 2.0 * kin.E[0, 1]
     return kin
  def getKinematics( self , dphi , elstate ):
  
    kin = Kinematics(2,3)

    kin.F = eye(2)
  
    for i in range(len(dphi)):
      for j in range(2):
        for k in range(2):
          kin.F[j,k] += dphi[i,k]*elstate[2*i+j]

    kin.E = 0.5*(dot(kin.F.transpose(),kin.F)-eye(2))

    kin.strain[0] = kin.E[0,0]
    kin.strain[1] = kin.E[1,1]
    kin.strain[2] = 2.0*kin.E[0,1]
    
    return kin
Esempio n. 4
0
    def getKinematics(self, dphi, h, elemdat, r):

        kin = Kinematics(3, 6)

        kin.F = eye(3)
        kin.F0 = eye(3)

        elstate = elemdat.state
        elstate0 = elstate - elemdat.Dstate

        invr = 1.0 / r

        for i, (dp, p) in enumerate(zip(dphi, h)):
            kin.F[0, 0] += dp[0] * elstate[2 * i]
            kin.F[0, 1] += dp[1] * elstate[2 * i]
            kin.F[1, 0] += dp[0] * elstate[2 * i + 1]
            kin.F[1, 1] += dp[1] * elstate[2 * i + 1]
            kin.F[2, 2] += p * elstate[2 * i] * invr

            kin.F0[0, 0] += dp[0] * elstate0[2 * i]
            kin.F0[0, 1] += dp[1] * elstate0[2 * i]
            kin.F0[1, 0] += dp[0] * elstate0[2 * i + 1]
            kin.F0[1, 1] += dp[1] * elstate0[2 * i + 1]
            kin.F0[2, 2] += p * elstate0[2 * i] * invr

        kin.E = 0.5 * (dot(kin.F.transpose(), kin.F) - eye(3))
        kin.E0 = 0.5 * (dot(kin.F0.transpose(), kin.F0) - eye(3))

        dE = kin.E - kin.E0

        kin.strain[0] = kin.E[0, 0]
        kin.strain[1] = kin.E[1, 1]
        kin.strain[2] = kin.E[2, 2]
        kin.strain[3] = 2.0 * kin.E[1, 2]
        kin.strain[4] = 2.0 * kin.E[0, 2]
        kin.strain[5] = 2.0 * kin.E[0, 1]

        return kin