def vtk_write_euler(el, euler, fname):

    nx_el, ny_el, nz_el = el, el, el
    nx_pt, ny_pt, nz_pt = el + 1, el + 1, el + 1

    no_el = nx_el * ny_el * nz_el
    dx, dy, dz = 0.02, 0.02, 0.02
    lx, ly, lz = dx * nx_el, dy * ny_el, dz * nz_el

    # Coordinates
    X = np.arange(0, lx + dx, dx)
    Y = np.arange(0, ly + dx, dy)
    Z = np.arange(0, lz + dx, dz)

    file_vtk = open(fname, 'w')

    rr.VTK_Header(file_vtk, 'MKS_results', nx_pt, ny_pt, nz_pt, X, Y, Z, no_el)

    rr.VTK_Vector(file_vtk, 'Euler_phi1Phi0phi2', euler, nx_el)

    file_vtk.close()
示例#2
0
def vtk_write(el, ns, set_id, step, loading, newdir, wrt_file):

    st = time.time()

    nx_el, ny_el, nz_el = el, el, el
    nx_pt, ny_pt, nz_pt = el + 1, el + 1, el + 1

    no_el = nx_el * ny_el * nz_el
    dx, dy, dz = 0.02, 0.02, 0.02
    lx, ly, lz = dx * nx_el, dy * ny_el, dz * nz_el

    # Coordinates
    X = np.arange(0, lx + dx, dx)
    Y = np.arange(0, ly + dx, dy)
    Z = np.arange(0, lz + dx, dz)

    f = h5py.File("data.hdf5", 'r')

    dset_name = 'gID_%s%s_s%s' % (ns, set_id, step)
    grain = f.get(dset_name)[...]

    dset_name = 'euler_%s%s_s%s' % (ns, set_id, step)
    euler = f.get(dset_name)[...]

    # NOTE: ABAQUS outputs engineering shear strains (even though they are
    # labeled the same as the normal strains). In the code below these strains
    # are multiplied by 0.5 to retrieve the tensorial strain components

    dset_name = 'epsilon%s_mks_%s%s_s%s' % (11, ns, set_id, step)
    e11 = f.get(dset_name)[...].reshape([ns, el**3])
    dset_name = 'epsilon%s_mks_%s%s_s%s' % (22, ns, set_id, step)
    e22 = f.get(dset_name)[...].reshape([ns, el**3])
    dset_name = 'epsilon%s_mks_%s%s_s%s' % (33, ns, set_id, step)
    e33 = f.get(dset_name)[...].reshape([ns, el**3])
    dset_name = 'epsilon%s_mks_%s%s_s%s' % (12, ns, set_id, step)
    e12 = 0.5 * f.get(dset_name)[...].reshape([ns, el**3])
    dset_name = 'epsilon%s_mks_%s%s_s%s' % (13, ns, set_id, step)
    e13 = 0.5 * f.get(dset_name)[...].reshape([ns, el**3])
    dset_name = 'epsilon%s_mks_%s%s_s%s' % (23, ns, set_id, step)
    e23 = 0.5 * f.get(dset_name)[...].reshape([ns, el**3])

    dset_name = 'sigma%s_mks_%s%s_s%s' % (11, ns, set_id, step)
    s11 = f.get(dset_name)[...].reshape([ns, el**3])
    dset_name = 'sigma%s_mks_%s%s_s%s' % (22, ns, set_id, step)
    s22 = f.get(dset_name)[...].reshape([ns, el**3])
    dset_name = 'sigma%s_mks_%s%s_s%s' % (33, ns, set_id, step)
    s33 = f.get(dset_name)[...].reshape([ns, el**3])
    dset_name = 'sigma%s_mks_%s%s_s%s' % (12, ns, set_id, step)
    s12 = f.get(dset_name)[...].reshape([ns, el**3])
    dset_name = 'sigma%s_mks_%s%s_s%s' % (13, ns, set_id, step)
    s13 = f.get(dset_name)[...].reshape([ns, el**3])
    dset_name = 'sigma%s_mks_%s%s_s%s' % (23, ns, set_id, step)
    s23 = f.get(dset_name)[...].reshape([ns, el**3])

    # nwd = os.getcwd() + '\\' + newdir
    nwd = os.getcwd() + '/' + newdir  # for unix
    os.chdir(nwd)

    for sn in xrange(ns):

        filename = 'mks_alphaTi_%s_ID%s_sn%s_step%s.vtk' % (loading, set_id,
                                                            sn, step)

        file_vtk = open(filename, 'w')

        rr.VTK_Header(file_vtk, 'MKS_results', nx_pt, ny_pt, nz_pt, X, Y, Z,
                      no_el)

        rr.VTK_Scalar_Int(file_vtk, 'GrainID', grain[sn, :], nx_el)

        rr.VTK_Vector(file_vtk, 'Euler_phi1Phi0phi2', euler[sn, :, :], nx_el)

        rr.VTK_Tensor(file_vtk, 'Stress', s11[sn, :], s12[sn, :], s13[sn, :],
                      s22[sn, :], s23[sn, :], s33[sn, :], nx_el)

        rr.VTK_Tensor(file_vtk, 'Strain', e11[sn, :], e12[sn, :], e13[sn, :],
                      e22[sn, :], e23[sn, :], e33[sn, :], nx_el)

        file_vtk.close()

    # return to the original directory
    os.chdir('..')

    msg = 'write .vtk files: %ss' % (time.time() - st)
    rr.WP(msg, wrt_file)
