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
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
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())
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 ""
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