def __init__(self): name = "CONTROL" keys = { 'calculation': [0, str, 'scf', ('scf', 'nscf', 'bands', 'relax', 'md', 'vc-relax'), None], 'title': [0, str, '', None, None], 'verbosity': [0, str, 'low', ('low', 'high'), None], 'restart_mode': [0, str, 'from_scratch', ('from_scratch', 'restart'), None], 'wf_collect': [0, bool, False, None, None], 'nstep': [0, int, self._defaultNStep, None, None], 'iprint': [0, int, None, None, None], 'tstress': [0, bool, False, None, None], 'tprnfor': [0, bool, self._defaultTprnfor , None, None], 'dt': [0, float, 20.0, isPositive, None], 'outdir': [0, str, self._defaultOutdir, None, self._checkOutdir], 'wfcdir': [0, str, self._defaultOutdir, None, self._checkWfcdir], 'prefix': [0, str, 'pwscf', None, None], 'lkpoint_dir': [0, bool, True, None, None], 'max_seconds': [0, float, 1.0e7, isPositive, None], 'etot_conv_thr': [0, float, 1.0e-4, isPositive, None], 'forc_conv_thr': [0, float, 1.0e-4, isPositive, None], 'disk_io': [0, str, self._defaultDiskIO, ('none', 'low', 'medium', 'high'), None], 'pseudo_dir': [0, str, self._defaultPseudoDir, None, self._checkPseudoDir], 'tefield': [0, bool, False, None, None], 'dipfield': [0, bool, False, None, None], 'lelfield': [0, bool, False, None, None], 'nberrycyc': [0, int, 1, isPositive, None], 'lorbm': [0, bool, False, None, None], 'lberry': [0, bool, False, None, None], 'gdir': [0, int, None, (1, 2, 3), None], 'nppstr': [0, int, None, isPositive, None] } Namelist.__init__(self, name, keys)
def __init__(self): name = "CELL" keys = { 'cell_dynamics': [0, str, self._defaultCellDynamics, ('none', 'sd', 'damp-pr', 'bfgs', 'pr', 'w'), None], 'press': [0, float, 0.0, None, None], 'wmass': [0, float, None, isPositive, None], #TODO Check onlin if vc-md or vd-relax 'cell_factor': [0, float, 1.2, None, None], 'press_conv_thr': [0, float, 0.5, None, None], 'cell_dofree': [0, str, 'all', ('all', 'x', 'y', 'z', 'xy', 'xz', 'yz', 'xyz', 'shape', 'volume', '2Dxy', '2Dshape'), None] } Namelist.__init__(self, name, keys)
def __init__(self): name = "IONS" keys = { "ion_dynamics": [ 0, str, self._defaultIonDynamics, ("bfgs", "damp", "verlet", "langevin", "langevin-smc", "beeman"), None, ], "ion_positions": [0, str, "default", ("default", "from_input"), None], "pot_extrapolation": [ 0, str, "atomic", ("none", "atomic", "first_order", "second_order"), self._checkPotExtrapolation, ], "wfc_extrapolation": [0, str, "none", ("none", "first-order", "second-order"), self._checkWfcExtrapolation], "remove_rigid_rot": [0, bool, False, (), None], "ion_temperature": [ 0, str, "not-controlled", ( "rescaling", "rescale-v", "rescale-T", "reduce-T", "berendsen", "andersen", "initial", "not_controlled", ), None, ], "tempw": [0, float, 300.0, isPositive, None], "tolp": [0, float, 100.0, isPositive, None], "delta_t": [0, float, 1.0, None, None], "nraise": [0, int, 1, None, None], "refold_pos": [0, bool, False, None, None], "upscale": [0, float, 100.0, None, None], # TODO Check only in bfgs calc "bfgs_ndim": [0, int, 1, isPositive, None], # TODO Check only in bfgs calc "trust_radius_max": [0, float, 0.8, isPositive, None], # TODO Check only in bfgs calc "trust_radius_min": [0, float, 1e-3, isPositive, None], # TODO Check only in bfgs calc "trust_radius_ini": [0, float, 0.5, None, None], # TODO Check only in bfgs calc "w_1": [0, float, 0.01, None, None], # TODO Check only in bfgs calc "w_2": [0, float, 0.5, None, None], # TODO Check only in bfgs calc } Namelist.__init__(self, name, keys)
def __init__(self): name = "SYSTEM" keys = { 'ibrav': [0, int, None, self._rangeIbrav, self._checkIbrav], 'celldm': [1, float, None, isPositive, self._checkCelldm], 'A': [0, float, None, isPositive, self._checkA], 'B': [0, float, None, isPositive, self._checkB], 'C': [0, float, None, isPositive, self._checkC], 'cosAB': [0, float, None, isWithinOneOfZero, self._checkCosAB], 'cosAC': [0, float, None, isWithinOneOfZero, self._checkCosAC], 'cosBC': [0, float, None, isWithinOneOfZero, self._checkCosBC], 'nat': [0, int, None, isPositive, self._checkNat], 'ntyp': [0, int, None, isPositive, self._checkNtyp], 'nbnd': [0, int, None, isGTFour, None], #TODO default nbnd (insulator) 'tot_charge': [0, float, 0.0, None, None], 'tot_magnetization': [0, float, -1.0, isWithinOneOfZero, None], 'starting_magnetization': [1, float, None, isWithinOneOfZero, None], 'ecutwfc': [0, float, None, isPositive, None], 'ecutrho': [0, float, self._defaultEcutrho, isPositive, None], 'ecutfock': [0, float, self._defaultEcutfock, isPositive, None], 'nr1': [0, int, None, isPositive, self._checkNri], 'nr2': [0, int, None, isPositive, self._checkNri], 'nr3': [0, int, None, isPositive, self._checkNri], 'nr1s': [0, int, None, isPositive, self._checkNris], 'nr2s': [0, int, None, isPositive, self._checkNris], 'nr3s': [0, int, None, isPositive, self._checkNris], 'nosym': [0, bool, False, None, None], 'nosym_evc': [0, bool, False, None, None], 'noinv': [0, bool, False, None, None], 'no_t_rev': [0, bool, False, None, None], 'force_symmorphic': [0, bool, False, None, None], 'use_all_frac': [0, bool, False, None, None], 'occupations': [0, str, None, ('smearing', 'tetrahedra', 'fixed', 'from_input'), None], 'one_atom_occupations': [0, bool, False, None, None], 'starting_spin_angle': [0, bool, False, None, None], 'degauss': [0, float, 0.0, isPositive, None], 'smearing': [0, str, 'gaussian', ('gaussian', 'methfessel-paxton', 'm-p', 'mp', 'mazari-vanderbilt', 'cold', 'm-v', 'mv', 'fermi-dirac', 'f-d', 'fd'), None], 'nspin': [0, int, 1, (1, 2, 4), None], 'noncolin': [0, bool, False, None, None], 'ecfixed': [0, float, 0.0, isPositive, None], 'qcutz': [0, float, 0.0, isPositive, None], 'q2sigma': [0, float, 0.1, isPositive, None], 'input_dft': [0, str, None, None, None], 'exx_fraction': [0, float, None, isBtwZeroOne, None], 'screening_parameter': [0, float, 0.106, None, None], 'exxdiv_treatment': [0, str, 'gygi-baldereshi', ('gygi-baldereschi', 'vcut_spherical', 'vcut_ws', 'none'), None], 'x_gamma_extrapolation': [0, bool, True, None, None], 'ecutvcut': [0, float, 0.0, isPositive, None], 'nqx1': [0, int, self._defaultnqx1, isPositive, None], 'nqx2': [0, int, self._defaultnqx2, isPositive, None], 'nqx3': [0, int, self._defaultnqx3, isPositive, None], 'lda_plus_u': [0, bool, False, None, None], 'lda_plus_u_kind': [0, int, 0, (0, 1), None], 'Hubbard_U': [1, float, 0.0, None, None], #TODO valid range TODO check 'Hubbard_J0': [1, float, 0.0, None, None], #TODO valid range TODO check 'Hubbard_alpha': [1, float, 0.0, None, None], #TODO valid range TODO check 'Hubbard_beta': [1, float, 0.0, None, None], #TODO valid range TODO check 'Hubbard_J': [2, float, 0.0, None, None], #TODO valid range TODO check 'starting_ns_eigenvalue': [3, float, -1.0, None, None], #TODO valid range TODO check 'U_projection_type': [0, str, 'atomic', ('atomic', 'ortho-atomic', 'norm-atomic', 'file', 'pseduo'), None], 'edir': [0, int, None, (1, 2, 3), None], 'emaxpos': [0, float, 0.5, isBtwZeroOne, None], 'eopreg': [0, float, 0.1, isBtwZeroOne, None], 'eamp': [0, float, 0.001, None, None], #TODO range 'angle1': [1, float, None, None, None], #TODO check (1 .. ntyp) 'angle2': [1, float, None, None, None], #TODO check (1 .. ntyp) 'constrained_magnetization': [0, str, 'none', ('none', 'total', 'atomic', 'total direction', 'atomic direction'), None], 'fixed_magnetization': [0, float, 0.0, None, None], #check i (1 .. 3) 'lambda': [0, float, 1.0, None, None], 'report': [0, int, 1, isPositive, None], 'lspinorb': [0, bool, None, None, None], #TODO default not specified in docs 'assume_isolated': [0, str, 'none', ('none', 'makov-payne', 'martyna-tuckerman', 'esm'), None], 'esm_bc': [0, str, 'pbc', ('pbc', 'bc1', 'bc2', 'bc3'), None], 'esm_w': [0, float, 0.0, None, None], 'esm_efield': [0, float , 0.0, None, None], 'esm_nfit': [0, int, 4, None, None], 'vdw_corr': [0, str, 'none', ('grimme-d2', 'Grimme-D2', 'DFT-D', 'dft-d', 'TS', 'ts', 'ts-vdw', 'ts-vdW', 'tkatchenko-scheffler', 'XDM', 'xdm'), None], 'london': [0, bool, False, None, None], 'london_s6': [0, float, 0.75, None, None], 'london_rcut': [0, float, 200.0, None, None], 'xdm': [0, bool, False, None, None], 'xdm_a1': [0, float, 0.6836, None, None], 'xdm_a2': [0, float, 1.5045, None, None], 'space_group': [0, int, 0, self._rangeSpaceGroup, self._checkSpaceGroup], 'uniqueb': [0, bool, False, None, None], 'origin_choice': [0, int, 1, (1, 2, 3), None], # TODO Maybe there are more possible origins? 'rhombohedral': [0, bool, True, None, None] } Namelist.__init__(self, name, keys)