コード例 #1
0
def test_vasp_set_w_options():
    parsed_args = parse_args(["vs",
                              "--poscar", "POSCAR-tmp",
                              "-t", "band",
                              "-x", "pbesol",
                              "-k", "4.2",
                              "--potcar", "Mg_pv", "O_h",
                              "--user_incar_settings", "LREAD", "F",
                              "-d", "c",
                              "--vasprun", "vasprun_1",
                              "--outcar", "OUTCAR_1",
                              "--options", "encut", "800",
                              "--uniform_kpt_mode",
                              "--file_transfer", "WAVECAR", "C",
                              ])

    expected = Namespace(
        poscar=Path("POSCAR-tmp"),
        task=Task.band,
        xc=Xc.pbesol,
        kpt_density=4.2,
        overridden_potcar=["Mg_pv", "O_h"],
        user_incar_settings=["LREAD", "F"],
        prev_dir=Path("c"),
        vasprun=Path("vasprun_1"),
        outcar=Path("OUTCAR_1"),
        options=["encut", "800"],
        uniform_kpt_mode=True,
        file_transfer_type=["WAVECAR", "C"],
        func=parsed_args.func,
    )

    assert parsed_args == expected
コード例 #2
0
def test_plot_dos_w_options():
    parsed_args = parse_args(["pd",
                              "--vasprun", "vasprun_1",
                              "--outcar", "OUTCAR_1",
                              "-t", "atoms",
                              "-l", "False",
                              "-c", "False",
                              "--x_range", "-1.0", "1.0",
                              "-y", "-5.0", "5.0",
                              "--target", "1", "2",
                              "--filename", "dos_1.pdf",
                              "-b", "-1"
                              ])

    expected = Namespace(
        vasprun=Path("vasprun_1"),
        outcar=Path("OUTCAR_1"),
        type=AtomGroupingType.atoms,
        legend=False,
        crop_first_value=False,
        x_range=[-1.0, 1.0],
        y_max_ranges=[-5.0, 5.0],
        target=["1", "2"],
        filename="dos_1.pdf",
        base_energy=-1.0,
        func=parsed_args.func,
    )

    assert parsed_args == expected
コード例 #3
0
def test_get_poscars_wo_options():
    parsed_args = parse_args(["gp", "-m", "mp-1234"])
    # func is a pointer so need to point the same address.
    expected = Namespace(poscar="POSCAR",
                         prior_info=Path("prior_info.yaml"),
                         mpid="mp-1234",
                         func=parsed_args.func)
    assert parsed_args == expected
コード例 #4
0
def test_structure_info_w_options():
    parsed_args = parse_args(["si", "-p", "a", "-s", "1", "-a", "2", "-c"])
    expected = Namespace(poscar="a",
                         symprec=1.0,
                         angle_tolerance=2.0,
                         show_conventional=True,
                         func=parsed_args.func)
    assert parsed_args == expected
コード例 #5
0
def test_structure_info_wo_options():
    parsed_args = parse_args(["si"])
    expected = Namespace(poscar="POSCAR",
                         symprec=defaults.symmetry_length_tolerance,
                         angle_tolerance=defaults.symmetry_angle_tolerance,
                         show_conventional=False,
                         func=parsed_args.func)
    assert parsed_args == expected
コード例 #6
0
def test_band_edge_wo_options():
    parsed_args = parse_args(["be"])
    # func is a pointer so need to point the same address.
    expected = Namespace(
        vasprun=defaults.vasprun,
        outcar=defaults.outcar,
        func=parsed_args.func,
    )
    assert parsed_args == expected
コード例 #7
0
def test_get_poscars_w_options():
    parsed_args = parse_args(
        ["get_poscar", "-p", "a", "-m", "123", "-pi", "b.yaml"])

    expected = Namespace(poscar="a",
                         prior_info=Path("b.yaml"),
                         mpid="123",
                         func=parsed_args.func)
    assert parsed_args == expected
コード例 #8
0
def test_plot_absorption_wo_options():
    parsed_args = parse_args(["pa"])
    expected = Namespace(vasprun=defaults.vasprun,
                         outcar=defaults.outcar,
                         filename="absorption.pdf",
                         y_ranges=[10**3, 10**8],
                         calc_kk=False,
                         ita=0.01,
                         func=parsed_args.func)
    assert parsed_args == expected
