4. minimizer#
4.1. sd#
Steepest descent minimization algorithm.
Python | Julia |
---|---|
1Elist = []
2
3for i in range(Nit):
4 E = scf_step(scf)
5 Elist.append(E)
6 print('Nit: {} \tEtot: {:.6f} Eh'.format(i + 1, E), end='\r')
7 if i > 1 and abs(Elist[i - 1] - Elist[i]) < etol:
8 print('\nSCF converged.')
9 return E
10 g = get_grad(scf.atoms, scf.op, scf.W, scf.Y, scf.n, scf.phi, scf.vxc, scf.pot)
11 scf.W = scf.W - beta * g
12print('\nSCF not converged!')
13return E
| 1Elist = Float64[]
2
3for i = 1:Nit
4 E = scf_step(scf)
5 append!(Elist, E)
6 print("Nit: $(i) \tEtot: $(round(E; digits=6)) Eh\r")
7 if i > 1 && abs(Elist[i-1] - Elist[i]) < etol
8 println("\nSCF converged.")
9 return E
10 end
11 g = get_grad(scf.atoms, scf.W, scf.Y, scf.n, scf.phi, scf.vxc, scf.pot)
12 scf.W = scf.W .- beta .* g
13end
14println("\nSCF not converged!")
15return E
|