ccb_c.make_mcp_bound(M, grain_ids_2, gb_voxels_2, voxel_indices_0, mc_steps, kBT) print np.str(time.time() - start_time) + " seconds" surface_voxels_2, gb_voxels_2_1, interface_voxels_2 = ccb_c.calc_surface_prop(M, grain_ids_2) phases_2, good_voxels_2, euler_angles_2, phase_volumes_2, grain_volumes_2 = ccb_c.calc_grain_prop(M, grain_ids_2, trunc_triangles) vol_frac_WC_2 = phase_volumes_2[1]/np.float(M**3) vol_frac_Co_2 = 1 - vol_frac_WC_2 mass_frac_WC_2 = ccb.mass_fraction(vol_frac_WC_2) d_eq_2 = ccb.volume_to_eq_d(grain_volumes_2*delta_x**3) sum_gb_voxels_2 = np.sum(gb_voxels_2) contiguity_2 = sum_gb_voxels_2 / np.float(sum_gb_voxels_2 + np.sum(interface_voxels_2)) ccb.write_hdf5('testfile_2.hdf5', 3*[M], 3*[delta_x], trunc_triangles, grain_ids_2, phases_2, good_voxels_2, euler_angles_2, surface_voxels_2, gb_voxels_2, interface_voxels_2, overlaps_0) ccb.write_oofem('testfile_2', 3*[M], 3*[delta_x], trunc_triangles, grain_ids_2) # Make new copies to play with the bounded monte carlo potts simulation with stray voxel cleanup. # No MCP_Bound is actually run here? if False: grain_ids_3 = grain_ids_2.copy() gb_voxels_3 = gb_voxels_2.copy() start_time = time.time() ccb_c.stray_cleanup(M, grain_ids_3) print np.str(time.time() - start_time) + " seconds" surface_voxels_3, gb_voxels_3_1, interface_voxels_3 = ccb_c.calc_surface_prop(M, grain_ids_3) phases_3, good_voxels_3, euler_angles_3, phase_volumes_3, grain_volumes_3 = ccb_c.calc_grain_prop(M, grain_ids_3, trunc_triangles)
phases_2, good_voxels_2, euler_angles_2, phase_volumes_2, grain_volumes_2 = ccb_c.calc_grain_prop(M, grain_ids_2, trunc_triangles) else: surface_voxels_2, gb_voxels_2, interface_voxels_2 = surface_voxels_0, gb_voxels_0, interface_voxels_0 phases_2, good_voxels_2, euler_angles_2, phase_volumes_2, grain_volumes_2 = phases_0, good_voxels_0, euler_angles_0, phase_volumes_0, grain_volumes_0 vol_frac_WC_2 = phase_volumes_2[1]/np.float(M**3) vol_frac_Co_2 = 1 - vol_frac_WC_2 mass_frac_WC_2 = ccb.mass_fraction(vol_frac_WC_2) d_eq_2 = ccb.volume_to_eq_d(grain_volumes_2*delta_x**3) sum_gb_voxels_2 = np.sum(gb_voxels_2) contiguity_2 = sum_gb_voxels_2 / np.float(sum_gb_voxels_2 + np.sum(interface_voxels_2)) print("Contiguity (after Potts)", contiguity_2, "volume fraction", 1-vol_frac_WC_2, "mass fraction", ccb.mass_fraction(vol_frac_WC_2)) ccb.write_hdf5(fname + '.dream3d', 3*[M], 3*[delta_x], trunc_triangles, grain_ids_2, phases_2, good_voxels_2, euler_angles_2, surface_voxels_2, gb_voxels_2, interface_voxels_2, overlaps_0) ccb.write_oofem(fname, 3*[M], 3*[delta_x], trunc_triangles, grain_ids_2) #ccb.write_oofem_transport(fname + "_d", 3*[M], 3*[delta_x], phases_2) # Make new copies to play stray voxel cleanup. if False: grain_ids_3 = grain_ids_2.copy() gb_voxels_3 = gb_voxels_2.copy() start_time = time.time() ccb_c.stray_cleanup(M, grain_ids_3) print(np.str(time.time() - start_time) + " seconds") surface_voxels_3, gb_voxels_3_1, interface_voxels_3 = ccb_c.calc_surface_prop(M, grain_ids_3) phases_3, good_voxels_3, euler_angles_3, phase_volumes_3, grain_volumes_3 = ccb_c.calc_grain_prop(M, grain_ids_3, trunc_triangles) vol_frac_WC_3 = phase_volumes_3[1]/np.float(M**3)