Ejemplo n.º 1
0
def test_Fourier_init():
    four = Fourier()
    assert four.radiation == 'neutron'
    assert four.structure is None
    assert four.grid.bins == (101, 101)
    assert_array_equal(four.grid.ll, [0.0, 0.0, 0.0])
    assert_array_equal(four.grid.lr, [1.0, 0.0, 0.0])
    assert_array_equal(four.grid.ul, [0.0, 1.0, 0.0])
    assert_array_equal(four.grid.tl, [0.0, 0.0, 1.0])
Ejemplo n.º 2
0
def test_Foutier_ASE_C_Ring():
    pytest.importorskip("ase")
    from ase.structure import nanotube
    cnt = nanotube(3, 3, length=1, bond=1.4)
    four = Fourier()
    four.grid.bins = [6, 6, 2]
    four.structure = cnt
    four.grid.ll = [0.0, 0.0, 0.0]
    four.grid.lr = [2.0, 0.0, 0.0]
    four.grid.ul = [0.0, 2.0, 0.0]
    four.grid.tl = [0.0, 0.0, 0.5]
    results = four.calc()
    expected_result = [[[6.36497605e+03,   3.18248802e+03],
                        [5.19826149e+03,   2.62430530e+03],
                        [2.62792897e+03,   1.44984089e+03],
                        [5.38964665e+02,   4.77287736e+02],
                        [1.77345692e+01,   5.96777257e+01],
                        [5.61330972e+02,   2.13240090e-01]],
                       [[5.19824634e+03,   2.58464390e+03],
                        [4.19804025e+03,   2.08045239e+03],
                        [2.02566353e+03,   1.13472923e+03],
                        [3.43108613e+02,   3.82910378e+02],
                        [4.89415344e+01,   6.29938344e+01],
                        [5.92919277e+02,   4.58410816e+00]],
                       [[2.62726847e+03,   1.23823945e+03],
                        [2.02670889e+03,   8.48260672e+02],
                        [7.91958690e+02,   3.42380372e+02],
                        [3.33463046e+01,   5.27598268e+01],
                        [2.30729880e+02,   5.28798893e-01],
                        [7.98830716e+02,   8.58598324e+00]],
                       [[5.35796499e+02,   1.75090475e+02],
                        [3.44314616e+02,   3.58530973e+01],
                        [3.54586483e+01,   1.01212665e+01],
                        [1.11489239e+02,   1.22750852e+02],
                        [6.43708514e+02,   2.21345300e+02],
                        [1.09996107e+03,   1.70969809e+02]],
                       [[2.07782589e+01,   8.83691575e+01],
                        [4.95216235e+01,   3.06779369e+02],
                        [2.12904292e+02,   6.20110076e+02],
                        [6.00173935e+02,   8.55468985e+02],
                        [1.07400507e+03,   8.34634162e+02],
                        [1.26315713e+03,   5.49870658e+02]],
                       [[6.17667297e+02,   7.27129729e+02],
                        [6.16759220e+02,   1.22358912e+03],
                        [7.37019649e+02,   1.60499636e+03],
                        [9.37950901e+02,   1.66971846e+03],
                        [1.09292588e+03,   1.35970016e+03],
                        [1.03004750e+03,   8.27690724e+02]]]
    assert_array_almost_equal(results, expected_result, 5)
    results = four.calc(fast=False)
    assert_array_almost_equal(results, expected_result, 5)
Ejemplo n.º 3
0
def test_Fourier_ASE_single_atom():
    pytest.importorskip("ase")
    from ase import Atoms
    atom = Atoms('C2', positions=[(0, 0, 0), (1, 0, 0)])
    four = Fourier()
    four.grid.bins = [21, 2]
    four.grid.lr = [2.0, 0.0, 0.0]
    four.structure = atom
    results = four.calc()
    expected_result = [1.76804890e+02,   1.59921526e+02,   1.15720303e+02,
                       6.10845872e+01,   1.68833647e+01,   6.62912159e-31,
                       1.68833647e+01,   6.10845872e+01,   1.15720303e+02,
                       1.59921526e+02,   1.76804890e+02,   1.59921526e+02,
                       1.15720303e+02,   6.10845872e+01,   1.68833647e+01,
                       5.96620943e-30,   1.68833647e+01,   6.10845872e+01,
                       1.15720303e+02,   1.59921526e+02,   1.76804890e+02]
    assert_array_almost_equal(results[:, 0], expected_result)
    results = four.calc(fast=False)
    assert_array_almost_equal(results[:, 0], expected_result)