Beispiel #1
0
def exercise_n_gaussian():
    assert xray_scattering.n_gaussian_table_size() == 213
    assert xray_scattering.n_gaussian_table_index("H") == 0
    assert xray_scattering.n_gaussian_table_index("Pu6+") == 212
    for n_terms in [6, 5, 4, 3, 2, 1]:
        e = xray_scattering.n_gaussian_table_entry(0, n_terms)
        assert e.label() == "H"
        g = e.gaussian()
        assert g.n_terms() == n_terms
        assert approx_equal(g.at_x(0), 1, eps=0.01 + 1.e-6)
        assert e.max_stol() > 0
        assert e.d_min() > 0
        assert e.max_relative_error() > 0
    for i_entry in range(xray_scattering.n_gaussian_table_size()):
        for n_terms in [6, 5, 4, 3, 2, 1]:
            e = xray_scattering.n_gaussian_table_entry(i_entry, n_terms)
            assert e.gaussian().n_terms() == n_terms
            f = xray_scattering.n_gaussian_table_entry(e.label(), n_terms)
            assert f.label() == e.label()
            assert f.gaussian().n_terms() == n_terms
        for d_min in [0, 10]:
            for max_relative_error in [0, 0.5]:
                e = xray_scattering.n_gaussian_table_entry(
                    i_entry, d_min, max_relative_error)
                f = xray_scattering.n_gaussian_table_entry(
                    e.label(), d_min, max_relative_error)
                assert f.label() == e.label()
                if (d_min == 0):
                    n_terms = 6
                else:
                    n_terms = 1
                assert e.gaussian().n_terms() == n_terms
                assert f.gaussian().n_terms() == n_terms
    label = "Be"
    be_max_stols = []
    be_max_relative_errors = []
    for n_terms in [6, 5, 4, 3, 2, 1]:
        e = xray_scattering.n_gaussian_table_entry(label, n_terms)
        be_max_stols.append(e.max_stol())
        be_max_relative_errors.append(e.max_relative_error())
    for n_terms, stol, max_relative_error in zip([6, 5, 4, 3, 2, 1],
                                                 be_max_stols,
                                                 be_max_relative_errors):
        e = xray_scattering.n_gaussian_table_entry("Be",
                                                   1 / (2 * stol) + 1.e-6,
                                                   max_relative_error + 1.e-6)
        assert e.gaussian().n_terms() == n_terms
        assert approx_equal(e.max_stol(), stol)
        if (n_terms < 6):
            e = xray_scattering.n_gaussian_table_entry(
                "Be", 1 / (2 * stol) - 1.e-6,
                max(be_max_relative_errors) + 1.e-6)
            assert e.gaussian().n_terms() == min(n_terms + 1, 6)
    assert be_max_relative_errors[1] > be_max_relative_errors[2]
def exercise_n_gaussian():
  assert xray_scattering.n_gaussian_table_size() == 213
  assert xray_scattering.n_gaussian_table_index("H") == 0
  assert xray_scattering.n_gaussian_table_index("Pu6+") == 212
  for n_terms in [6,5,4,3,2,1]:
    e = xray_scattering.n_gaussian_table_entry(0, n_terms)
    assert e.label() == "H"
    g = e.gaussian()
    assert g.n_terms() == n_terms
    assert approx_equal(g.at_x(0), 1, eps=0.01+1.e-6)
    assert e.max_stol() > 0
    assert e.d_min() > 0
    assert e.max_relative_error() > 0
  for i_entry in xrange(xray_scattering.n_gaussian_table_size()):
    for n_terms in [6,5,4,3,2,1]:
      e = xray_scattering.n_gaussian_table_entry(i_entry, n_terms)
      assert e.gaussian().n_terms() == n_terms
      f = xray_scattering.n_gaussian_table_entry(e.label(), n_terms)
      assert f.label() == e.label()
      assert f.gaussian().n_terms() == n_terms
    for d_min in [0,10]:
      for max_relative_error in [0,0.5]:
        e = xray_scattering.n_gaussian_table_entry(
          i_entry, d_min, max_relative_error)
        f = xray_scattering.n_gaussian_table_entry(
          e.label(), d_min, max_relative_error)
        assert f.label() == e.label()
        if (d_min == 0):
          n_terms = 6
        else:
          n_terms = 1
        assert e.gaussian().n_terms() == n_terms
        assert f.gaussian().n_terms() == n_terms
  label = "Be"
  be_max_stols = []
  be_max_relative_errors = []
  for n_terms in [6,5,4,3,2,1]:
    e = xray_scattering.n_gaussian_table_entry(label, n_terms)
    be_max_stols.append(e.max_stol())
    be_max_relative_errors.append(e.max_relative_error())
  for n_terms,stol,max_relative_error in zip([6,5,4,3,2,1],
                                             be_max_stols,
                                             be_max_relative_errors):
    e = xray_scattering.n_gaussian_table_entry(
      "Be", 1/(2*stol)+1.e-6, max_relative_error+1.e-6)
    assert e.gaussian().n_terms() == n_terms
    assert approx_equal(e.max_stol(), stol)
    if (n_terms < 6):
      e = xray_scattering.n_gaussian_table_entry(
        "Be", 1/(2*stol)-1.e-6, max(be_max_relative_errors)+1.e-6)
      assert e.gaussian().n_terms() == min(n_terms+1, 6)
  assert be_max_relative_errors[1] > be_max_relative_errors[2]
def ensure_common_symbols():
  lbl_it = []
  for e in xray_scattering.it1992_iterator(): lbl_it.append(e.label())
  lbl_it.sort()
  lbl_wk = []
  for e in xray_scattering.wk1995_iterator(): lbl_wk.append(e.label())
  lbl_wk.sort()
  assert lbl_wk == lbl_it
  lbl_ng = []
  for i_entry in xrange(xray_scattering.n_gaussian_table_size()):
    lbl_ng.append(xray_scattering.n_gaussian_table_entry(i_entry, 6).label())
  lbl_ng.sort()
  assert lbl_ng == lbl_it
  #
  for label in xray_scattering.standard_labels_list():
    it = xray_scattering.it1992(label, True).fetch()
    wk = xray_scattering.wk1995(label, True).fetch()
    ng = xray_scattering.n_gaussian_table_entry(label, 0, 0).gaussian()
    assert approx_equal(wk.at_stol(0)/it.at_stol(0), 1, 5.e-3)
Beispiel #4
0
def ensure_common_symbols():
    lbl_it = []
    for e in xray_scattering.it1992_iterator():
        lbl_it.append(e.label())
    lbl_it.sort()
    lbl_wk = []
    for e in xray_scattering.wk1995_iterator():
        lbl_wk.append(e.label())
    lbl_wk.sort()
    assert lbl_wk == lbl_it
    lbl_ng = []
    for i_entry in range(xray_scattering.n_gaussian_table_size()):
        lbl_ng.append(
            xray_scattering.n_gaussian_table_entry(i_entry, 6).label())
    lbl_ng.sort()
    assert lbl_ng == lbl_it
    #
    for label in xray_scattering.standard_labels_list():
        it = xray_scattering.it1992(label, True).fetch()
        wk = xray_scattering.wk1995(label, True).fetch()
        ng = xray_scattering.n_gaussian_table_entry(label, 0, 0).gaussian()
        assert approx_equal(wk.at_stol(0) / it.at_stol(0), 1, 5.e-3)