コード例 #1
0
 def get_eps(self, sctx, u):
     e_id = sctx.e_id
     p_id = sctx.p_id
     X_mtx = sctx.X
     r_pnt = sctx.loc
     B_mtx = self.fets_eval.get_B_mtx(r_pnt, X_mtx,
                                      self.dof_node_ls_values[e_id],
                                      self.vtk_ls_values[e_id][p_id])
     eps = dot(B_mtx, u)
     shape = eps.shape[0]
     if shape == 1:
         return eps
     elif shape == 3:
         return map2d_eps_eng_to_mtx(eps)
     elif shape == 6:
         return map3d_eps_eng_to_mtx(eps)
psi_mtx  = array([[  5.60550123e+00,  -3.88578059e-16],
                  [ -3.88578059e-16,   1.81245877e+00]])
print 'psi_mtx', psi_mtx
print '\n'

psi_arr  = array([7.6740679892, 3.80736201542, 1.0, 1.0, 1.0, 3.80736201542, 7.6740679892])
print 'psi_arr', psi_arr
print '\n'

print '# apparent strain tensor:'
eps_app_eng = array([  4.75000000e-04,  -3.83961167e-05,  -2.96738868e-20])
print 'eps_app_eng', eps_app_eng
print '\n'

print '# projection of the strain tensor:'
eps_app_mtx = map2d_eps_eng_to_mtx(eps_app_eng)
e_vct_arr = array( [ dot( eps_app_mtx, mpn ) for mpn in _MPN ] )
print 'e_vct_arr', e_vct_arr
print '\n'

eps_eff_mtx = dot( phi_mtx, eps_app_mtx )


print '# microplane strain vector based on stiffness version:'
e_app_vct_arr_sv = array([[  4.63090758e-04,  -8.54393975e-06],
                          [  3.71369954e-04,  -2.39395872e-05],
                          [  2.06094776e-04,  -3.45937058e-05],
                          [  1.42484181e-20,  -3.83961167e-05],
                          [ -2.06094776e-04,  -3.45937058e-05],
                          [ -3.71369954e-04,  -2.39395872e-05],
                          [ -4.63090758e-04,  -8.54393975e-06]])