Exemplo n.º 1
0
def test_add_fitting_flags():
    data = {
        "species": ["H core", "He core", "B core"],
        "2body": {
            "0-1": {
                "lj_A": 1.0,
                "lj_B": 2.0,
                "lj_rmax": 12.0
            },
            "0-2": {
                "lj_A": 3.0,
                "lj_B": 4.0,
                "lj_rmax": 12.0
            },
        },
    }
    fitting_data = {
        "species": ["H core", "He core", "B core"],
        "2body": {
            "0-1": ["lj_B"],
            "0-2": ["lj_A"]
        },
    }
    output = PotentialWriterLJ().create_content(data,
                                                fitting_data=fitting_data)
    expected = dedent("""\
        lennard 12 6
        H core  He core 1.00000000E+00 2.00000000E+00 12.00000 0 1
        lennard 12 6
        H core  B core  3.00000000E+00 4.00000000E+00 12.00000 1 0""")
    assert output.content == expected
Exemplo n.º 2
0
def test_basic():
    data = {
        "species": ["H core", "He core"],
        "2body": {
            "0-1": {
                "lj_A": 1.0,
                "lj_B": 2.0,
                "lj_rmax": 12.0
            }
        },
    }
    output = PotentialWriterLJ().create_content(data)
    expected = dedent("""\
        lennard 12 6
        H core  He core 1.00000000E+00 2.00000000E+00 12.00000""")
    assert output.content == expected
Exemplo n.º 3
0
def test_additional_args():
    data = {
        "species": ["Fe core", "B core"],
        "2body": {
            "0-1": {
                "lj_m": 10,
                "lj_n": 5,
                "lj_A": 1.0,
                "lj_B": 2.0,
                "lj_rmin": 3.0,
                "lj_rmax": 12.0,
            }
        },
    }
    output = PotentialWriterLJ().create_content(data)
    expected = dedent("""\
        lennard 10 5
        Fe core B core  1.00000000E+00 2.00000000E+00  3.00000 12.00000""")
    assert output.content == expected
Exemplo n.º 4
0
def test_read_existing():
    content = dedent("""\
        variables
        shift
        end
        lennard 12 6
        H core  He shell 1.00000000E+00 2.00000000E+00 12.00000 0 1
        H core  H core 3.00000000E+00 4.00000000E+00 12.00000 0 1
        lennard 10 5
        H B 5.00000000E+00 6.00000000E+00 0.00 12.00000 1 0
        dump fitting.grs
        """)

    data = PotentialWriterLJ().read_exising(content.splitlines())
    assert data == {
        "species": ["B core", "H core", "He shell"],
        "2body": {
            "1-2": {
                "lj_m": 12,
                "lj_n": 6,
                "lj_A": 1.0,
                "lj_B": 2.0,
                "lj_rmax": 12.0
            },
            "1-1": {
                "lj_m": 12,
                "lj_n": 6,
                "lj_A": 3.0,
                "lj_B": 4.0,
                "lj_rmax": 12.0
            },
            "1-0": {
                "lj_m": 10,
                "lj_n": 5,
                "lj_A": 5.0,
                "lj_B": 6.0,
                "lj_rmin": 0.0,
                "lj_rmax": 12.0,
            },
        },
    }
Exemplo n.º 5
0
def test_filter():
    data = {
        "species": ["H core", "He core", "B core"],
        "2body": {
            "0-1": {
                "lj_A": 1.0,
                "lj_B": 2.0,
                "lj_rmax": 12.0
            },
            "0-2": {
                "lj_A": 3.0,
                "lj_B": 4.0,
                "lj_rmax": 12.0
            },
        },
    }
    output = PotentialWriterLJ().create_content(data, ["H core", "B core"])
    expected = dedent("""\
        lennard 12 6
        H core  B core  3.00000000E+00 4.00000000E+00 12.00000""")
    assert output.content == expected
Exemplo n.º 6
0
def test_validation():
    with pytest.raises(Exception):
        PotentialWriterLJ().create_content({})
    with pytest.raises(Exception):
        PotentialWriterLJ().create_content({"atoms": {"abc": {}}})