print('integration g2^2 {:10.5f} {:10.5f}'.format( g2._full_integration_num_square(), g2.full_integration_square())) plt.show() # Generate orthogonal basis from basis functions basis = Basis(g1, g2) plt.title('MO basis eigenfunctions') print('Overlap_matrix') print(np.array(basis.get_overlap_matrix())) basis.plot_basis_function(-2, 2, 0, 0.001) basis.plot_basis_function(-2, 2, 1, 0.001) print('basis eigenfunction 1 integral', basis._get_integrate_test(0)) print('basis eigenfunction 2 integral', basis._get_integrate_test(1)) plt.show() # Create a arbitrary MO defined by the orthogonal basis phi = 2 # rad mo = MolecularOrbital(mo_coefficients=[np.sin(phi), np.cos(phi)], basis=basis) plt.title('Molecular orbital') mo.plot_function(-2, 2) plt.show() print('Density matrix (MO)') print(mo.get_density_matrix_mo()) print('total density: ',
g2.full_integration_square()) plt.show() # Generate orthogonal basis from basis functions basis = Basis(g1, g2) plt.title('Basis functions') print(basis.get_eigenvalues()) print('Overlap_matrix') print(np.array(basis.get_overlap_matrix())) basis.plot_basis_function(-5, 5, 0, 0.001) basis.plot_basis_function(-5, 5, 1, 0.001) print('basis1', basis._get_integrate_test(0)) print('basis2', basis._get_integrate_test(1)) plt.show() # Create MO defined by the orthogonal basis mo = MolecularOrbital(mo_coefficients=[1 / np.sqrt(2), 1 / np.sqrt(2)], basis=basis) mo2 = MolecularOrbital(mo_coefficients=[1 / np.sqrt(2), -1 / np.sqrt(2)], basis=basis) plt.title('Molecular orbitals') mo.plot_function(-2, 2) mo2.plot_function(-2, 2) plt.show()