Beispiel #1
0
 def set_diffracting_famillies(self, hkl_list):
     """Set the list of diffracting hk planes using a set of families."""
     symmetry = self.exp.get_sample().get_material().get_symmetry()
     hkl_planes = []
     for hkl in hkl_list:
         # here we set include_friedel_pairs to False as we take it into account in the calculation
         planes = HklPlane.get_family(hkl,
                                      include_friedel_pairs=True,
                                      crystal_structure=symmetry)
         for plane in planes:  # fix the lattice
             plane.set_lattice(self.exp.get_sample().get_material())
         hkl_planes.extend(planes)
     self.set_hkl_planes(hkl_planes)
Beispiel #2
0
 def test_get_family(self):
     self.assertEqual(
         len(HklPlane.get_family('001', crystal_structure=Symmetry.cubic)),
         3)
     self.assertEqual(
         len(
             HklPlane.get_family('001',
                                 crystal_structure=Symmetry.cubic,
                                 include_friedel_pairs=True)), 6)
     self.assertEqual(
         len(HklPlane.get_family('111', crystal_structure=Symmetry.cubic)),
         4)
     self.assertEqual(
         len(
             HklPlane.get_family('111',
                                 crystal_structure=Symmetry.cubic,
                                 include_friedel_pairs=True)), 8)
     self.assertEqual(
         len(HklPlane.get_family('011', crystal_structure=Symmetry.cubic)),
         6)
     self.assertEqual(
         len(
             HklPlane.get_family('011',
                                 crystal_structure=Symmetry.cubic,
                                 include_friedel_pairs=True)), 12)
     self.assertEqual(
         len(HklPlane.get_family('112', crystal_structure=Symmetry.cubic)),
         12)
     self.assertEqual(
         len(
             HklPlane.get_family('112',
                                 crystal_structure=Symmetry.cubic,
                                 include_friedel_pairs=True)), 24)
     self.assertEqual(
         len(HklPlane.get_family('123', crystal_structure=Symmetry.cubic)),
         24)
     self.assertEqual(
         len(
             HklPlane.get_family('123',
                                 crystal_structure=Symmetry.cubic,
                                 include_friedel_pairs=True)), 48)
     self.assertEqual(
         len(
             HklPlane.get_family('001',
                                 crystal_structure=Symmetry.tetragonal)), 1)
     self.assertEqual(
         len(
             HklPlane.get_family('001',
                                 crystal_structure=Symmetry.tetragonal,
                                 include_friedel_pairs=True)), 2)
     self.assertEqual(
         len(
             HklPlane.get_family('010',
                                 crystal_structure=Symmetry.tetragonal)), 2)
     self.assertEqual(
         len(
             HklPlane.get_family('010',
                                 crystal_structure=Symmetry.tetragonal,
                                 include_friedel_pairs=True)), 4)
     self.assertEqual(
         len(
             HklPlane.get_family('100',
                                 crystal_structure=Symmetry.tetragonal)), 2)
     self.assertEqual(
         len(
             HklPlane.get_family('100',
                                 crystal_structure=Symmetry.tetragonal,
                                 include_friedel_pairs=True)), 4)
     self.assertEqual(
         len(
             HklPlane.get_family([1, 0, 2],
                                 crystal_structure=Symmetry.tetragonal,
                                 include_friedel_pairs=True)), 8)
     self.assertEqual(
         len(
             HklPlane.get_family([-1, 0, 2],
                                 crystal_structure=Symmetry.tetragonal,
                                 include_friedel_pairs=True)), 8)
     self.assertEqual(
         len(
             HklPlane.get_family([0, 1, 2],
                                 crystal_structure=Symmetry.tetragonal,
                                 include_friedel_pairs=True)), 8)
     self.assertEqual(
         len(
             HklPlane.get_family([0, -1, 2],
                                 crystal_structure=Symmetry.tetragonal,
                                 include_friedel_pairs=True)), 8)
Beispiel #3
0
from pymicro.view.vtk_utils import axes_actor, lattice_3d_with_planes, setup_camera

if __name__ == '__main__':
    '''
    Create a 3d scene with a cubic crystal lattice.
    Hkl planes are added to the lattice and displayed.
    '''
    # create the 3D scene
    base_name = os.path.splitext(__file__)[0]
    s3d = Scene3D(display=False, ren_size=(800, 800), name=base_name)

    # create the unit lattice cell
    l = Lattice.face_centered_cubic(1.0)

    # create the slip planes and the cubic lattice actor
    hklplanes = HklPlane.get_family('111')
    cubic = lattice_3d_with_planes(l, hklplanes, origin='mid', \
                                   crystal_orientation=None, show_normal=True, plane_opacity=0.5)
    s3d.add(cubic)

    # add axes actor
    axes = axes_actor(0.5, fontSize=50)
    s3d.add(axes)

    # set up camera and render
    cam = setup_camera(size=(1, 1, 1))
    cam.SetFocalPoint(0, 0, 0)
    cam.SetPosition(4, -1.5, 1.5)  # change the position to something better
    cam.Dolly(1.2)  # get a little closer
    s3d.set_camera(cam)
    s3d.render()