예제 #1
0
파일: make_cc.py 프로젝트: Micket/CCBuilder
        grain_ids_coarse_0, overlaps_coarse_0, voxel_indices_coarse_0 = ccb_c.populate_voxels(M_coarse, L, trunc_triangles, nr_tries, M_coarse, 1.0)
    grain_ids_0, overlaps_0, voxel_indices_0 = ccb_c.populate_voxels(M, L, trunc_triangles, 1, 0,  1.0)

phases_0, good_voxels_0, euler_angles_0, phase_volumes_0, grain_volumes_0 = ccb_c.calc_grain_prop(M, grain_ids_0, trunc_triangles)
surface_voxels_0, gb_voxels_0, interface_voxels_0 = ccb_c.calc_surface_prop(M, grain_ids_0)

vol_frac_WC_0 = phase_volumes_0[1]/np.float(np.sum(phase_volumes_0))
vol_frac_Co_0 = 1 - vol_frac_WC_0
mass_frac_WC_0 = ccb.mass_fraction(vol_frac_WC_0)
d_eq_0 = ccb.volume_to_eq_d(grain_volumes_0*delta_x**3)
sum_gb_voxels_0 = np.sum(gb_voxels_0)
contiguity_0 = sum_gb_voxels_0 / np.float(sum_gb_voxels_0 + np.sum(interface_voxels_0))


# Compute the Co connectivity (important parameter for mass transport through the Co matrix) by counting the unique grains
co_grain_sizes, co_ids = ccb.compute_co_grain_sizes(M, grain_ids_0)
#ccb.write_hdf5(fname + '_nopotts.dream3d', 3*[M], 3*[delta_x], trunc_triangles, grain_ids_0, phases_0, good_voxels_0, euler_angles_0, surface_voxels_0, gb_voxels_0, interface_voxels_0, overlaps_0)

# Compute actual volume fraction:
print("Generated volume fraction of Co (before tweaks):", vol_frac_Co_0)
print("Contiguity (before tweaks)", contiguity_0)

# Make new copies to play with the monte carlo potts simulation.
grain_ids_2 = grain_ids_0.copy()
gb_voxels_2 = gb_voxels_0.copy()

if mc_steps > 0:
    start_time = time.time()
    # Do Potts on coarse grid first for an improved initial guess.
    M_coarseMC = M//2
    grain_ids_coarse, overlaps_coarse, voxel_indices_coarse = ccb_c.populate_voxels(M_coarseMC, L, trunc_triangles, 0, M_coarseMC,  1.0)