Source code for aiida_crystal17.tests.test_parsers.test_raw.test_inputd12_write

from aiida_crystal17.parsers.raw.inputd12_write import write_input


[docs]def test_input_full(): indict = { "title": "a title", "geometry": { "info_print": ["ATOMSYMM", "SYMMOPS"], "info_external": ["STRUCPRT"], "optimise": { "type": "FULLOPTG", "hessian": "HESSIDEN", "gradient": "NUMGRATO", "info_print": ["PRINTOPT", "PRINTFORCES"], "convergence": { "TOLDEG": 0.0003, "TOLDEX": 0.0012, "TOLDEE": 7, "MAXCYCLE": 50, "FINALRUN": 4 }, } }, "basis_set": { "CHARGED": False, }, "scf": { "dft": { # "xc": ["LDA", "PZ"], # or # "xc": "HSE06", # or "xc": { "LSRSH-PBE": [0.11, 0.25, 0.00001] }, "SPIN": True, "grid": "XLGRID", "grid_weights": "BECKE", "numerical": { "TOLLDENS": 6, "TOLLGRID": 14, "LIMBEK": 400 } }, # or # "single": "UHF", "k_points": [8, 8], "numerical": { "BIPOLAR": [18, 14], "BIPOSIZE": 4000000, "EXCHSIZE": 4000000, "EXCHPERM": True, "ILASIZE": 6000, "INTGPACK": 0, "MADELIND": 50, "NOBIPCOU": False, "NOBIPEXCH": False, "NOBIPOLA": False, "POLEORDR": 4, "TOLINTEG": [6, 6, 6, 6, 12], "TOLPSEUD": 6, "FMIXING": 0, "MAXCYCLE": 50, "TOLDEE": 6, "LEVSHIFT": [2, 1], "SMEAR": 0.1 }, "fock_mixing": "DIIS", # or # "fock_mixing": ["BROYDEN", 0.0001, 50, 2], "spinlock": { "SPINLOCK": [1, 10] }, "post_scf": ["GRADCAL", "PPAN"] } } outstr = write_input(indict, ["basis_set1", "basis_set2"]) expected = """a title EXTERNAL ATOMSYMM SYMMOPS STRUCPRT OPTGEOM FULLOPTG HESSIDEN NUMGRATO PRINTFORCES PRINTOPT FINALRUN 4 MAXCYCLE 50 TOLDEE 7 TOLDEG 0.0003 TOLDEX 0.0012 ENDOPT END basis_set1 basis_set2 99 0 END DFT LSRSH-PBE 0.11 0.25 1e-05 SPIN XLGRID BECKE LIMBEK 400 TOLLDENS 6 TOLLGRID 14 END SHRINK 8 8 BIPOLAR 18 14 BIPOSIZE 4000000 EXCHPERM EXCHSIZE 4000000 FMIXING 0 ILASIZE 6000 INTGPACK 0 LEVSHIFT 2 1 MADELIND 50 MAXCYCLE 50 POLEORDR 4 SMEAR 0.1 TOLDEE 6 TOLINTEG 6 6 6 6 12 TOLPSEUD 6 DIIS SPINLOCK 1 10 GRADCAL PPAN END """ assert outstr == expected
[docs]def test_input_with_atom_props(): indict = { "scf": { "k_points": [16, 8] }, "geometry": { "optimise": { "type": "FULLOPTG" } } } atomprops = { "spin_alpha": [1, 3], "spin_beta": [2, 4], "unfixed": [1, 3], "ghosts": [5, 6] } outstr = write_input(indict, ["basis_set1", "basis_set2"], atomprops) expected = """CRYSTAL run EXTERNAL OPTGEOM FULLOPTG FRAGMENT 2 1 3 ENDOPT END basis_set1 basis_set2 99 0 GHOSTS 2 5 6 END SHRINK 16 8 ATOMSPIN 4 1 1 2 -1 3 1 4 -1 END """ assert outstr == expected
[docs]def test_is_as_list(): """ test if the IS value is given as a list""" indict = { "scf": { "k_points": [[10, 8, 2], 16] } } outstr = write_input(indict, ["basis_set1", "basis_set2"]) expected = """CRYSTAL run EXTERNAL END basis_set1 basis_set2 99 0 END SHRINK 0 16 10 8 2 END """ assert outstr == expected