コード例 #1
0
def get_library(default_structure):
    diffraction_calculator = pxm.DiffractionGenerator(300., 0.02)
    dfl = pxm.DiffractionLibraryGenerator(diffraction_calculator)
    structure_library = StructureLibrary(['Phase'], [default_structure],
                                         [np.array([(0, 0, 0), (0, 0.2, 0)])])

    return dfl.get_diffraction_library(structure_library, 0.017, 2.4, (72, 72))
コード例 #2
0
def get_template_library(structure, rot_list, edc):
    diff_gen = pxm.DiffractionLibraryGenerator(edc)
    struc_lib = StructureLibrary(['A'], [structure], [rot_list])
    library = diff_gen.get_diffraction_library(struc_lib,
                                               calibration=1 / half_side_length,
                                               reciprocal_radius=0.8,
                                               half_shape=(half_side_length,
                                                           half_side_length),
                                               with_direct_beam=False)
    return library
コード例 #3
0
def get_template_library(structure, rot_list, edc):
    diff_gen = pxm.DiffractionLibraryGenerator(edc)
    struc_lib = build_structure_lib(structure, rot_list)
    library = diff_gen.get_diffraction_library(
        struc_lib,
        calibration=1 / half_side_length,
        reciprocal_radius=0.6,
        half_shape=(half_side_length, half_side_length),
        representation='euler',
        with_direct_beam=False)
    return library
コード例 #4
0
def get_library():
        diffraction_calculator = pxm.DiffractionGenerator(300., 0.02)
        dfl = pxm.DiffractionLibraryGenerator(diffraction_calculator)

        element = pmg.Element('Si')
        lattice = pmg.Lattice.cubic(5)

        structure = pmg.Structure.from_spacegroup("F-43m", lattice, [element], [[0, 0, 0]])
        structure_library = {'Si': (structure, [(0, 0, 0)])}

        return dfl.get_diffraction_library(
            structure_library, 0.017, 2.4, (72,72) ,'euler')
コード例 #5
0
def show_rotation_list(structure_info, reciprocal_angstrom_per_pixel,
                       simulated_gaussian_sigma, beam_energy,
                       specimen_thickness):
    phases = [structure_info['name']]

    # Ångström^{-1}, extent of relrods in reciprocal space. Inverse of specimen thickness is a starting points
    max_excitation_error = 1 / specimen_thickness
    reciprocal_radius = reciprocal_angstrom_per_pixel * (half_pattern_size - 1)

    structure = structure_info['structure']
    rotation_list = generate_complete_rotation_list(structure,
                                                    *structure_info['corners'],
                                                    [0],
                                                    resolution=np.deg2rad(1))
    # Only one inplane rotation angle, remove this extra dimension
    rotation_list = rotation_list.reshape(rotation_list.shape[0], -1, 3, 3)
    rotation_list_euler = rotation_matrices_to_euler(rotation_list)

    structure_library = StructureLibrary(phases, [structure],
                                         [rotation_list_euler])

    gen = pxm.DiffractionGenerator(beam_energy,
                                   max_excitation_error=max_excitation_error)
    library_generator = pxm.DiffractionLibraryGenerator(gen)

    diffraction_library = library_generator.get_diffraction_library(
        structure_library,
        calibration=reciprocal_angstrom_per_pixel,
        reciprocal_radius=reciprocal_radius,
        half_shape=(half_pattern_size, half_pattern_size),
        with_direct_beam=False)

    plot_lib_2d(diffraction_library,
                phase_name=structure_info['name'],
                rotation_list=rotation_list,
                size=target_pattern_dimension_pixels,
                scale=reciprocal_angstrom_per_pixel,
                sigma=simulated_gaussian_sigma,
                max_r=reciprocal_radius)

    plt.show()