def contains(cls, name): """ does this parameter class contain this value? """ name = standard_case(name) names = pclass.all_values(cls) # names = [row for row in pclass.all_values(cls)] return name in names
def program_bases(prog): """ list the methods available for a given program """ prog = standard_case(prog) return { row[0]: row[1][prog] for row in pclass.all_values(Basis) if prog in row[1] }
def program_methods_info(prog): """ list the methods available for a given program, with their information """ prog = standard_case(prog) return { row[0]: row[1][prog] for row in pclass.all_values(Method) if prog in row[1] }
def program_methods_info(prog): """ List methods available for a given program, with their information. :param prog: electronic structure program name :type prog: str :rtype: dict[str: str] """ prog = standard_case(prog) return {row[0]: row[1][prog] for row in pclass.all_values(Method) if prog in row[1]}
def program_bases(prog): """ List basis sets available for a given program. :param prog: electronic structure program name :type prog: str :rtype: dict[str: str] """ prog = standard_case(prog) return {row[0]: row[1][prog] for row in pclass.all_values(Basis) if prog in row[1]}
def contains(cls, name): """ Assess if provided basis set is a part of this class. :param cls: class object :type cls: obj :param name: name of basis set :type name: str """ name = standard_case(name) names = [row[0] for row in pclass.all_values(cls)] return name in names
def is_multiref(cls, name): """ Assess if a method is a multi-reference correlated method. :param cls: class object :type cls: obj :param name: name of method :type name: str """ name = standard_case(name) multiref_names = [row[0] for row in pclass.all_values(cls.MultiRef)] return name in multiref_names
def is_correlated(cls, name): """ Assess if a method is a single-reference correlated method. :param cls: class object :type cls: obj :param name: name of method :type name: str """ name = standard_case(name) corr_names = [row[0] for row in pclass.all_values(cls.Corr)] return name in corr_names
def is_standard_dft(cls, name): """ Assess if a method corresponds to a density functional currently defined in elstruct. :param cls: class object :type cls: obj :param name: name of method :type name: str """ name = standard_case(name) dft_names = [row[0] for row in pclass.all_values(cls.Dft)] return name in dft_names
def programs(): """ list the available electronic structure backend programs """ return pclass.all_values(Program)
def is_standard_dft(cls, name): """ is this a DFT method? """ name = standard_case(name) dft_names = [row[0] for row in pclass.all_values(cls.Dft)] return name in dft_names
def is_casscf(cls, name): """ is the method casscf or post-casscf? """ name = standard_case(name) multiref_names = [row[0] for row in pclass.all_values(cls.MultiRef)] return Method.MultiRef.CASSCF in multiref_names
def is_multiref(cls, name): """ is this a mulitreference method? """ name = standard_case(name) multiref_names = [row[0] for row in pclass.all_values(cls.MultiRef)] return name in multiref_names
def is_correlated(cls, name): """ is this a single-reference correlated method? """ name = standard_case(name) corr_names = [row[0] for row in pclass.all_values(cls.Corr)] return name in corr_names
def programs(): """ List all electronic structure backend programs that are supported. """ print(pclass.all_values(Program)) return pclass.all_values(Program)