コード例 #9
0
def test_plot_band_wo_options():
    parsed_args = parse_args(["pb"])
    # func is a pointer so need to point the same address.
    expected = Namespace(
        vasprun=defaults.vasprun,
        kpoints_filename="KPOINTS",
        y_range=[-10.0, 10.0],
        filename="band.pdf",
        func=parsed_args.func,
    )
    assert parsed_args == expected
コード例 #10
0
def test_band_edge_w_options():
    parsed_args = parse_args(["be",
                              "--vasprun", "vasprun_1",
                              "--outcar", "OUTCAR_1",
                              ])

    expected = Namespace(
        vasprun=Path("vasprun_1"),
        outcar=Path("OUTCAR_1"),
        func=parsed_args.func,
    )

    assert parsed_args == expected
コード例 #11
0
def test_plot_absorption_w_options():
    parsed_args = parse_args([
        "pa", "--vasprun", "vasprun_1", "--outcar", "OUTCAR_1", "-f", "a",
        "-y", "-5.0", "5.0", "-ckk", "-i", "0.1"
    ])
    expected = Namespace(vasprun=Path("vasprun_1"),
                         outcar=Path("OUTCAR_1"),
                         filename="a",
                         y_ranges=[10**-5.0, 10**5.0],
                         calc_kk=True,
                         ita=0.1,
                         func=parsed_args.func)
    assert parsed_args == expected
コード例 #12
0
def test_plot_dos_wo_options():
    parsed_args = parse_args(["pd"])
    # func is a pointer so need to point the same address.
    expected = Namespace(
        vasprun=defaults.vasprun,
        outcar=defaults.outcar,
        type=AtomGroupingType.non_equiv_sites,
        legend=True,
        crop_first_value=True,
        x_range=None,
        y_max_ranges=None,
        target=None,
        filename="dos.pdf",
        base_energy=None,
        func=parsed_args.func,
    )
    assert parsed_args == expected
コード例 #13
0
def test_plot_band_w_options():
    parsed_args = parse_args(["pb",
                              "--vasprun", "vasprun_1",
                              "--kpoints", "KPOINTS_1",
                              "--y_range", "-1.0", "1.0",
                              "--filename", "band_1.pdf",
                              ])

    expected = Namespace(
        vasprun=Path("vasprun_1"),
        kpoints_filename="KPOINTS_1",
        y_range=[-1.0, 1.0],
        filename="band_1.pdf",
        func=parsed_args.func,
    )

    assert parsed_args == expected
コード例 #14
0
def test_vasp_set_wo_options():
    parsed_args = parse_args(["vs"])
    # func is a pointer so need to point the same address.
    expected = Namespace(
        poscar=Path("POSCAR"),
        task=defaults.task,
        xc=defaults.xc,
        kpt_density=None,
        overridden_potcar=defaults.overridden_potcar,
        user_incar_settings=None,
        prev_dir=None,
        vasprun=defaults.vasprun,
        outcar=defaults.outcar,
        options=None,
        uniform_kpt_mode=False,
        file_transfer_type=None,
        func=parsed_args.func,
    )
    assert parsed_args == expected
