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()
예제 #2
0
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))