Exemplo n.º 1
0
def exercise_phase_transfer():
  sg = sgtbx.space_group_info("P 21 21 21").group()
  i = flex.miller_index(((1,2,3), (3,0,3)))
  a = flex.double((-3.6,4.6))
  p = flex.complex_double((1+2j, 0))
  assert approx_equal(tuple(miller.phase_transfer(sg, i, a, p, 1.e-10)),
                      ((-1.6099689-3.2199379j), 0j))
  a = flex.complex_double((3.6,4.6))
  try:
    miller.phase_transfer(sg, i, a, p)
  except Exception as e:
    if (str(e.__class__).find("Boost.Python.ArgumentError") < 0):
      raise RuntimeError("Unexpected exception: %s" % str(e))
  else:
    raise Exception_expected

  a = flex.double((-3.6,4.6))
  p = flex.double((10,20))
  t = miller.phase_transfer(sg, i, a, p, True)
  assert approx_equal(tuple(flex.abs(t)), flex.abs(a))
  assert approx_equal(tuple(flex.arg(t, True)), (-170,90))
  p = p * (math.pi/180)
  t = miller.phase_transfer(sg, i, a, p, False)
  assert approx_equal(tuple(flex.abs(t)), flex.abs(a))
  assert approx_equal(tuple(flex.arg(t, True)), (-170,90))
Exemplo n.º 2
0
def exercise_phase_transfer():
  sg = sgtbx.space_group_info("P 21 21 21").group()
  i = flex.miller_index(((1,2,3), (3,0,3)))
  a = flex.double((-3.6,4.6))
  p = flex.complex_double((1+2j, 0))
  assert approx_equal(tuple(miller.phase_transfer(sg, i, a, p, 1.e-10)),
                      ((-1.6099689-3.2199379j), 0j))
  a = flex.complex_double((3.6,4.6))
  try:
    miller.phase_transfer(sg, i, a, p)
  except Exception, e:
    if (str(e.__class__).find("Boost.Python.ArgumentError") < 0):
      raise RuntimeError("Unexpected exception: %s" % str(e))
Exemplo n.º 3
0
  a = flex.double((-3.6,4.6))
  p = flex.complex_double((1+2j, 0))
  assert approx_equal(tuple(miller.phase_transfer(sg, i, a, p, 1.e-10)),
                      ((-1.6099689-3.2199379j), 0j))
  a = flex.complex_double((3.6,4.6))
  try:
    miller.phase_transfer(sg, i, a, p)
  except Exception, e:
    if (str(e.__class__).find("Boost.Python.ArgumentError") < 0):
      raise RuntimeError("Unexpected exception: %s" % str(e))
  else:
    raise Exception_expected

  a = flex.double((-3.6,4.6))
  p = flex.double((10,20))
  t = miller.phase_transfer(sg, i, a, p, True)
  assert approx_equal(tuple(flex.abs(t)), flex.abs(a))
  assert approx_equal(tuple(flex.arg(t, True)), (-170,90))
  p = p * (math.pi/180)
  t = miller.phase_transfer(sg, i, a, p, False)
  assert approx_equal(tuple(flex.abs(t)), flex.abs(a))
  assert approx_equal(tuple(flex.arg(t, True)), (-170,90))

def exercise_f_calc_map():
  i = flex.miller_index((   (1,1,0), (-1,-1,0), (1,2,3), (3,2,1) ))
  f = flex.complex_double((    1+1j,      2+2j,     3+3j,   4+4j ))
  f_map = miller.f_calc_map(i, f, anomalous_flag=True)
  assert f_map[(1,1,0)] == 1+1j
  assert f_map[(-1,-1,0)] == 2+2j
  assert f_map[(1,2,3)] == 3+3j
  assert f_map[(3,2,1)] == 4+4j
Exemplo n.º 4
0
    a = flex.double((-3.6, 4.6))
    p = flex.complex_double((1 + 2j, 0))
    assert approx_equal(tuple(miller.phase_transfer(sg, i, a, p, 1.e-10)),
                        ((-1.6099689 - 3.2199379j), 0j))
    a = flex.complex_double((3.6, 4.6))
    try:
        miller.phase_transfer(sg, i, a, p)
    except Exception, e:
        if (str(e.__class__).find("Boost.Python.ArgumentError") < 0):
            raise RuntimeError("Unexpected exception: %s" % str(e))
    else:
        raise Exception_expected

    a = flex.double((-3.6, 4.6))
    p = flex.double((10, 20))
    t = miller.phase_transfer(sg, i, a, p, True)
    assert approx_equal(tuple(flex.abs(t)), flex.abs(a))
    assert approx_equal(tuple(flex.arg(t, True)), (-170, 90))
    p = p * (math.pi / 180)
    t = miller.phase_transfer(sg, i, a, p, False)
    assert approx_equal(tuple(flex.abs(t)), flex.abs(a))
    assert approx_equal(tuple(flex.arg(t, True)), (-170, 90))


def exercise_f_calc_map():
    i = flex.miller_index(((1, 1, 0), (-1, -1, 0), (1, 2, 3), (3, 2, 1)))
    f = flex.complex_double((1 + 1j, 2 + 2j, 3 + 3j, 4 + 4j))
    f_map = miller.f_calc_map(i, f, anomalous_flag=True)
    assert f_map[(1, 1, 0)] == 1 + 1j
    assert f_map[(-1, -1, 0)] == 2 + 2j
    assert f_map[(1, 2, 3)] == 3 + 3j