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]])