예제 #1
0
 def __init__(self,
              label="",
              site=(0, 0, 0),
              u=None,
              occupancy=1,
              scattering_info="",
              b=None):
     assert u is None or b is None
     if (b is not None): u = adptbx.b_as_u(b)
     elif (u is None): u = 0
     if (type(scattering_info) == type("")):
         if (scattering_info == ""):
             scattering_info = neutron_news_1992_table(label, 0)
         else:
             scattering_info = neutron_news_1992_table(scattering_info, 1)
     self.label = label
     self.site = site
     try:
         self.u_iso = float(u)
         self.anisotropic_flag = False
     except Exception:
         assert len(u) == 6
         self.anisotropic_flag = True
         self.u_star = tuple([float(uij) for uij in u])
     self.occupancy = occupancy
     self.scattering_info = scattering_info
     self._multiplicity = 0
     self._weight = 0
예제 #2
0
 def __init__(self, label="",
                    site=(0,0,0),
                    u=None,
                    occupancy=1,
                    scattering_info="",
                    b=None):
   assert u is None or b is None
   if   (b is not None): u = adptbx.b_as_u(b)
   elif (u is None): u = 0
   if (type(scattering_info) == type("")):
     if (scattering_info == ""):
       scattering_info = neutron_news_1992_table(label, 0)
     else:
       scattering_info = neutron_news_1992_table(scattering_info, 1)
   self.label = label
   self.site = site
   try:
     self.u_iso = float(u)
     self.anisotropic_flag = False
   except Exception:
     assert len(u) == 6
     self.anisotropic_flag = True
     self.u_star = tuple([float(uij) for uij in u])
   self.occupancy = occupancy
   self.scattering_info = scattering_info
   self._multiplicity = 0
   self._weight = 0
예제 #3
0
def exercise_01():
  def strip_num_and_sign(x):
    r = ""
    for i in x:
      if(i.isalpha()): r+=i
    return r
  for t1 in neutron.neutron_news_1992_table_iterator():
    l1 = t1.label()
    l2 = strip_num_and_sign(x=l1)
    t1 = neutron.neutron_news_1992_table(l1)
    t2 = neutron.neutron_news_1992_table(l1)
    assert approx_equal(t1.abs_cross_sect(), t2.abs_cross_sect())
    assert approx_equal(t1.bound_coh_scatt_length(),t2.bound_coh_scatt_length())
예제 #4
0
def exercise_01():
  def strip_num_and_sign(x):
    r = ""
    for i in x:
      if(i.isalpha()): r+=i
    return r
  for t1 in neutron.neutron_news_1992_table_iterator():
    l1 = t1.label()
    l2 = strip_num_and_sign(x=l1)
    t1 = neutron.neutron_news_1992_table(l1)
    t2 = neutron.neutron_news_1992_table(l1)
    assert approx_equal(t1.abs_cross_sect(), t2.abs_cross_sect())
    assert approx_equal(t1.bound_coh_scatt_length(),t2.bound_coh_scatt_length())
예제 #5
0
 def warning_if_any(self,std_lbl):
   if( self.last_table()=="neutron" ):
     from cctbx.eltbx.neutron import neutron_news_1992_table
     scattering_info = neutron_news_1992_table(std_lbl, True)
     b = scattering_info.bound_coh_scatt_length()
     if(b.imag != 0.0):
       return " WARNING! anomalous neutron scattering ("+str(b.imag) \
           +") is ignored!"
   return ""
예제 #6
0
def exercise_00():
  t = neutron.neutron_news_1992_table("eu")
  assert t.label() == "Eu"
  l = t.bound_coh_scatt_length()
  assert approx_equal(l.real, 7.22)
  assert approx_equal(l.imag, -1.26)
  assert approx_equal(t.abs_cross_sect(), 4530.)
  n = 0
  for t in neutron.neutron_news_1992_table_iterator():
    n += 1
    if (n == 1):
      assert t.label() == "H"
    elif (n == 189):
      assert t.label() == "U6+"
    u = neutron.neutron_news_1992_table(t.label())
    assert u.label() == t.label()
  assert n == 189, n
  try:
    t = neutron.neutron_news_1992_table("XX")
  except ValueError, e:
    pass
예제 #7
0
def exercise_00():
    t = neutron.neutron_news_1992_table("eu")
    assert t.label() == "Eu"
    l = t.bound_coh_scatt_length()
    assert approx_equal(l.real, 7.22)
    assert approx_equal(l.imag, -1.26)
    assert approx_equal(t.abs_cross_sect(), 4530.)
    n = 0
    for t in neutron.neutron_news_1992_table_iterator():
        n += 1
        if (n == 1):
            assert t.label() == "H"
        elif (n == 189):
            assert t.label() == "U6+"
        u = neutron.neutron_news_1992_table(t.label())
        assert u.label() == t.label()
    assert n == 189, n
    try:
        t = neutron.neutron_news_1992_table("XX")
    except ValueError, e:
        pass