|
91 | 91 | cusp_corrected_mos(1:ao_num,1:mo_tot_num) = mo_coef(1:ao_num,1:mo_tot_num) |
92 | 92 | slater_coef(1:nucl_num,1:mo_tot_num) = cusp_C(1:nucl_num,1:mo_tot_num) |
93 | 93 | return |
94 | | - endif |
95 | 94 |
|
96 | | - do idx_dressing=1,mo_tot_num |
| 95 | + else |
97 | 96 |
|
98 | | - if (idx_dressing>1) then |
99 | | - TOUCH idx_dressing |
100 | | - endif |
101 | 97 |
|
102 | | - do j=1,mo_tot_num |
103 | | - do i=1,mo_tot_num |
104 | | - F(i,j) = Fock_matrix_mo(i,j) |
105 | | - enddo |
106 | | - enddo |
| 98 | + do idx_dressing=1,mo_tot_num |
107 | 99 |
|
108 | | - do j=1,mo_tot_num |
109 | | - do i=1,ao_num |
110 | | - M(i,j) = mo_coef(i,j) |
111 | | - enddo |
112 | | - enddo |
| 100 | + if (idx_dressing>1) then |
| 101 | + TOUCH idx_dressing |
| 102 | + endif |
113 | 103 |
|
114 | | - integer :: it |
115 | | - do it=1,128 |
116 | | - |
117 | | -! print *, 'C', mo_coef(1:ao_num,1:mo_tot_num) |
118 | | -! print *, 'Cp', mo_coef_in_ao_ortho_basis(1:ao_num,1:mo_tot_num) |
119 | | -! print *, 'cAi', cusp_C(1:nucl_num,1:mo_tot_num) |
120 | | -! print *, 'FmuA', AO_orthoSlaH_matrix(1:ao_num,1:nucl_num) |
121 | | -! print *, 'Fock:', Fock_matrix_ao(1:ao_num,1:ao_num) |
122 | | -! print *, 'Diag Dressing:', ao_ortho_mono_elec_integral_dressing(1:ao_num,1:ao_num) |
123 | | -! print *, 'Dressing:', ao_mono_elec_integral_dressing(1:ao_num,1:ao_num) |
124 | | -! print *, 'Dressed Fock:', Fock_matrix_ao(1:ao_num,1:ao_num) + ao_mono_elec_integral_dressing(1:ao_num,1:ao_num) |
125 | | -! print *, 'AO_orthoSlaOverlap_matrix', AO_orthoSlaOverlap_matrix(1:ao_num,1:nucl_num) |
126 | | -! print *, 'AO_orthoSlaH_matrix', AO_orthoSlaH_matrix(1:ao_num,1:nucl_num) |
127 | | -! print *, 'ao_ortho_mono_elec_integral', ao_ortho_mono_elec_integral(1:ao_num,1:ao_num) |
128 | 104 | do j=1,mo_tot_num |
129 | 105 | do i=1,mo_tot_num |
130 | | - Fock_matrix_mo(i,j) += mo_mono_elec_integral_dressing(i,j) |
| 106 | + F(i,j) = Fock_matrix_mo(i,j) |
131 | 107 | enddo |
132 | 108 | enddo |
133 | | - do i=1,mo_tot_num |
134 | | - Fock_matrix_diag_mo(i) = Fock_matrix_mo(i,i) |
135 | | - enddo |
136 | | - double precision :: conv |
137 | | - conv = 0.d0 |
| 109 | + |
138 | 110 | do j=1,mo_tot_num |
139 | | - do i=1,mo_tot_num |
140 | | - if (i==j) cycle |
141 | | - conv = max(conv,Fock_matrix_mo(i,j)) |
| 111 | + do i=1,ao_num |
| 112 | + M(i,j) = mo_coef(i,j) |
142 | 113 | enddo |
143 | 114 | enddo |
144 | | - TOUCH Fock_matrix_mo Fock_matrix_diag_mo |
145 | 115 |
|
146 | | - mo_coef(1:ao_num,1:mo_tot_num) = eigenvectors_fock_matrix_mo(1:ao_num,1:mo_tot_num) |
147 | | - TOUCH mo_coef |
148 | | -! print *, 'C', mo_coef(1:ao_num,1:mo_tot_num) |
149 | | -! print *, '-----' |
150 | | - print *, idx_dressing, it, real(mo_coef(1,idx_dressing)), real(conv) |
151 | | - if (conv < 1.d-5) exit |
| 116 | + integer :: it |
| 117 | + do it=1,128 |
| 118 | + |
| 119 | + ! print *, 'X', ao_ortho_canonical_coef(1:ao_num,1:ao_num) |
| 120 | + ! print *, 'C', mo_coef(1:ao_num,1:mo_tot_num) |
| 121 | + ! print *, 'Cp', mo_coef_in_ao_ortho_basis(1:ao_num,1:mo_tot_num) |
| 122 | + ! print *, 'cAi', cusp_C(1:nucl_num,1:mo_tot_num) |
| 123 | + ! print *, 'FmuA', AO_orthoSlaH_matrix(1:ao_num,1:nucl_num) |
| 124 | + ! print *, 'Fock:', Fock_matrix_ao(1:ao_num,1:ao_num) |
| 125 | + ! print *, 'Diag Dressing:', ao_ortho_mono_elec_integral_dressing(1:ao_num,1:ao_num) |
| 126 | + ! print *, 'Dressing:', ao_mono_elec_integral_dressing(1:ao_num,1:ao_num) |
| 127 | + ! print *, 'Dressed Fock:', Fock_matrix_ao(1:ao_num,1:ao_num) + ao_mono_elec_integral_dressing(1:ao_num,1:ao_num) |
| 128 | + ! print *, 'AO_orthoSlaOverlap_matrix', AO_orthoSlaOverlap_matrix(1:ao_num,1:nucl_num) |
| 129 | + ! print *, 'AO_orthoSlaH_matrix', AO_orthoSlaH_matrix(1:ao_num,1:nucl_num) |
| 130 | + ! print *, 'ao_ortho_mono_elec_integral', ao_ortho_mono_elec_integral(1:ao_num,1:ao_num) |
| 131 | + ! print *, 'Fock MO:', Fock_matrix_mo(1:mo_tot_num,1:mo_tot_num) |
| 132 | + do j=1,mo_tot_num |
| 133 | + do i=1,mo_tot_num |
| 134 | + Fock_matrix_mo(i,j) += mo_mono_elec_integral_dressing(i,j) |
| 135 | + enddo |
| 136 | + enddo |
| 137 | + do i=1,mo_tot_num |
| 138 | + Fock_matrix_diag_mo(i) = Fock_matrix_mo(i,i) |
| 139 | + enddo |
| 140 | + ! print *, 'Dressed Fock MO:', Fock_matrix_mo(1:mo_tot_num,1:mo_tot_num) |
| 141 | + double precision :: conv |
| 142 | + conv = 0.d0 |
| 143 | + do j=1,mo_tot_num |
| 144 | + do i=1,mo_tot_num |
| 145 | + if (i==j) cycle |
| 146 | + conv = max(conv,Fock_matrix_mo(i,j)) |
| 147 | + enddo |
| 148 | + enddo |
| 149 | + TOUCH Fock_matrix_mo Fock_matrix_diag_mo |
| 150 | + |
| 151 | + mo_coef(1:ao_num,1:mo_tot_num) = eigenvectors_fock_matrix_mo(1:ao_num,1:mo_tot_num) |
| 152 | + TOUCH mo_coef |
| 153 | + !print *, 'C', mo_coef(1:ao_num,1:mo_tot_num) |
| 154 | + !print *, '-----' |
| 155 | + print *, idx_dressing, it, real(mo_coef(1,idx_dressing)), real(conv) |
| 156 | + if (conv < 1.d-5) exit |
| 157 | + !stop |
152 | 158 |
|
| 159 | + enddo |
| 160 | + cusp_corrected_mos(1:ao_num,idx_dressing) = mo_coef(1:ao_num,idx_dressing) |
| 161 | + slater_coef(1:nucl_num,idx_dressing) = cusp_C(1:nucl_num,idx_dressing) |
153 | 162 | enddo |
154 | | - cusp_corrected_mos(1:ao_num,idx_dressing) = mo_coef(1:ao_num,idx_dressing) |
155 | | - slater_coef(1:nucl_num,idx_dressing) = cusp_C(1:nucl_num,idx_dressing) |
156 | | - enddo |
157 | 163 |
|
158 | | - idx_dressing = 1 |
159 | | - mo_coef(1:ao_num,1:mo_tot_num) = M(1:ao_num,1:mo_tot_num) |
160 | | - soft_TOUCH mo_coef idx_dressing slater_coef |
| 164 | + idx_dressing = 1 |
| 165 | + mo_coef(1:ao_num,1:mo_tot_num) = M(1:ao_num,1:mo_tot_num) |
| 166 | + soft_TOUCH mo_coef idx_dressing slater_coef |
| 167 | + |
| 168 | + endif |
161 | 169 |
|
162 | 170 | END_PROVIDER |
163 | 171 |
|
|
0 commit comments