mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-11-18 11:23:38 +01:00
notes
This commit is contained in:
parent
1f353e6ca0
commit
56cc1c6b40
@ -1,27 +1,77 @@
|
|||||||
changed, but not by me
|
compare master-features_periodic
|
||||||
ocaml/Input_determinants_by_hand.ml
|
694df1d6498767c9b130dadf0e0cbd585d10d348
|
||||||
ocaml/qp_set_mo_class.ml
|
8bfcfe8f21762aacd95bbeccb1c3c1d2f847cca3
|
||||||
src/cipsi/run_pt2_slave.irp.f
|
|
||||||
src/cipsi/selection.irp.f
|
|
||||||
src/cipsi/slave_cipsi.irp.f
|
|
||||||
src/davidson/EZFIO.cfg
|
|
||||||
src/davidson/davidson_parallel.irp.f
|
|
||||||
src/davidson/diagonalization_hs2_dressed.irp.f
|
|
||||||
src/davidson/input.irp.f
|
|
||||||
src/davidson/parameters.irp.f
|
|
||||||
src/davidson/u0_h_u0.irp.f
|
|
||||||
src/determinants/EZFIO.cfg
|
|
||||||
src/determinants/single_excitations.irp.f
|
|
||||||
|
|
||||||
src/ao_one_e_ints/ao_ortho_canonical_complex.irp.f
|
TODO:
|
||||||
no {dump,load}_ao_integrals
|
ao_ints
|
||||||
|
reverse index
|
||||||
|
s_half_inv_complex
|
||||||
|
ao_overlap_abs for complex
|
||||||
|
ao_integrals_n_e_per_atom_complex?
|
||||||
|
not implemented for periodic:
|
||||||
|
ao_two_e_integral
|
||||||
|
ao_two_e_integral_schwartz_accel
|
||||||
|
compute_ao_two_e_integrals
|
||||||
|
[ double precision, ao_two_e_integral_schwartz,(ao_num,ao_num) ]
|
||||||
|
compute_ao_integrals_jl
|
||||||
|
|
||||||
|
mo_one_e_ints
|
||||||
|
make separate providers for real/imag/complex parts for periodic
|
||||||
|
|
||||||
|
mo_basis
|
||||||
|
decide how to handle real/imag/complex parts of mo_coef (maybe just need to chage save_mos?)
|
||||||
|
reorder_core_orb: implement for periodic
|
||||||
|
save_mos_no_occ: implement for periodic
|
||||||
|
|
||||||
|
scf
|
||||||
|
finish complex DIIS
|
||||||
|
finish ao_two_e_integral_{alpha,beta}_complex (need reverse index?)
|
||||||
|
finish extrapolate_Fock_matrix_complex
|
||||||
|
finish eigenvectors_Fock_matrix_AO_complex
|
||||||
|
|
||||||
|
mo_two_e_ints
|
||||||
|
not started
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############################
|
||||||
|
# utils, ezfio, ... #
|
||||||
|
############################
|
||||||
|
|
||||||
periodic:
|
|
||||||
ocaml/Input_mo_basis.ml
|
ocaml/Input_mo_basis.ml
|
||||||
added mo_coef_imag array (real)
|
added mo_coef_imag array (real)
|
||||||
still needs mo_coef_to_string and to_string?
|
still needs mo_coef_to_string and to_string?
|
||||||
|
|
||||||
|
src/nuclei/EZFIO.cfg
|
||||||
|
[is_periodic]
|
||||||
|
if true use periodic parts of code
|
||||||
|
|
||||||
|
src/utils/linear_algebra.irp.f
|
||||||
|
complex versions of utils
|
||||||
|
(maybe put in separate file?)
|
||||||
|
|
||||||
|
src/utils/map_module.f90
|
||||||
|
subroutine map_get_2
|
||||||
|
get two neighboring values from map
|
||||||
|
not tested or used
|
||||||
|
|
||||||
|
|
||||||
|
src/utils_periodic/export_integrals_ao_periodic.irp.f
|
||||||
|
dump ints for testing
|
||||||
|
|
||||||
|
src/utils_periodic/import_integrals_ao_periodic.irp.f
|
||||||
|
read ints from pyscf
|
||||||
|
TODO: don't read ao_num from stdin
|
||||||
|
|
||||||
|
src/utils_periodic/import_mo_coef_periodic.irp.f
|
||||||
|
read mo_coef from pyscf
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# ao_one_e_ints #
|
||||||
|
#######################
|
||||||
|
|
||||||
src/ao_one_e_ints/EZFIO.cfg
|
src/ao_one_e_ints/EZFIO.cfg
|
||||||
[ao_integrals_n_e_imag]
|
[ao_integrals_n_e_imag]
|
||||||
@ -46,9 +96,9 @@ src/ao_one_e_ints/pot_ao_pseudo_ints.irp.f
|
|||||||
imag arrays can only be read from disk
|
imag arrays can only be read from disk
|
||||||
no complex/imag versions of ao_integrals_n_e_per_atom, but this should be straightforward if we need it later?
|
no complex/imag versions of ao_integrals_n_e_per_atom, but this should be straightforward if we need it later?
|
||||||
changed ao_overlap_abs so that it is set to cdabs(ao_overlap_complex) if (is_periodic)
|
changed ao_overlap_abs so that it is set to cdabs(ao_overlap_complex) if (is_periodic)
|
||||||
(maybe not the behavior we want)
|
TODO: (maybe not the behavior we want)
|
||||||
added S_inv_complex
|
added S_inv_complex
|
||||||
(no S_half_inv_complex yet)
|
TODO: (no S_half_inv_complex yet)
|
||||||
|
|
||||||
src/ao_one_e_ints/ao_ortho_canonical_complex.irp.f
|
src/ao_one_e_ints/ao_ortho_canonical_complex.irp.f
|
||||||
ao_cart_to_sphe_coef_complex
|
ao_cart_to_sphe_coef_complex
|
||||||
@ -68,6 +118,11 @@ src/ao_one_e_ints/ao_ortho_canonical_complex.irp.f
|
|||||||
similar to real version
|
similar to real version
|
||||||
|
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# ao_two_e_ints #
|
||||||
|
#######################
|
||||||
|
|
||||||
|
|
||||||
src/ao_two_e_ints/map_integrals.irp.f
|
src/ao_two_e_ints/map_integrals.irp.f
|
||||||
added ao_integrals_map_2 (provider linked to ao_integrals_map)
|
added ao_integrals_map_2 (provider linked to ao_integrals_map)
|
||||||
double size of both maps if (is_periodic)
|
double size of both maps if (is_periodic)
|
||||||
@ -96,8 +151,6 @@ src/ao_two_e_ints/map_integrals.irp.f
|
|||||||
|
|
||||||
|
|
||||||
src/ao_two_e_ints/two_e_integrals.irp.f
|
src/ao_two_e_ints/two_e_integrals.irp.f
|
||||||
|
|
||||||
|
|
||||||
not implemented for periodic:
|
not implemented for periodic:
|
||||||
double precision function ao_two_e_integral
|
double precision function ao_two_e_integral
|
||||||
double precision function ao_two_e_integral_schwartz_accel
|
double precision function ao_two_e_integral_schwartz_accel
|
||||||
@ -110,6 +163,12 @@ src/ao_two_e_ints/two_e_integrals.irp.f
|
|||||||
complex AO ints can only be read from disk (not calculated)
|
complex AO ints can only be read from disk (not calculated)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# mo_basis #
|
||||||
|
#######################
|
||||||
|
|
||||||
|
|
||||||
src/mo_basis/track_orb.irp.f → src/bitmask/track_orb.irp.f
|
src/mo_basis/track_orb.irp.f → src/bitmask/track_orb.irp.f
|
||||||
not implemented for periodic:
|
not implemented for periodic:
|
||||||
subroutine reorder_core_orb (should be modified for periodic)
|
subroutine reorder_core_orb (should be modified for periodic)
|
||||||
@ -120,26 +179,12 @@ src/mo_basis/track_orb.irp.f → src/bitmask/track_orb.irp.f
|
|||||||
similar to real version
|
similar to real version
|
||||||
|
|
||||||
|
|
||||||
src/hartree_fock/fock_matrix_hf_complex.irp.f
|
|
||||||
TODO for periodic:
|
|
||||||
[ complex*16, ao_two_e_integral_{alpha,beta}_complex, (ao_num, ao_num) ]
|
|
||||||
finish implementation (might need new version of two_e_integrals_index_reverse)
|
|
||||||
added for periodic:
|
|
||||||
[ complex*16, Fock_matrix_ao_{alpha,beta}_complex, (ao_num, ao_num) ]
|
|
||||||
|
|
||||||
|
|
||||||
src/hartree_fock/scf.irp.f
|
|
||||||
modified for periodic:
|
|
||||||
subroutine create_guess
|
|
||||||
should work for periodic
|
|
||||||
TODO: decide what to do about mo_coef_complex and imag/real parts for touch/save!!!
|
|
||||||
|
|
||||||
src/mo_basis/EZFIO.cfg
|
src/mo_basis/EZFIO.cfg
|
||||||
[mo_coef_imag]
|
[mo_coef_imag]
|
||||||
|
|
||||||
|
|
||||||
src/mo_basis/mos.irp.f
|
src/mo_basis/mos.irp.f
|
||||||
modifieed for periodic:
|
modified for periodic:
|
||||||
subroutine mix_mo_jk
|
subroutine mix_mo_jk
|
||||||
|
|
||||||
src/mo_basis/mos_complex.irp.f
|
src/mo_basis/mos_complex.irp.f
|
||||||
@ -191,6 +236,10 @@ src/mo_guess/pot_mo_ortho_lowdin_ints.irp.f
|
|||||||
[complex*16, ao_ortho_lowdin_nucl_elec_integrals_complex, (mo_num,mo_num)]
|
[complex*16, ao_ortho_lowdin_nucl_elec_integrals_complex, (mo_num,mo_num)]
|
||||||
|
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# mo_one_e_ints #
|
||||||
|
#######################
|
||||||
|
|
||||||
src/mo_one_e_ints/EZFIO.cfg
|
src/mo_one_e_ints/EZFIO.cfg
|
||||||
[mo_integrals_e_n_imag]
|
[mo_integrals_e_n_imag]
|
||||||
[mo_integrals_kinetic_imag]
|
[mo_integrals_kinetic_imag]
|
||||||
@ -221,8 +270,6 @@ src/mo_one_e_ints/pot_mo_pseudo_ints.irp.f
|
|||||||
or transform complex MO ints from complex AO ints and also assign real/imag parts to separate arrays?
|
or transform complex MO ints from complex AO ints and also assign real/imag parts to separate arrays?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
src/mo_one_e_ints/mo_overlap.irp.f
|
src/mo_one_e_ints/mo_overlap.irp.f
|
||||||
[ complex*16, mo_overlap_complex,(mo_num,mo_num) ]
|
[ complex*16, mo_overlap_complex,(mo_num,mo_num) ]
|
||||||
TODO: add option to read from disk?
|
TODO: add option to read from disk?
|
||||||
@ -231,4 +278,79 @@ src/mo_one_e_ints/mo_overlap.irp.f
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# SCF #
|
||||||
|
#######################
|
||||||
|
|
||||||
|
src/hartree_fock/fock_matrix_hf_complex.irp.f
|
||||||
|
TODO for periodic:
|
||||||
|
[ complex*16, ao_two_e_integral_{alpha,beta}_complex, (ao_num, ao_num) ]
|
||||||
|
finish implementation (might need new version of two_e_integrals_index_reverse)
|
||||||
|
added for periodic:
|
||||||
|
[ complex*16, Fock_matrix_ao_{alpha,beta}_complex, (ao_num, ao_num) ]
|
||||||
|
|
||||||
|
|
||||||
|
src/hartree_fock/scf.irp.f
|
||||||
|
modified for periodic:
|
||||||
|
subroutine create_guess
|
||||||
|
should work for periodic
|
||||||
|
TODO: decide what to do about mo_coef_complex and imag/real parts for touch/save!!!
|
||||||
|
TODO: call roothaan_hall_scf_complex if (is_periodic)
|
||||||
|
|
||||||
|
|
||||||
|
src/scf_utils/diagonalize_fock_complex.irp.f
|
||||||
|
[ complex*16, eigenvectors_Fock_matrix_mo_complex, (ao_num,mo_num) ]
|
||||||
|
similar to real version
|
||||||
|
make separate function in utils for lapack calls
|
||||||
|
|
||||||
|
src/scf_utils/diis_complex.irp.f
|
||||||
|
[complex*16, FPS_SPF_Matrix_AO_complex, (AO_num, AO_num)]
|
||||||
|
[complex*16, FPS_SPF_Matrix_MO, (mo_num, mo_num)]
|
||||||
|
linked providers:
|
||||||
|
[ double precision, eigenvalues_Fock_matrix_AO_complex, (AO_num) ]
|
||||||
|
[ complex*16, eigenvectors_Fock_matrix_AO_complex, (AO_num,AO_num) ]
|
||||||
|
TODO: finish implementing (need s_half_inv_complex)
|
||||||
|
note: eigvals is same type/size as real version
|
||||||
|
|
||||||
|
|
||||||
|
src/scf_utils/fock_matrix.irp.f
|
||||||
|
added checks to make sure we don't end up in real providers if (is_periodic)
|
||||||
|
probably not necessary?
|
||||||
|
[ double precision, SCF_energy ]
|
||||||
|
modified for periodic
|
||||||
|
could also add check to ensure imaginary part is zero?
|
||||||
|
|
||||||
|
src/scf_utils/fock_matrix_complex.irp.f
|
||||||
|
[ complex*16, Fock_matrix_mo_complex, (mo_num,mo_num) ]
|
||||||
|
[ double precision, Fock_matrix_diag_mo_complex, (mo_num)]
|
||||||
|
similar to real versions
|
||||||
|
added check to make sure diagonal elements of fock matrix are real
|
||||||
|
[ complex*16, Fock_matrix_mo_alpha_complex, (mo_num,mo_num) ]
|
||||||
|
[ complex*16, Fock_matrix_mo_beta_complex, (mo_num,mo_num) ]
|
||||||
|
[ complex*16, Fock_matrix_ao_complex, (ao_num, ao_num) ]
|
||||||
|
|
||||||
|
|
||||||
|
src/scf_utils/huckel_complex.irp.f
|
||||||
|
similar to real version
|
||||||
|
could just put if (is_periodic) branch in real version? (instead of making separate subroutine)
|
||||||
|
has soft_touch mo_coef_complex and call to save_mos (see other notes on real/imag parts)
|
||||||
|
|
||||||
|
|
||||||
|
src/scf_utils/roothaan_hall_scf_complex.irp.f
|
||||||
|
subroutine Roothaan_Hall_SCF_complex
|
||||||
|
similar to real
|
||||||
|
has soft_touch mo_coef_complex and call to save_mos (see other notes on real/imag parts)
|
||||||
|
subroutine extrapolate_Fock_matrix_complex
|
||||||
|
TODO: check variable types?
|
||||||
|
complex scratch is being used in dsysvx, should be real
|
||||||
|
|
||||||
|
src/scf_utils/scf_density_matrix_ao_complex.irp.f
|
||||||
|
complex versions of providers
|
||||||
|
[complex*16, SCF_density_matrix_ao_alpha_complex, (ao_num,ao_num) ]
|
||||||
|
[ complex*16, SCF_density_matrix_ao_beta_complex, (ao_num,ao_num) ]
|
||||||
|
[ complex*16, SCF_density_matrix_ao_complex, (ao_num,ao_num) ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user