print elektroni_tiheys.to_1d_list() print "ydintiheys",ydin_tiheys.gridi #Elektronien määrä on vakio elektroni_tiheys.set_summa() ntot = np.sum(elektroni_tiheys.gridi)*V_hartree.get_volume_of_a_box() print "elektronien kokonaisvaraus", ntot, elektroni_tiheys.get_summa_mennyt() # otetaan tavoitteeksi että siirto hyväksytään joka viides kerta # silloin on sopivasti riskiä yrityksessä tiheydenmuutos = 0.1 outfile = open('energiat.txt', 'w') for step in range(10): konvergoinut = laskentaa.minimoi_monte_carlolla( outfile, elektroni_tiheys, V_hartree, ydin_tiheys, tiheydenmuutos, n_iter=100, tol=1e-4) if konvergoinut: print "konvergoi" break ##piirtoa.plot3d(elektroni_tiheys) piirtoa.plot2d_simple(elektroni_tiheys) outfile.close()
read_data.read_data(filename = filename) elektroni_tiheys.set_summa() elektroni_tiheys.set_mylambda(mylambda) elektroni_tiheys.set_n_iter(n_iter) elektroni_tiheys.set_tol(tol) elektroni_tiheys.set_temperature(temperature) elektroni_tiheys.set_tiheydenmuutos(tiheydenmuutos) elektroni_tiheys.set_d_rho(d_rho) elektroni_tiheys.set_askel(askel) outfile = open('mc_'+filename+'energiat.txt', 'w') start = time.time() konvergoinut = \ laskentaa.minimoi_monte_carlolla( outfile, elektroni_tiheys, V_hartree, ydin_tiheys) if konvergoinut: print "konvergoi" print "elektronimäärä", elektroni_tiheys.get_number_of_electrons() end = time.time() outfile.write("#time elapsed"+str(end-start)) outfile.close() ##piirtoa.plot3d(elektroni_tiheys) if piirra: piirtoa.plot2d_simple(elektroni_tiheys) print filename+"MC: ETOT", energiat.E_tot( elektroni_tiheys, V_hartree, ydin_tiheys)