示例#3
0
def vtk_write(el, ns, set_id, step, newdir, wrt_file):

    st = time.time()

    nx_el, ny_el, nz_el = el, el, el
    nx_pt, ny_pt, nz_pt = el + 1, el + 1, el + 1

    no_el = nx_el * ny_el * nz_el
    dx, dy, dz = 0.02, 0.02, 0.02
    lx, ly, lz = dx*nx_el, dy*ny_el, dz*nz_el

    # Coordinates
    X = np.arange(0, lx+dx, dx)
    Y = np.arange(0, ly+dx, dy)
    Z = np.arange(0, lz+dx, dz)

    grain = np.load('gID_%s%s_s%s.npy' % (ns, set_id, step))
    euler = np.load('euler_%s%s_s%s.npy' % (ns, set_id, step))

    e11 = np.load('mksR%s_%s%s_s%s.npy' % (11, ns, set_id,
                                           step)).reshape([ns, el**3])
    e22 = np.load('mksR%s_%s%s_s%s.npy' % (22, ns, set_id,
                                           step)).reshape([ns, el**3])
    e33 = np.load('mksR%s_%s%s_s%s.npy' % (33, ns, set_id,
                                           step)).reshape([ns, el**3])
    e12 = np.load('mksR%s_%s%s_s%s.npy' % (12, ns, set_id,
                                           step)).reshape([ns, el**3])
    e13 = np.load('mksR%s_%s%s_s%s.npy' % (31, ns, set_id,
                                           step)).reshape([ns, el**3])
    e23 = np.load('mksR%s_%s%s_s%s.npy' % (23, ns, set_id,
                                           step)).reshape([ns, el**3])

    s11 = np.load('stress%s_%s%s_s%s.npy' % (11, ns, set_id, step))
    s22 = np.load('stress%s_%s%s_s%s.npy' % (22, ns, set_id, step))
    s33 = np.load('stress%s_%s%s_s%s.npy' % (33, ns, set_id, step))
    s12 = np.load('stress%s_%s%s_s%s.npy' % (12, ns, set_id, step))
    s13 = np.load('stress%s_%s%s_s%s.npy' % (31, ns, set_id, step))
    s23 = np.load('stress%s_%s%s_s%s.npy' % (23, ns, set_id, step))

#    nwd = os.getcwd() + '\\' + newdir
    nwd = os.getcwd() + '/' + newdir  # for unix
    os.chdir(nwd)

    for sn in xrange(ns):

        filename = 'mks_alphaTi_Xdir_ID%s_sn%s_step%s.vtk' % (set_id, sn, step)

        file_vtk = open(filename, 'w')

        rr.VTK_Header(file_vtk, 'MKS_results', nx_pt, ny_pt, nz_pt, X, Y,
                      Z, no_el)

        rr.VTK_Scalar_Int(file_vtk, 'GrainID', grain[sn, :], nx_el)

        rr.VTK_Vector(file_vtk, 'Euler_phi1Phi0phi2', euler[sn, :, :], nx_el)

        rr.VTK_Tensor(file_vtk, 'Stress', s11[sn, :], s12[sn, :], s13[sn, :],
                      s22[sn, :], s23[sn, :], s33[sn, :], nx_el)

        rr.VTK_Tensor(file_vtk, 'Strain', e11[sn, :], e12[sn, :], e13[sn, :],
                      e22[sn, :], e23[sn, :], e33[sn, :], nx_el)

        file_vtk.close()

    # return to the original directory
    os.chdir('..')

    msg = 'write .vtk files: %ss' % (time.time()-st)
    rr.WP(msg, wrt_file)