def methods(prog): """ list of available electronic structure methods :param prog: the electronic structure program to use as a backend :type prog: str """ return par.program_methods(prog)
app.escape('E(CCSD(T))'), '...']) ) return ene # A dictionary of functions for reading the energy from the output, by method ENERGY_READER_DCT = { (Method.HF[0], frozenset({})): _scf_energy, (Method.Corr.MP2[0], frozenset({})): _mp2_energy, (Method.Corr.CCSD[0], frozenset({})): _ccsd_energy, (Method.Corr.CCSD_T[0], frozenset({})): _ccsd_t_energy, } # Add DFT methods to the reader dictionary METHODS = program_methods(PROG) for METHOD in METHODS: if Method.is_standard_dft(METHOD): ENERGY_READER_DCT[(METHOD, frozenset({}))] = _scf_energy # Add DFT methods to the reader dictionary READ_METHODS = set(method[0] for method in ENERGY_READER_DCT) assert READ_METHODS <= set(METHODS) def method_list(): """ Constructs a list of available electronic structure methods. """ return tuple(sorted(ENERGY_READER_DCT.keys()))