cores = multiprocessing.cpu_count() try: pool = multiprocessing.Pool(processes=cores) except: pool = "" else: pool = "" operations = query.match_info(Info, multi_orbs_with_arr=multi_orbs_with_arr, chars_for_bands=bandchars, similar_trans=similar_trans) for item in operations: print(item["name"], item["rep"]) print() result = simple_calc(operations, order_list=order_list, pool=pool, debug=False) if pool: pool.close() print("result:\n","\n".join([str(item) for item in result])) from functools import reduce import operator final_without_E = reduce(operator.add, [item[1]*item[2] for item in result if item[2] != sp.eye(item[2].shape[0])], sp.zeros(result[0][2].shape[0])) print("final without E:\n["+",\n".join([str(row) for row in final_without_E.tolist()])+"]") print("(run time: "+str(round(time.time() - start_time, 1))+"s)") try: print("\neigenvalues:", energy([item[2] for item in result])) except: exit()
from model_hamiltonian._tool import get_hermitian_base from model_hamiltonian.model_hamiltonian import energy a = get_hermitian_base(4) for n, item in enumerate(a): print(n, item) b = [a[12], a[4], a[8]] print(energy(b))