コード例 #15
0
def test_integration(tmpdir):
    tmpdir.chdir()
    os.chdir(tmpdir)
    tmpdir.join("vise.yaml").write("""
kpoint_density: 0.5
overridden_potcar:
   O_h
dos_step_size: 0.01
band_mesh_distance: 0.25
str_opt_encut_factor: 1.5
ldauu:
   Mn: 10
ldaul:
   Mn:  4
potcar_set: mp
user_incar_settings:
    ISPIN: 2  
options:
    cutoff_energy: 1000
""")

    from vise.cli.main import parse_args
    tmpdir.join("POSCAR").write("""Mn1 O1
1.0
0.000000 2.123447 2.123447
2.123447 0.000000 2.123447
2.123447 2.123447 0.000000
Mn O
1 1
direct
0.000000 0.000000 0.000000 Mn
0.500000 0.500000 0.500000 O
""")
    args = parse_args(["vs", "-t", "band"])
    args.func(args)
    incar = tmpdir.join("INCAR")
    incar_expected = """# algorithm
ALGO  =  Normal

# accuracy
PREC   =  Normal
LREAL  =  False
EDIFF  =  1e-05
ENCUT  =  1000
LASPH  =  True
NELM   =  100

# ionic relaxation
ISIF    =  0
IBRION  =  2
NSW     =  0

# occupation
ISMEAR  =  0
SIGMA   =  0.1

# spin
ISPIN  =  2

# IO control
LWAVE   =  False
LCHARG  =  False

# analyzer
NBANDS  =  23
LORBIT  =  10

# hubbard u
LDAU       =  True
LDAUTYPE   =  2
LMAXMIX    =  4
LDAUPRINT  =  1
LDAUL      =  4 -1
LDAUU      =  10 0

# parallel
KPAR  =  2"""
    assert incar.read() == incar_expected

    potcar = tmpdir.join("POTCAR")
    potcar_expected = """  PAW_PBE Mn_pv 02Aug2007                
   13.0000000000000     
 parameters from PSCTR are:
   VRHFIN =Mn: 3p4s3d
   TITEL  = PAW_PBE Mn_pv 02Aug2007
   POMASS =   54.938; ZVAL   =   13.000    mass and valenz
   ENMAX  =  269.864; ENMIN  =  202.398 eV

   END of PSCTR-controll parameters
  PAW_PBE O_h 06Feb2004                  
   6.00000000000000     
 parameters from PSCTR are:
   VRHFIN =O: s2p4
   TITEL  = PAW_PBE O_h 06Feb2004
   POMASS =   16.000; ZVAL   =    6.000    mass and valenz
   ENMAX  =  700.000; ENMIN  =  500.000 eV

   END of PSCTR-controll parameters
"""

    assert potcar.read() == potcar_expected

    kpoints = tmpdir.join("KPOINTS")
    kpoints_expected = """k-path added by seekpath. Formula: MnO SG: 225 
23
Reciprocal
 0.00000000000000000  0.00000000000000000  0.00000000000000000   1 None
 0.50000000000000000  0.00000000000000000  0.00000000000000000   4 None
 0.50000000000000000  0.50000000000000000  0.00000000000000000   3 None
 0.00000000000000000  0.00000000000000000  0.00000000000000000   0 GAMMA
 0.12500000000000000  0.00000000000000000  0.12500000000000000   0 
 0.25000000000000000  0.00000000000000000  0.25000000000000000   0 
 0.37500000000000000  0.00000000000000000  0.37500000000000000   0 
 0.50000000000000000  0.00000000000000000  0.50000000000000000   0 X
 0.62500000000000000  0.25000000000000000  0.62500000000000000   0 U
 0.37500000000000000  0.37500000000000000  0.75000000000000000   0 K
 0.29999999999999999  0.29999999999999999  0.59999999999999998   0 
 0.22500000000000001  0.22500000000000001  0.45000000000000001   0 
 0.14999999999999999  0.14999999999999999  0.29999999999999999   0 
 0.07500000000000001  0.07500000000000001  0.15000000000000002   0 
 0.00000000000000000  0.00000000000000000  0.00000000000000000   0 GAMMA
 0.12500000000000000  0.12500000000000000  0.12500000000000000   0 
 0.25000000000000000  0.25000000000000000  0.25000000000000000   0 
 0.37500000000000000  0.37500000000000000  0.37500000000000000   0 
 0.50000000000000000  0.50000000000000000  0.50000000000000000   0 L
 0.50000000000000000  0.41666666666666669  0.58333333333333337   0 
 0.50000000000000000  0.33333333333333337  0.66666666666666663   0 
 0.50000000000000000  0.25000000000000000  0.75000000000000000   0 W
 0.50000000000000000  0.00000000000000000  0.50000000000000000   0 X
"""

    assert kpoints.read() == kpoints_expected
コード例 #16
0
def test_make_atom_poscars_w_options():
    parsed_args = parse_args(["map", "-d", "a", "-e", "H", "He"])
    expected = Namespace(dirname=Path("a"),
                         elements=[Element.H, Element.He],
                         func=parsed_args.func)
    assert parsed_args == expected
コード例 #17
0
def test_make_atom_poscars_wo_options():
    parsed_args = parse_args(["map"])
    expected = Namespace(dirname=Path.cwd(),
                         elements=None,
                         func=parsed_args.func)
    assert parsed_args == expected