10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-12-22 12:23:48 +01:00

Modifs Manus

This commit is contained in:
Emmanuel Giner 2017-10-27 12:20:00 +02:00
parent b0ff7d934d
commit b447da300e
34 changed files with 2354 additions and 874 deletions

View File

@ -7,7 +7,7 @@
# #
[COMMON] [COMMON]
FC : ifort FC : ifort
LAPACK_LIB : -mkl=parallel LAPACK_LIB : -mkl=sequential
IRPF90 : irpf90 IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32 IRPF90_FLAGS : --ninja --align=32

View File

@ -8,6 +8,22 @@ s.unset_skip()
s.filter_only_1h1p() s.filter_only_1h1p()
print s print s
s = H_apply("just_2p")
s.set_selection_pt2("epstein_nesbet_2x2")
s.unset_skip()
s.filter_only_2p()
print s
s = H_apply("just_1p")
s.set_selection_pt2("epstein_nesbet_2x2")
s.unset_skip()
s.filter_only_1p()
print s
s = H_apply("just_1h_1p_singles",do_double_exc=False) s = H_apply("just_1h_1p_singles",do_double_exc=False)
s.set_selection_pt2("epstein_nesbet_2x2") s.set_selection_pt2("epstein_nesbet_2x2")
s.unset_skip() s.unset_skip()

View File

@ -15,7 +15,7 @@ subroutine routine
integer :: N_st, degree integer :: N_st, degree
double precision,allocatable :: E_before(:) double precision,allocatable :: E_before(:)
integer :: n_det_before integer :: n_det_before
N_st = N_states_diag N_st = N_states
allocate (pt2(N_st), norm_pert(N_st),H_pert_diag(N_st),E_before(N_st)) allocate (pt2(N_st), norm_pert(N_st),H_pert_diag(N_st),E_before(N_st))
i = 0 i = 0
print*,'N_det = ',N_det print*,'N_det = ',N_det

View File

@ -110,7 +110,7 @@ subroutine FOBOCI_lmct_mlct_old_thr(iter)
call update_density_matrix_osoci call update_density_matrix_osoci
enddo enddo
if(.True.)then if(.False.)then
print*,'' print*,''
print*,'DOING THEN THE MLCT !!' print*,'DOING THEN THE MLCT !!'
print*,'Threshold_mlct = ',threshold_mlct print*,'Threshold_mlct = ',threshold_mlct

View File

@ -10,7 +10,6 @@ Needed Modules
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/plugins/Selectors_full>`_ * `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/plugins/Selectors_full>`_
* `Generators_full <http://github.com/LCPQ/quantum_package/tree/master/plugins/Generators_full>`_ * `Generators_full <http://github.com/LCPQ/quantum_package/tree/master/plugins/Generators_full>`_
* `ZMQ <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ>`_ * `ZMQ <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ>`_
* `Full_CI <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI>`_
Documentation Documentation
============= =============
@ -18,19 +17,43 @@ Documentation
.. by the `update_README.py` script. .. by the `update_README.py` script.
`add_task_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L677>`_ `add_comb <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L410>`_
Undocumented
`add_task_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L704>`_
Get a task from the task server Get a task from the task server
`add_to_selection_buffer <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_buffer.irp.f#L19>`_ `add_task_to_taskserver_recv <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L761>`_
Get a task from the task server
`add_task_to_taskserver_send <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L736>`_
Get a task from the task server
`add_to_selection_buffer <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_buffer.irp.f#L31>`_
Undocumented Undocumented
`assert <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L25>`_ `assert <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L35>`_
Undocumented Undocumented
`connect_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L594>`_ `bitstring_to_list_in_selection <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L1150>`_
Gives the inidices(+1) of the bits set to 1 in the bit string
`comb_step <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L438>`_
Undocumented
`comb_teeth <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L322>`_
Undocumented
`connect_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L621>`_
Connect to the task server and obtain the worker ID Connect to the task server and obtain the worker ID
@ -38,241 +61,135 @@ Documentation
Undocumented Undocumented
`disconnect_from_taskserver <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L637>`_ `delete_selection_buffer <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_buffer.irp.f#L18>`_
Undocumented
`disconnect_from_taskserver <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L664>`_
Disconnect from the task server Disconnect from the task server
`end_parallel_job <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L559>`_ `do_carlo <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L112>`_
Undocumented
`end_parallel_job <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L583>`_
End a new parallel job with name 'name'. The slave tasks execute subroutine 'slave' End a new parallel job with name 'name'. The slave tasks execute subroutine 'slave'
`end_zmq_pair_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L419>`_ `end_zmq_pair_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L424>`_
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
`end_zmq_pull_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L437>`_ `end_zmq_pull_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L444>`_
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
`end_zmq_push_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L456>`_ `end_zmq_push_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L470>`_
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
`end_zmq_sub_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L401>`_ `end_zmq_sub_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L404>`_
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
`end_zmq_to_qp_run_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L790>`_ `end_zmq_to_qp_run_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L890>`_
Terminate the socket from the application to qp_run Terminate the socket from the application to qp_run
`fci_zmq <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/fci_zmq.irp.f#L1>`_ `fci_zmq <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/target_pt2_zmq.irp.f#L1>`_
Undocumented Undocumented
`fill_buffer_double <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_double.irp.f#L156>`_ `fill_buffer_double <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L558>`_
Undocumented Undocumented
`fill_buffer_single <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_single.irp.f#L60>`_ `first_det_of_comb <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L440>`_
Undocumented Undocumented
`full_ci <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/full_ci_no_skip.irp.f#L1>`_ `first_det_of_teeth <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L439>`_
Undocumented Undocumented
`get_d0 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_double.irp.f#L582>`_ `fragment_count <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L3>`_
Number of fragments for the deterministic part
`fragment_first <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L1>`_
Undocumented Undocumented
`get_d1 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_double.irp.f#L413>`_ `get_carlo_workbatch <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L362>`_
Undocumented Undocumented
`get_d2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_double.irp.f#L295>`_ `get_comb <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L392>`_
Undocumented Undocumented
`get_m0 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_single.irp.f#L279>`_ `get_d0 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L1004>`_
Undocumented Undocumented
`get_m1 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_single.irp.f#L217>`_ `get_d1 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L832>`_
Undocumented Undocumented
`get_m2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_single.irp.f#L158>`_ `get_d2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L714>`_
Undocumented Undocumented
`get_mask_phase <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L36>`_ `get_first_tooth <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L329>`_
Undocumented Undocumented
`get_phase_bi <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L87>`_ `get_m0 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L251>`_
Undocumented Undocumented
`get_task_from_taskserver <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L737>`_ `get_m1 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L185>`_
Undocumented
`get_m2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L126>`_
Undocumented
`get_mask_phase <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L46>`_
Undocumented
`get_phase_bi <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L104>`_
Undocumented
`get_task_from_taskserver <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L836>`_
Get a task from the task server Get a task from the task server
h_apply_fci `initialize_pt2_e0_denominator <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/energy.irp.f#L1>`_
Calls H_apply on the HF determinant and selects all connected single and double If true, initialize pt2_E0_denominator
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
h_apply_fci_diexc `integral8 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L12>`_
Undocumented Undocumented
h_apply_fci_diexcorg `merge_selection_buffers <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_buffer.irp.f#L50>`_
Generate all double excitations of key_in using the bit masks of holes and Merges the selection buffers b1 and b2 into b2
particles.
Assume N_int is already provided.
h_apply_fci_diexcp `new_parallel_job <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L506>`_
Undocumented
h_apply_fci_mono
Calls H_apply on the HF determinant and selects all connected single and double
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
h_apply_fci_mono_diexc
Undocumented
h_apply_fci_mono_diexcorg
Generate all double excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
h_apply_fci_mono_diexcp
Undocumented
h_apply_fci_mono_monoexc
Generate all single excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
h_apply_fci_monoexc
Generate all single excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
h_apply_fci_no_selection
Calls H_apply on the HF determinant and selects all connected single and double
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
h_apply_fci_no_selection_diexc
Undocumented
h_apply_fci_no_selection_diexcorg
Generate all double excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
h_apply_fci_no_selection_diexcp
Undocumented
h_apply_fci_no_selection_monoexc
Generate all single excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
h_apply_fci_no_skip
Calls H_apply on the HF determinant and selects all connected single and double
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
h_apply_fci_no_skip_diexc
Undocumented
h_apply_fci_no_skip_diexcorg
Generate all double excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
h_apply_fci_no_skip_diexcp
Undocumented
h_apply_fci_no_skip_monoexc
Generate all single excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
h_apply_fci_pt2
Calls H_apply on the HF determinant and selects all connected single and double
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
h_apply_fci_pt2_collector
Collects results from the selection in an array of generators
h_apply_fci_pt2_diexc
Undocumented
h_apply_fci_pt2_diexcorg
Generate all double excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
h_apply_fci_pt2_diexcp
Undocumented
h_apply_fci_pt2_monoexc
Generate all single excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
h_apply_fci_pt2_slave
Calls H_apply on the HF determinant and selects all connected single and double
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
h_apply_fci_pt2_slave_inproc
Computes a buffer using threads
h_apply_fci_pt2_slave_tcp
Computes a buffer over the network
`integral8 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L4>`_
Undocumented
`new_parallel_job <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L490>`_
Start a new parallel job with name 'name'. The slave tasks execute subroutine 'slave' Start a new parallel job with name 'name'. The slave tasks execute subroutine 'slave'
`new_zmq_pair_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L164>`_ `new_zmq_pair_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L161>`_
Socket on which the collector and the main communicate Socket on which the collector and the main communicate
`new_zmq_pull_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L224>`_ `new_zmq_pull_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L221>`_
Socket on which the results are sent. If thread is 1, use inproc Socket on which the results are sent. If thread is 1, use inproc
@ -280,68 +197,120 @@ h_apply_fci_pt2_slave_tcp
Socket on which the results are sent. If thread is 1, use inproc Socket on which the results are sent. If thread is 1, use inproc
`new_zmq_sub_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L360>`_ `new_zmq_sub_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L363>`_
Socket to read the state published by the Task server Socket to read the state published by the Task server
`new_zmq_to_qp_run_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L126>`_ `new_zmq_to_qp_run_socket <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L123>`_
Socket on which the qp_run process replies Socket on which the qp_run process replies
`past_d1 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_double.irp.f#L642>`_ `past_d1 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L1064>`_
Undocumented Undocumented
`past_d2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_double.irp.f#L658>`_ `past_d2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L1080>`_
Undocumented Undocumented
`provide_everything <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_slave.irp.f#L14>`_ `provide_everything <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_slave.irp.f#L15>`_
Undocumented Undocumented
`psi_phasemask <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L14>`_ `pt2_collector <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L147>`_
Undocumented Undocumented
`pull_selection_results <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/run_selection_slave.irp.f#L122>`_ `pt2_cweight <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L436>`_
Undocumented Undocumented
`push_selection_results <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/run_selection_slave.irp.f#L87>`_ `pt2_cweight_cache <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L437>`_
Undocumented Undocumented
`qp_run_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L19>`_ `pt2_e0_denominator <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/energy.irp.f#L9>`_
E0 in the denominator of the PT2
`pt2_find <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L295>`_
Undocumented
`pt2_slave <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_slave.irp.f#L1>`_
Helper program to compute the PT2 in distributed mode.
`pt2_slave_inproc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L140>`_
Undocumented
`pt2_slave_tcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_slave.irp.f#L68>`_
Undocumented
`pt2_stoch <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch.irp.f#L1>`_
Undocumented
`pt2_weight <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L435>`_
Undocumented
`pt2_weight_inv <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L502>`_
Inverse of pt2_weight array
`pt2_workload <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/run_pt2_slave.irp.f#L159>`_
Undocumented
`pull_pt2_results <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/run_pt2_slave.irp.f#L125>`_
Undocumented
`pull_selection_results <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/run_selection_slave.irp.f#L142>`_
Undocumented
`push_pt2_results <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/run_pt2_slave.irp.f#L88>`_
Undocumented
`push_selection_results <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/run_selection_slave.irp.f#L88>`_
Undocumented
`qp_run_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L16>`_
Address of the qp_run socket Address of the qp_run socket
Example : tcp://130.120.229.139:12345 Example : tcp://130.120.229.139:12345
`reset_zmq_addresses <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L67>`_ `reset_zmq_addresses <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L64>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`run_pt2_slave <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/run_pt2_slave.irp.f#L2>`_
Undocumented
`run_selection_slave <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/run_selection_slave.irp.f#L2>`_ `run_selection_slave <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/run_selection_slave.irp.f#L2>`_
Undocumented Undocumented
`run_wf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_slave.irp.f#L19>`_ `run_wf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_slave.irp.f#L20>`_
Undocumented Undocumented
`select_connected <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L58>`_ `select_connected <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L72>`_
Undocumented Undocumented
`select_doubles <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_double.irp.f#L2>`_ `select_singles_and_doubles <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L280>`_
Undocumented WARNING /!\ : It is assumed that the generators and selectors are psi_det_sorted
`select_singles <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_single.irp.f#L3>`_ `selection_collector <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/zmq_selection.irp.f#L78>`_
Select determinants connected to i_det by H
`selection_collector <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/fci_zmq.irp.f#L167>`_
Undocumented Undocumented
@ -349,113 +318,109 @@ h_apply_fci_pt2_slave_tcp
Helper program to compute the PT2 in distributed mode. Helper program to compute the PT2 in distributed mode.
`selection_slave_inproc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/fci_zmq.irp.f#L160>`_ `selection_slave_inproc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/zmq_selection.irp.f#L71>`_
Undocumented Undocumented
`selection_slave_tcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_slave.irp.f#L86>`_ `size_tbc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L354>`_
Size of the tbc array
`sort_selection_buffer <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_buffer.irp.f#L107>`_
Undocumented Undocumented
`sort_selection_buffer <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_buffer.irp.f#L39>`_ `splash_pq <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L623>`_
Undocumented Undocumented
`splash_p <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_single.irp.f#L107>`_ `spot_isinwf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection.irp.f#L1106>`_
Undocumented Undocumented
`splash_pq <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_double.irp.f#L221>`_ `switch_qp_run_to_master <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L81>`_
Undocumented
`spot_hasbeen <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_single.irp.f#L305>`_
Undocumented
`spot_isinwf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_double.irp.f#L684>`_
Undocumented
`switch_qp_run_to_master <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L84>`_
Address of the master qp_run socket Address of the master qp_run socket
Example : tcp://130.120.229.139:12345 Example : tcp://130.120.229.139:12345
`task_done_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L708>`_ `task_done_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L807>`_
Get a task from the task server Get a task from the task server
`update_energy <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/selection_slave.irp.f#L63>`_ `wait_for_next_state <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L955>`_
Update energy when it is received from ZMQ
`var_pt2_ratio_run <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/var_pt2_ratio.irp.f#L1>`_
Undocumented Undocumented
`wait_for_next_state <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L855>`_ `wait_for_state <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L979>`_
Undocumented
`wait_for_state <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L879>`_
Wait for the ZMQ state to be ready Wait for the ZMQ state to be ready
`wait_for_states <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L907>`_ `wait_for_states <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L1007>`_
Wait for the ZMQ state to be ready Wait for the ZMQ state to be ready
`zmq_context <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L8>`_ `zmq_abort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L780>`_
Aborts a running parallel computation
`zmq_context <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L4>`_
Context for the ZeroMQ library Context for the ZeroMQ library
`zmq_delete_task <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L813>`_ `zmq_delete_task <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L913>`_
When a task is done, it has to be removed from the list of tasks on the qp_run When a task is done, it has to be removed from the list of tasks on the qp_run
queue. This guarantees that the results have been received in the pull. queue. This guarantees that the results have been received in the pull.
`zmq_port <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L113>`_ `zmq_lock <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L5>`_
Context for the ZeroMQ library
`zmq_port <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L110>`_
Return the value of the ZMQ port from the corresponding integer Return the value of the ZMQ port from the corresponding integer
`zmq_port_start <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L20>`_ `zmq_port_start <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L17>`_
Address of the qp_run socket Address of the qp_run socket
Example : tcp://130.120.229.139:12345 Example : tcp://130.120.229.139:12345
`zmq_selection <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/fci_zmq.irp.f#L109>`_ `zmq_pt2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f#L6>`_
Undocumented Undocumented
`zmq_set_running <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L530>`_ `zmq_selection <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/zmq_selection.irp.f#L1>`_
Undocumented
`zmq_set_running <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L553>`_
Set the job to Running in QP-run Set the job to Running in QP-run
`zmq_socket_pair_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L45>`_ `zmq_socket_pair_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L42>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_socket_pull_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L47>`_ `zmq_socket_pull_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L44>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_socket_pull_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L44>`_ `zmq_socket_pull_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L41>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_socket_push_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L48>`_ `zmq_socket_push_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L45>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_socket_push_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L46>`_ `zmq_socket_push_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L43>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_socket_sub_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L49>`_ `zmq_socket_sub_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L46>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_state <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L482>`_ `zmq_state <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI_ZMQ/utils.irp.f#L498>`_
Threads executing work through the ZeroMQ interface Threads executing work through the ZeroMQ interface

View File

@ -13,6 +13,8 @@ BEGIN_PROVIDER [ double precision, pt2_E0_denominator, (N_states) ]
END_DOC END_DOC
if (initialize_pt2_E0_denominator) then if (initialize_pt2_E0_denominator) then
pt2_E0_denominator(1:N_states) = psi_energy(1:N_states) pt2_E0_denominator(1:N_states) = psi_energy(1:N_states)
! call ezfio_get_full_ci_zmq_energy(pt2_E0_denominator(1))
! pt2_E0_denominator(1) -= nuclear_repulsion
! pt2_E0_denominator(1:N_states) = HF_energy - nuclear_repulsion ! pt2_E0_denominator(1:N_states) = HF_energy - nuclear_repulsion
! pt2_E0_denominator(1:N_states) = barycentric_electronic_energy(1:N_states) ! pt2_E0_denominator(1:N_states) = barycentric_electronic_energy(1:N_states)
call write_double(6,pt2_E0_denominator(1)+nuclear_repulsion, 'PT2 Energy denominator') call write_double(6,pt2_E0_denominator(1)+nuclear_repulsion, 'PT2 Energy denominator')

View File

@ -10,8 +10,9 @@ program fci_zmq
double precision :: hf_energy_ref double precision :: hf_energy_ref
logical :: has logical :: has
double precision :: relative_error double precision :: relative_error, absolute_error
relative_error=1.d-3 relative_error=PT2_relative_error
absolute_error=PT2_absolute_error
pt2 = -huge(1.d0) pt2 = -huge(1.d0)
threshold_davidson_in = threshold_davidson threshold_davidson_in = threshold_davidson
@ -56,6 +57,7 @@ program fci_zmq
double precision :: threshold_selectors_save, threshold_generators_save double precision :: threshold_selectors_save, threshold_generators_save
threshold_selectors_save = threshold_selectors threshold_selectors_save = threshold_selectors
threshold_generators_save = threshold_generators threshold_generators_save = threshold_generators
double precision :: error
correlation_energy_ratio = 0.d0 correlation_energy_ratio = 0.d0
@ -74,7 +76,7 @@ program fci_zmq
threshold_selectors = 1.d0 threshold_selectors = 1.d0
threshold_generators = 1d0 threshold_generators = 1d0
SOFT_TOUCH threshold_selectors threshold_generators SOFT_TOUCH threshold_selectors threshold_generators
call ZMQ_pt2(CI_energy, pt2,relative_error) ! Stochastic PT2 call ZMQ_pt2(CI_energy, pt2,relative_error,absolute_error,error) ! Stochastic PT2
threshold_selectors = threshold_selectors_save threshold_selectors = threshold_selectors_save
threshold_generators = threshold_generators_save threshold_generators = threshold_generators_save
SOFT_TOUCH threshold_selectors threshold_generators SOFT_TOUCH threshold_selectors threshold_generators
@ -102,7 +104,11 @@ program fci_zmq
print*,'State ',k print*,'State ',k
print *, 'PT2 = ', pt2(k) print *, 'PT2 = ', pt2(k)
print *, 'E = ', CI_energy(k) print *, 'E = ', CI_energy(k)
print *, 'E+PT2'//pt2_string//' = ', CI_energy(k)+pt2(k) if (N_states==1) then
print *, 'E+PT2'//pt2_string//' = ', CI_energy(k)+pt2(k), ' +/- ', error
else
print *, 'E+PT2'//pt2_string//' = ', CI_energy(k)+pt2(k)
endif
enddo enddo
print *, '-----' print *, '-----'
@ -145,6 +151,7 @@ program fci_zmq
call diagonalize_CI call diagonalize_CI
call save_wavefunction call save_wavefunction
call ezfio_set_full_ci_zmq_energy(CI_energy(1)) call ezfio_set_full_ci_zmq_energy(CI_energy(1))
call ezfio_set_full_ci_zmq_energy(CI_energy(1))
call dump_fci_iterations_value(N_det,CI_energy(1),pt2(1)) ! This call automatically appends data call dump_fci_iterations_value(N_det,CI_energy(1),pt2(1)) ! This call automatically appends data
endif endif
@ -154,7 +161,7 @@ program fci_zmq
threshold_selectors = 1.d0 threshold_selectors = 1.d0
threshold_generators = 1d0 threshold_generators = 1d0
SOFT_TOUCH threshold_selectors threshold_generators SOFT_TOUCH threshold_selectors threshold_generators
call ZMQ_pt2(CI_energy, pt2, relative_error) ! Stochastic PT2 call ZMQ_pt2(CI_energy, pt2,relative_error,absolute_error,error) ! Stochastic PT2
threshold_selectors = threshold_selectors_save threshold_selectors = threshold_selectors_save
threshold_generators = threshold_generators_save threshold_generators = threshold_generators_save
SOFT_TOUCH threshold_selectors threshold_generators SOFT_TOUCH threshold_selectors threshold_generators
@ -164,9 +171,27 @@ program fci_zmq
SOFT_TOUCH threshold_selectors threshold_generators SOFT_TOUCH threshold_selectors threshold_generators
call ZMQ_selection(0, pt2) ! Deterministic PT2 call ZMQ_selection(0, pt2) ! Deterministic PT2
endif endif
call ezfio_set_full_ci_zmq_energy(CI_energy(1))
call ezfio_set_full_ci_zmq_energy_pt2(CI_energy(1)+pt2(1)) call ezfio_set_full_ci_zmq_energy_pt2(CI_energy(1)+pt2(1))
call dump_fci_iterations_value(N_det,CI_energy(1),pt2(1)) ! This call automatically appends data call dump_fci_iterations_value(N_det,CI_energy(1),pt2(1)) ! This call automatically appends data
endif endif
print *, 'N_det = ', N_det
print *, 'N_states = ', N_states
print*, 'correlation_ratio = ', correlation_energy_ratio
do k=1, N_states
print*,'State ',k
print *, 'PT2 = ', pt2(k)
print *, 'E = ', CI_energy(k)
if (N_states==1) then
print *, 'E+PT2'//pt2_string//' = ', CI_energy(k)+pt2(k), ' +/- ', error
else
print *, 'E+PT2'//pt2_string//' = ', CI_energy(k)+pt2(k)
endif
print *, 'error = ',error
enddo
print *, '-----'
end end

View File

@ -16,7 +16,7 @@ subroutine run
integer :: n_det_before, to_select integer :: n_det_before, to_select
double precision :: threshold_davidson_in double precision :: threshold_davidson_in
double precision :: E_CI_before, relative_error double precision :: E_CI_before, relative_error, absolute_error, eqt
allocate (pt2(N_states)) allocate (pt2(N_states))
pt2 = 0.d0 pt2 = 0.d0
@ -24,13 +24,14 @@ subroutine run
E_CI_before = pt2_E0_denominator(1) + nuclear_repulsion E_CI_before = pt2_E0_denominator(1) + nuclear_repulsion
threshold_selectors = 1.d0 threshold_selectors = 1.d0
threshold_generators = 1d0 threshold_generators = 1d0
relative_error = -1.d-3 relative_error = 1.d-9
call ZMQ_pt2(E_CI_before, pt2, relative_error) absolute_error = 1.d-9
call ZMQ_pt2(E_CI_before, pt2, relative_error, absolute_error, eqt)
print *, 'Final step' print *, 'Final step'
print *, 'N_det = ', N_det print *, 'N_det = ', N_det
print *, 'PT2 = ', pt2 print *, 'PT2 = ', pt2
print *, 'E = ', E_CI_before print *, 'E = ', E_CI_before
print *, 'E+PT2 = ', E_CI_before+pt2 print *, 'E+PT2 = ', E_CI_before+pt2, ' +/- ', eqt
print *, '-----' print *, '-----'
call ezfio_set_full_ci_zmq_energy_pt2(E_CI_before+pt2(1)) call ezfio_set_full_ci_zmq_energy_pt2(E_CI_before+pt2(1))
end end

View File

@ -3,7 +3,7 @@ BEGIN_PROVIDER [ integer, fragment_first ]
fragment_first = first_det_of_teeth(1) fragment_first = first_det_of_teeth(1)
END_PROVIDER END_PROVIDER
subroutine ZMQ_pt2(E, pt2,relative_error) subroutine ZMQ_pt2(E, pt2,relative_error, absolute_error, eqt)
use f77_zmq use f77_zmq
use selection_types use selection_types
@ -13,8 +13,8 @@ subroutine ZMQ_pt2(E, pt2,relative_error)
integer(ZMQ_PTR) :: zmq_to_qp_run_socket, zmq_to_qp_run_socket2 integer(ZMQ_PTR) :: zmq_to_qp_run_socket, zmq_to_qp_run_socket2
type(selection_buffer) :: b type(selection_buffer) :: b
integer, external :: omp_get_thread_num integer, external :: omp_get_thread_num
double precision, intent(in) :: relative_error, E double precision, intent(in) :: relative_error, absolute_error, E
double precision, intent(out) :: pt2(N_states) double precision, intent(out) :: pt2(N_states),eqt
double precision, allocatable :: pt2_detail(:,:), comb(:) double precision, allocatable :: pt2_detail(:,:), comb(:)
@ -93,7 +93,7 @@ subroutine ZMQ_pt2(E, pt2,relative_error)
!$OMP PRIVATE(i) !$OMP PRIVATE(i)
i = omp_get_thread_num() i = omp_get_thread_num()
if (i==0) then if (i==0) then
call pt2_collector(E, b, tbc, comb, Ncomb, computed, pt2_detail, sumabove, sum2above, Nabove, relative_error, pt2) call pt2_collector(E, b, tbc, comb, Ncomb, computed, pt2_detail, sumabove, sum2above, Nabove, relative_error, absolute_error, pt2,eqt)
else else
call pt2_slave_inproc(i) call pt2_slave_inproc(i)
endif endif
@ -144,7 +144,7 @@ subroutine pt2_slave_inproc(i)
call run_pt2_slave(1,i,pt2_e0_denominator) call run_pt2_slave(1,i,pt2_e0_denominator)
end end
subroutine pt2_collector(E, b, tbc, comb, Ncomb, computed, pt2_detail, sumabove, sum2above, Nabove, relative_error, pt2) subroutine pt2_collector(E, b, tbc, comb, Ncomb, computed, pt2_detail, sumabove, sum2above, Nabove, relative_error, absolute_error, pt2,eqt)
use f77_zmq use f77_zmq
use selection_types use selection_types
use bitmasks use bitmasks
@ -153,11 +153,11 @@ subroutine pt2_collector(E, b, tbc, comb, Ncomb, computed, pt2_detail, sumabove,
integer, intent(in) :: Ncomb integer, intent(in) :: Ncomb
double precision, intent(inout) :: pt2_detail(N_states, N_det_generators) double precision, intent(inout) :: pt2_detail(N_states, N_det_generators)
double precision, intent(in) :: comb(Ncomb), relative_error, E double precision, intent(in) :: comb(Ncomb), relative_error, absolute_error, E
logical, intent(inout) :: computed(N_det_generators) logical, intent(inout) :: computed(N_det_generators)
integer, intent(in) :: tbc(0:size_tbc) integer, intent(in) :: tbc(0:size_tbc)
double precision, intent(inout) :: sumabove(comb_teeth), sum2above(comb_teeth), Nabove(comb_teeth) double precision, intent(inout) :: sumabove(comb_teeth), sum2above(comb_teeth), Nabove(comb_teeth)
double precision, intent(out) :: pt2(N_states) double precision, intent(out) :: pt2(N_states),eqt
type(selection_buffer), intent(inout) :: b type(selection_buffer), intent(inout) :: b
@ -249,7 +249,7 @@ subroutine pt2_collector(E, b, tbc, comb, Ncomb, computed, pt2_detail, sumabove,
end if end if
end do end do
double precision :: E0, avg, eqt, prop double precision :: E0, avg, prop
call do_carlo(tbc, Ncomb+1-firstTBDcomb, comb(firstTBDcomb), pt2_detail, actually_computed, sumabove, sum2above, Nabove) call do_carlo(tbc, Ncomb+1-firstTBDcomb, comb(firstTBDcomb), pt2_detail, actually_computed, sumabove, sum2above, Nabove)
firstTBDcomb = int(Nabove(1)) - orgTBDcomb + 1 firstTBDcomb = int(Nabove(1)) - orgTBDcomb + 1
if(Nabove(1) < 5d0) cycle if(Nabove(1) < 5d0) cycle
@ -266,10 +266,11 @@ subroutine pt2_collector(E, b, tbc, comb, Ncomb, computed, pt2_detail, sumabove,
eqt = 0.d0 eqt = 0.d0
endif endif
call wall_time(time) call wall_time(time)
if (dabs(eqt/avg) < relative_error) then if ( (dabs(eqt/avg) < relative_error) .or. (dabs(eqt) < absolute_error)) then
! Termination ! Termination
pt2(1) = avg pt2(1) = avg
print '(G10.3, 2X, F16.10, 2X, G16.3, 2X, F16.4, A20)', Nabove(tooth), avg+E, eqt, time-time0, '' print '(G10.3, 2X, F16.10, 2X, G16.3, 2X, F16.4, A20)', Nabove(tooth), avg+E, eqt, time-time0, ''
! print*, 'Final statistical error = ',eqt
call zmq_abort(zmq_to_qp_run_socket) call zmq_abort(zmq_to_qp_run_socket)
else else
if (Nabove(tooth) > Nabove_old) then if (Nabove(tooth) > Nabove_old) then

View File

@ -33,16 +33,16 @@ Documentation
.. by the `update_README.py` script. .. by the `update_README.py` script.
`ao_bi_elec_integral_alpha <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L103>`_ `ao_bi_elec_integral_alpha <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L102>`_
Alpha Fock matrix in AO basis set Alpha Fock matrix in AO basis set
`ao_bi_elec_integral_beta <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L104>`_ `ao_bi_elec_integral_beta <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L103>`_
Alpha Fock matrix in AO basis set Alpha Fock matrix in AO basis set
`create_guess <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/SCF.irp.f#L13>`_ `create_guess <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/SCF.irp.f#L13>`_
Create an MO guess if no MOs are present in the EZFIO directory Create a MO guess if no MOs are present in the EZFIO directory
`damping_scf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/damping_SCF.irp.f#L1>`_ `damping_scf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/damping_SCF.irp.f#L1>`_
@ -53,34 +53,38 @@ Documentation
Diagonal Fock matrix in the MO basis Diagonal Fock matrix in the MO basis
`diagonal_fock_matrix_mo_sum <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/diagonalize_fock.irp.f#L95>`_ `diagonal_fock_matrix_mo_sum <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/diagonalize_fock.irp.f#L105>`_
diagonal element of the fock matrix calculated as the sum over all the interactions diagonal element of the fock matrix calculated as the sum over all the interactions
with all the electrons in the RHF determinant with all the electrons in the RHF determinant
diagonal_Fock_matrix_mo_sum(i) = sum_{j=1, N_elec} 2 J_ij -K_ij diagonal_Fock_matrix_mo_sum(i) = sum_{j=1, N_elec} 2 J_ij -K_ij
`eigenvalues_fock_matrix_ao <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/DIIS.irp.f#L73>`_
Eigenvalues and eigenvectors of the Fock matrix over the AO basis
`eigenvectors_fock_matrix_ao <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/DIIS.irp.f#L74>`_
Eigenvalues and eigenvectors of the Fock matrix over the AO basis
`eigenvectors_fock_matrix_mo <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/diagonalize_fock.irp.f#L2>`_ `eigenvectors_fock_matrix_mo <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/diagonalize_fock.irp.f#L2>`_
Diagonal Fock matrix in the MO basis Diagonal Fock matrix in the MO basis
`fock_matrix_alpha_ao <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L84>`_ `extrapolate_fock_matrix <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Roothaan_Hall_SCF.irp.f#L146>`_
Alpha Fock matrix in AO basis set Compute the extrapolated Fock matrix using the DIIS procedure
`fock_matrix_alpha_mo <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L269>`_ `fock_matrix_ao <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L317>`_
Fock matrix on the MO basis
`fock_matrix_ao <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L327>`_
Fock matrix in AO basis set Fock matrix in AO basis set
`fock_matrix_beta_ao <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L85>`_ `fock_matrix_ao_alpha <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L84>`_
Alpha Fock matrix in AO basis set Alpha Fock matrix in AO basis set
`fock_matrix_beta_mo <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L289>`_ `fock_matrix_ao_beta <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L85>`_
Fock matrix on the MO basis Alpha Fock matrix in AO basis set
`fock_matrix_diag_mo <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L2>`_ `fock_matrix_diag_mo <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L2>`_
@ -115,10 +119,26 @@ Documentation
.br .br
`fock_mo_to_ao <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L389>`_ `fock_matrix_mo_alpha <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L261>`_
Fock matrix on the MO basis
`fock_matrix_mo_beta <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L280>`_
Fock matrix on the MO basis
`fock_mo_to_ao <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L378>`_
Undocumented Undocumented
`fps_spf_matrix_ao <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/DIIS.irp.f#L15>`_
Commutator FPS - SPF
`fps_spf_matrix_mo <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/DIIS.irp.f#L63>`_
Commutator FPS - SPF in MO basis
`guess <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Huckel_guess.irp.f#L1>`_ `guess <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Huckel_guess.irp.f#L1>`_
Undocumented Undocumented
@ -135,7 +155,7 @@ Documentation
S^-1 Beta density matrix in the AO basis x S^-1 S^-1 Beta density matrix in the AO basis x S^-1
`hf_energy <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L308>`_ `hf_energy <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Fock_matrix.irp.f#L298>`_
Hartree-Fock energy Hartree-Fock energy
@ -143,23 +163,35 @@ Documentation
Build the MOs using the extended Huckel model Build the MOs using the extended Huckel model
`level_shift <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L25>`_ `level_shift <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L44>`_
Energy shift on the virtual MOs to improve SCF convergence Energy shift on the virtual MOs to improve SCF convergence
`mo_guess_type <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L6>`_ `localize_mos <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/localize_mos.irp.f#L1>`_
Undocumented
`max_dim_diis <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L6>`_
Maximum size of the DIIS extrapolation procedure
`mo_guess_type <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L82>`_
Initial MO guess. Can be [ Huckel | HCore ] Initial MO guess. Can be [ Huckel | HCore ]
`n_it_scf_max <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L63>`_ `n_it_scf_max <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L139>`_
Maximum number of SCF iterations Maximum number of SCF iterations
`no_oa_or_av_opt <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L82>`_ `no_oa_or_av_opt <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L120>`_
If true, skip the (inactive+core) --> (active) and the (active) --> (virtual) orbital rotations within the SCF procedure If true, skip the (inactive+core) --> (active) and the (active) --> (virtual) orbital rotations within the SCF procedure
`run <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/SCF.irp.f#L38>`_ `roothaan_hall_scf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/Roothaan_Hall_SCF.irp.f#L1>`_
Roothaan-Hall algorithm for SCF Hartree-Fock calculation
`run <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/SCF.irp.f#L37>`_
Run SCF calculation Run SCF calculation
@ -170,6 +202,26 @@ Documentation
optional: mo_basis.mo_coef optional: mo_basis.mo_coef
`thresh_scf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L44>`_ `scf_algorithm <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L101>`_
Threshold on the convergence of the Hartree Fock energy Type of SCF algorithm used. Possible choices are [ Simple | DIIS]
`thresh_scf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L158>`_
Threshold on the convergence of the Hartree Fock energy.
`threshold_diis <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L63>`_
Threshold on the convergence of the DIIS error vector during a Hartree-Fock calculation. If 0. is chosen, the square root of thresh_scf will be used.
`threshold_diis_nonzero <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/DIIS.irp.f#L1>`_
If threshold_DIIS is zero, choose sqrt(thresh_scf)
`threshold_overlap_ao_eigenvalues <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/ezfio_interface.irp.f#L25>`_
Threshold on the magnitude of the smallest eigenvalues of the overlap matrix in the AO basis
`x_matrix_ao <http://github.com/LCPQ/quantum_package/tree/master/plugins/Hartree_Fock/DIIS.irp.f#L140>`_
Matrix X = S^{-1/2} obtained by SVD

View File

@ -0,0 +1,171 @@
program test_wf
implicit none
read_wf = .True.
touch read_wf
call routine
end
subroutine routine
use bitmasks
implicit none
integer :: iref
print*, 'which reference slater determinant dou you want ?'
read(5,*)iref
integer :: i
double precision :: delta_e,h0i
double precision :: accu_e, hiiref,accu_coef,hij
double precision, allocatable :: contrib(:)
integer, allocatable :: iorder(:)
integer, allocatable :: idx(:)
allocate(idx(0:N_det))
print*, '***********************'
print*, '***********************'
print*, '***********************'
print*, 'You chose that SD :'
call debug_det(psi_det(1,1,iref),N_int)
call get_excitation_degree(ref_bitmask,psi_det(1,1,iref),degree,N_int)
call i_H_j(ref_bitmask,psi_det(1,1,iref),N_int,h0i)
call i_H_j(psi_ref(1,1,iref),psi_det(1,1,iref),N_int,hii)
call get_excitation(ref_bitmask,psi_det(1,1,iref),exc,degree,phase,N_int)
call decode_exc(exc,degree,h1,p1,h2,p2,s1,s2)
print*,'degree =',degree
print*,'phase =',phase
if(degree == 1)then
print*,'s1',s1
print*,'h1,p1 = ',h1,p1
else if (degree ==2)then
print*,'s1',s1
print*,'h1,p1 = ',h1,p1
print*,'s2',s2
print*,'h2,p2 = ',h2,p2
endif
if(degree.ne.0)then
delta_e = hii - ref_bitmask_energy
if(h0i.ne.0.d0)then
if (delta_e > 0.d0) then
coef_2_2 = 0.5d0 * (delta_e - dsqrt(delta_e * delta_e + 4.d0 * h0i * h0i ))/ h0i
else
coef_2_2 = 0.5d0 * (delta_e + dsqrt(delta_e * delta_e + 4.d0 * h0i * h0i )) /h0i
endif
endif
endif
print*,'h0i =',h0i
print*,'delta E =',delta_e
print*,'coef 2x2 =',coef_2_2!*psi_coef(1,1)
print*,'amplitude =',psi_coef(iref,1)/psi_coef(1,1)
print*, '***********************'
print*, '***********************'
print*, '***********************'
call filter_connected_i_H_psi0(psi_det,psi_det(1,1,iref),N_int,N_det,idx)
call i_H_j(psi_det(1,1,iref),psi_det(1,1,iref),N_int,hiiref)
print*, 'passed the connection browsing'
allocate(contrib(idx(0)-1),iorder(idx(0)-1))
accu_e = 0.d0
accu_coef = 0.d0
print*, iref
print*, idx(0)
do i = 1, idx(0)
contrib(i) = 0.d0
iorder(i) = idx(i)
if(idx(i)==iref)then
cycle
else
call get_excitation_degree(psi_det(1,1,iref),psi_det(1,1,idx(i)),degree,N_int)
if(degree.gt.2)cycle
call i_H_j(psi_det(1,1,iref),psi_det(1,1,idx(i)),N_int,hij)
accu_coef += psi_coef(idx(i),1) * hij / (var_energy_mr(1) - hiiref)
contrib(i) = -dabs(psi_coef(idx(i),1) * hij / (var_energy_mr(1) - hiiref))
accu_e += psi_coef(idx(i),1) * hij
endif
enddo
print*, 'passed the contributions '
integer :: degree
integer :: exc(0:2,2,2)
double precision :: phase
integer :: h1,h2,p1,p2,s1,s2
accu_e += psi_coef(iref,1) * hiiref
accu_e = accu_e / psi_coef(iref,1)
print*, psi_coef(iref,1),accu_coef
print*, var_energy_mr(1),accu_e
call dsort(contrib,iorder,idx(0)-1)
print*, 'passed sorting the contributions'
accu_coef = 0.d0
double precision :: accu_second_order,coef_2_2, hii
accu_second_order = 0.d0
print*, ''
do i = 1, idx(0)
if (iorder(i)==iref)cycle
call get_excitation_degree(psi_det(1,1,iref),psi_det(1,1,iorder(i)),degree,N_int)
if(degree.gt.2)cycle
print*, ''
print*, '==============================================='
print*, ' i ',i,iorder(i)
call debug_det(psi_det(1,1,iorder(i)),N_int)
call i_H_j(psi_det(1,1,iorder(i)),psi_det(1,1,iorder(i)),N_int,hii)
call i_H_j(psi_det(1,1,iref),psi_det(1,1,iorder(i)),N_int,hij)
call get_excitation(psi_det(1,1,iref),psi_det(1,1,iorder(i)),exc,degree,phase,N_int)
call decode_exc(exc,degree,h1,p1,h2,p2,s1,s2)
print*,'Info with respect to the chosen ref determinant'
print*,'degree =',degree
if(degree == 1)then
print*,'s1',s1
print*,'h1,p1 = ',h1,p1
else
print*,'s1',s1
print*,'h1,p1 = ',h1,p1
print*,'s2',s2
print*,'h2,p2 = ',h2,p2
endif
print*,'coef =',psi_coef(iorder(i),1)
print*,'phase =',phase
print*,'hij =',hij
print*,'contrib =',psi_coef(iorder(i),1) * hij / (var_energy_mr(1) - hiiref)
print*,'relative contrib =',psi_coef(iorder(i),1) * hij / (var_energy_mr(1) - hiiref)/psi_coef(iref,1)
accu_coef += psi_coef(iorder(i),1) * hij / (var_energy_mr(1) - hiiref)
print*,'Info with respect to the HF-like determinant '
call get_excitation_degree(ref_bitmask,psi_det(1,1,iorder(i)),degree,N_int)
call i_H_j(ref_bitmask,psi_det(1,1,iorder(i)),N_int,h0i)
call get_excitation(ref_bitmask,psi_det(1,1,iorder(i)),exc,degree,phase,N_int)
call decode_exc(exc,degree,h1,p1,h2,p2,s1,s2)
print*,'degree =',degree
if(degree == 1)then
print*,'s1',s1
print*,'h1,p1 = ',h1,p1
else if (degree ==2)then
print*,'s1',s1
print*,'h1,p1 = ',h1,p1
print*,'s2',s2
print*,'h2,p2 = ',h2,p2
endif
if(degree.ne.0)then
delta_e = hii - ref_bitmask_energy
if(h0i.ne.0.d0)then
if (delta_e > 0.d0) then
coef_2_2 = 0.5d0 * (delta_e - dsqrt(delta_e * delta_e + 4.d0 * h0i * h0i ))/ h0i
else
coef_2_2 = 0.5d0 * (delta_e + dsqrt(delta_e * delta_e + 4.d0 * h0i * h0i )) /h0i
endif
endif
print*,'h0i =',h0i
print*,'coef 2x2 =',coef_2_2*psi_coef(1,1)
print*,'delta E =',delta_e
print*,'sec order conrib =',coef_2_2 * hij/(var_energy_mr(1) - hiiref) * psi_coef(1,1)
accu_second_order += coef_2_2 * hij/(var_energy_mr(1) - hiiref) * psi_coef(1,1)
endif
enddo
print*, 'Total comparison ....'
print*, psi_coef(iref,1),accu_coef,accu_second_order
end

View File

@ -0,0 +1,126 @@
program printwf
implicit none
read_wf = .True.
touch read_wf
print*,'ref_bitmask_energy = ',ref_bitmask_energy
call routine
end
subroutine routine
implicit none
integer :: i
integer :: degree
double precision :: hij,hii,coef_1,h00
integer :: exc(0:2,2,2)
double precision :: phase
integer :: h1,p1,h2,p2,s1,s2
double precision :: get_mo_bielec_integral
double precision :: norm_mono_a,norm_mono_b
double precision :: norm_mono_a_2,norm_mono_b_2
double precision :: norm_mono_a_pert_2,norm_mono_b_pert_2
double precision :: norm_mono_a_pert,norm_mono_b_pert
double precision :: delta_e,coef_2_2
norm_mono_a = 0.d0
norm_mono_b = 0.d0
norm_mono_a_2 = 0.d0
norm_mono_b_2 = 0.d0
norm_mono_a_pert = 0.d0
norm_mono_b_pert = 0.d0
norm_mono_a_pert_2 = 0.d0
norm_mono_b_pert_2 = 0.d0
integer :: number_of_holes,nh
integer :: number_of_particles,np
double precision :: accu_e_corr(0:2,0:2)
accu_e_corr = 0.d0
do i = 1, min(10000,N_det)
print*,''
print*,'i = ',i
call debug_det(psi_det(1,1,i),N_int)
nh = number_of_holes(psi_det(1,1,i))
np = number_of_particles(psi_det(1,1,i))
call get_excitation_degree(psi_det(1,1,i),psi_det(1,1,1),degree,N_int)
print*,'degree = ',degree
if(degree == 0)then
print*,'Reference determinant '
call i_H_j(psi_det(1,1,i),psi_det(1,1,i),N_int,h00)
else
call i_H_j(psi_det(1,1,i),psi_det(1,1,i),N_int,hii)
call i_H_j(psi_det(1,1,1),psi_det(1,1,i),N_int,hij)
delta_e = hii - h00
coef_1 = hij/(h00-hii)
if(hij.ne.0.d0)then
if (delta_e > 0.d0) then
coef_2_2 = 0.5d0 * (delta_e - dsqrt(delta_e * delta_e + 4.d0 * hij * hij ))/ hij
else
coef_2_2 = 0.5d0 * (delta_e + dsqrt(delta_e * delta_e + 4.d0 * hij * hij )) /hij
endif
endif
call get_excitation(psi_det(1,1,1),psi_det(1,1,i),exc,degree,phase,N_int)
call decode_exc(exc,degree,h1,p1,h2,p2,s1,s2)
print*,'phase = ',phase
if(degree == 1)then
print*,'s1',s1
print*,'h1,p1 = ',h1,p1
if(s1 == 1)then
norm_mono_a += dabs(psi_coef(i,1)/psi_coef(1,1))
norm_mono_a_2 += dabs(psi_coef(i,1)/psi_coef(1,1))**2
norm_mono_a_pert += dabs(coef_1)
norm_mono_a_pert_2 += dabs(coef_1)**2
else
norm_mono_b += dabs(psi_coef(i,1)/psi_coef(1,1))
norm_mono_b_2 += dabs(psi_coef(i,1)/psi_coef(1,1))**2
norm_mono_b_pert += dabs(coef_1)
norm_mono_b_pert_2 += dabs(coef_1)**2
endif
! print*,'< h | Ka| p > = ',get_mo_bielec_integral(h1,list_act(1),list_act(1),p1,mo_integrals_map)
double precision :: hmono,hdouble
call i_H_j_verbose(psi_det(1,1,1),psi_det(1,1,i),N_int,hij,hmono,hdouble)
print*,'hmono = ',hmono
print*,'hdouble = ',hdouble
print*,'hmono+hdouble = ',hmono+hdouble
print*,'hij = ',hij
else
print*,'s1',s1
print*,'h1,p1 = ',h1,p1
print*,'s2',s2
print*,'h2,p2 = ',h2,p2
! print*,'< h | Ka| p > = ',get_mo_bielec_integral(h1,h2,p1,p2,mo_integrals_map)
endif
print*,'nh,np = ',nh,np
print*,'<Ref| H |D_I> = ',hij
print*,'Delta E = ',h00-hii
print*,'coef pert (1) = ',coef_1
print*,'coef 2x2 = ',coef_2_2
print*,'Delta E_corr = ',psi_coef(i,1)/psi_coef(1,1) * hij
if(nh<3.and.np<3)then
accu_e_corr(nh,np) += psi_coef(i,1)/psi_coef(1,1) * hij
endif
endif
print*,'amplitude = ',psi_coef(i,1)/psi_coef(1,1)
enddo
print*,''
print*,''
do nh = 0, 2
do np = 0,2
print*, 'e_corr = ',nh,np,accu_e_corr(nh,np)
enddo
enddo
print*,''
print*,'L1 norm of mono alpha = ',norm_mono_a
print*,'L1 norm of mono beta = ',norm_mono_b
print*, '---'
print*,'L2 norm of mono alpha = ',norm_mono_a_2
print*,'L2 norm of mono beta = ',norm_mono_b_2
print*, '-- perturbative mono'
print*,''
print*,'L1 norm of pert alpha = ',norm_mono_a_pert
print*,'L1 norm of pert beta = ',norm_mono_b_pert
print*,'L2 norm of pert alpha = ',norm_mono_a_pert_2
print*,'L2 norm of pert beta = ',norm_mono_b_pert_2
end

View File

@ -11,6 +11,18 @@ doc: The selection process stops when the largest PT2 (for all the state) is low
interface: ezfio,provider,ocaml interface: ezfio,provider,ocaml
default: 0.0001 default: 0.0001
[PT2_relative_error]
type: Normalized_float
doc: Stop stochastic PT2 when the relative error is smaller than PT2_relative_error
interface: ezfio,provider,ocaml
default: 0.001
[PT2_absolute_error]
type: Threshold
doc: Stop stochastic PT2 when the statistical error is smaller than PT2_absolute_error
interface: ezfio,provider,ocaml
default: 0.00001
[correlation_energy_ratio_max] [correlation_energy_ratio_max]
type: Normalized_float type: Normalized_float
doc: The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules) doc: The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules)
@ -30,3 +42,24 @@ doc: Thresholds on selectors (fraction of the norm) for final PT2 calculation
interface: ezfio,provider,ocaml interface: ezfio,provider,ocaml
default: 1. default: 1.
[correlation_energy_ratio_max]
type: Normalized_float
doc: The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules)
Defined as (E_CI-E_HF)/ (E_CI+PT2 - E_HF). (E_HF) is not required.
interface: ezfio,provider,ocaml
default: 1.00
[threshold_generators_pt2]
type: Threshold
doc: Thresholds on generators (fraction of the norm) for final PT2 calculation
interface: ezfio,provider,ocaml
default: 0.999
[threshold_selectors_pt2]
type: Threshold
doc: Thresholds on selectors (fraction of the norm) for final PT2 calculation
interface: ezfio,provider,ocaml
default: 1.

View File

@ -1,14 +1,29 @@
BEGIN_PROVIDER [integer, N_z_pts] BEGIN_PROVIDER [integer, spin_dens_coord]
implicit none
BEGIN_DOC
coordinate on which you are going to plot the spin density
and integrate over the ohters
spin_dens_coord = 1 === X
spin_dens_coord = 2 === Y
spin_dens_coord = 3 === Z
END_DOC
spin_dens_coord = 3
END_PROVIDER
BEGIN_PROVIDER [double precision, delta_z]
&BEGIN_PROVIDER [double precision, z_min] &BEGIN_PROVIDER [double precision, z_min]
&BEGIN_PROVIDER [double precision, z_max] &BEGIN_PROVIDER [double precision, z_max]
&BEGIN_PROVIDER [double precision, delta_z]
implicit none implicit none
z_min = 0.d0 z_min = 0.d0
z_max = 10.d0 z_max = 10.d0
delta_z = 0.005d0 delta_z = 0.05d0
END_PROVIDER
BEGIN_PROVIDER [integer, N_z_pts]
implicit none
N_z_pts = int( (z_max - z_min)/delta_z ) N_z_pts = int( (z_max - z_min)/delta_z )
print*,'N_z_pts = ',N_z_pts print*,'N_z_pts = ',N_z_pts
END_PROVIDER END_PROVIDER
@ -80,7 +95,7 @@ BEGIN_PROVIDER [ double precision, ao_integrated_delta_rho_all_points, (ao_num_a
!$OMP PRIVATE(i,j,n,l,A_center,power_A,B_center,power_B,accu_z, & !$OMP PRIVATE(i,j,n,l,A_center,power_A,B_center,power_B,accu_z, &
!$OMP overlap_x,overlap_y,overlap_z,overlap,c,alpha,beta) & !$OMP overlap_x,overlap_y,overlap_z,overlap,c,alpha,beta) &
!$OMP SHARED(ao_num,nucl_coord,ao_nucl,ao_power,ao_prim_num,ao_expo_ordered_transp,ao_coef_normalized_ordered_transp, & !$OMP SHARED(ao_num,nucl_coord,ao_nucl,ao_power,ao_prim_num,ao_expo_ordered_transp,ao_coef_normalized_ordered_transp, &
!$OMP ao_integrated_delta_rho_all_points,N_z_pts,dim1,i_z,z,delta_z) !$OMP ao_integrated_delta_rho_all_points,N_z_pts,dim1,i_z,z,delta_z,spin_dens_coord)
do j=1,ao_num do j=1,ao_num
A_center(1) = nucl_coord( ao_nucl(j), 1 ) A_center(1) = nucl_coord( ao_nucl(j), 1 )
A_center(2) = nucl_coord( ao_nucl(j), 2 ) A_center(2) = nucl_coord( ao_nucl(j), 2 )
@ -104,7 +119,13 @@ BEGIN_PROVIDER [ double precision, ao_integrated_delta_rho_all_points, (ao_num_a
call overlap_gaussian_xyz(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,overlap_y,overlap_z,overlap,dim1) call overlap_gaussian_xyz(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,overlap_y,overlap_z,overlap,dim1)
c = ao_coef_normalized_ordered_transp(n,j) * ao_coef_normalized_ordered_transp(l,i) c = ao_coef_normalized_ordered_transp(n,j) * ao_coef_normalized_ordered_transp(l,i)
accu_z += c* overlap_x * overlap_y * SABpartial(z,z+delta_z,A_center,B_center,power_A,power_B,alpha,beta) if(spin_dens_coord ==1 )then
accu_z += c* overlap_y * overlap_z * SABpartial(z,z+delta_z,A_center,B_center,power_A,power_B,alpha,beta,spin_dens_coord)
else if (spin_dens_coord ==2 )then
accu_z += c* overlap_x * overlap_z * SABpartial(z,z+delta_z,A_center,B_center,power_A,power_B,alpha,beta,spin_dens_coord)
else if (spin_dens_coord ==3 )then
accu_z += c* overlap_x * overlap_y * SABpartial(z,z+delta_z,A_center,B_center,power_A,power_B,alpha,beta,spin_dens_coord)
endif
enddo enddo
enddo enddo
ao_integrated_delta_rho_all_points(i,j,i_z) = accu_z ao_integrated_delta_rho_all_points(i,j,i_z) = accu_z
@ -144,11 +165,12 @@ BEGIN_PROVIDER [ double precision, ao_integrated_delta_rho_one_point, (ao_num_al
double precision :: z,SABpartial,accu_z double precision :: z,SABpartial,accu_z
dim1=100 dim1=100
z = z_one_point z = z_one_point
provide delta_z
!$OMP PARALLEL DO DEFAULT(none) & !$OMP PARALLEL DO DEFAULT(none) &
!$OMP PRIVATE(i,j,n,l,A_center,power_A,B_center,power_B,accu_z, & !$OMP PRIVATE(i,j,n,l,A_center,power_A,B_center,power_B,accu_z, &
!$OMP overlap_x,overlap_y,overlap_z,overlap,c,alpha,beta) & !$OMP overlap_x,overlap_y,overlap_z,overlap,c,alpha,beta) &
!$OMP SHARED(ao_num,nucl_coord,ao_nucl,ao_power,ao_prim_num,ao_expo_ordered_transp,ao_coef_normalized_ordered_transp, & !$OMP SHARED(ao_num,nucl_coord,ao_nucl,ao_power,ao_prim_num,ao_expo_ordered_transp,ao_coef_normalized_ordered_transp, &
!$OMP ao_integrated_delta_rho_one_point,dim1,z,delta_z) !$OMP ao_integrated_delta_rho_one_point,dim1,z,delta_z,spin_dens_coord)
do j=1,ao_num do j=1,ao_num
A_center(1) = nucl_coord( ao_nucl(j), 1 ) A_center(1) = nucl_coord( ao_nucl(j), 1 )
A_center(2) = nucl_coord( ao_nucl(j), 2 ) A_center(2) = nucl_coord( ao_nucl(j), 2 )
@ -172,7 +194,13 @@ BEGIN_PROVIDER [ double precision, ao_integrated_delta_rho_one_point, (ao_num_al
call overlap_gaussian_xyz(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,overlap_y,overlap_z,overlap,dim1) call overlap_gaussian_xyz(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,overlap_y,overlap_z,overlap,dim1)
c = ao_coef_normalized_ordered_transp(n,j) * ao_coef_normalized_ordered_transp(l,i) c = ao_coef_normalized_ordered_transp(n,j) * ao_coef_normalized_ordered_transp(l,i)
accu_z += c* overlap_x * overlap_y * SABpartial(z,z+delta_z,A_center,B_center,power_A,power_B,alpha,beta) if(spin_dens_coord ==1 )then
accu_z += c* overlap_y * overlap_z * SABpartial(z,z+delta_z,A_center,B_center,power_A,power_B,alpha,beta,spin_dens_coord)
else if (spin_dens_coord ==2 )then
accu_z += c* overlap_x * overlap_z * SABpartial(z,z+delta_z,A_center,B_center,power_A,power_B,alpha,beta,spin_dens_coord)
else if (spin_dens_coord ==3 )then
accu_z += c* overlap_x * overlap_y * SABpartial(z,z+delta_z,A_center,B_center,power_A,power_B,alpha,beta,spin_dens_coord)
endif
enddo enddo
enddo enddo
ao_integrated_delta_rho_one_point(i,j) = accu_z ao_integrated_delta_rho_one_point(i,j) = accu_z

View File

@ -14,7 +14,7 @@ subroutine routine
double precision, allocatable :: aos_array(:) double precision, allocatable :: aos_array(:)
allocate(aos_array(ao_num)) allocate(aos_array(ao_num))
r = 0.d0 r = 0.d0
r(1) = z_min r(spin_dens_coord) = z_min
do i = 1, N_z_pts do i = 1, N_z_pts
call give_all_aos_at_r(r,aos_array) call give_all_aos_at_r(r,aos_array)
accu = 0.d0 accu = 0.d0
@ -28,8 +28,8 @@ subroutine routine
accu_beta += one_body_dm_ao_beta(k,j) * tmp accu_beta += one_body_dm_ao_beta(k,j) * tmp
enddo enddo
enddo enddo
r(1) += delta_z r(spin_dens_coord) += delta_z
write(33,'(100(f16.10,X))')r(1),accu,accu_alpha,accu_beta write(33,'(100(f16.10,X))')r(spin_dens_coord),accu,accu_alpha,accu_beta
enddo enddo

View File

@ -18,7 +18,7 @@ C
zprt=.true. zprt=.true.
niter=1000000 niter=1000000
conv=1.d-8 conv=1.d-10
C niter=1000000 C niter=1000000
C conv=1.d-6 C conv=1.d-6

View File

@ -101,10 +101,12 @@ program loc_rasorb
cmoref = 0.d0 cmoref = 0.d0
irot = 0 irot = 0
irot(1,1) = 11 irot(1,1) = 48
irot(2,1) = 12 irot(2,1) = 49
cmoref(15,1,1) = 1.d0 ! cmoref(21,1,1) = -0.7d0 !
cmoref(14,2,1) = 1.d0 ! cmoref(27,1,1) = -0.4d0 !
cmoref(22,2,1) = 0.7d0 !
cmoref(28,2,1) = 0.4d0 !
! ESATRIENE with 3 bonding and anti bonding orbitals ! ESATRIENE with 3 bonding and anti bonding orbitals
! First bonding orbital for esa ! First bonding orbital for esa
@ -147,22 +149,22 @@ program loc_rasorb
! cmoref(64,6,1) = 1.d0 ! ! cmoref(64,6,1) = 1.d0 !
! cmoref(83,6,1) =-1.d0 ! ! cmoref(83,6,1) =-1.d0 !
! ESATRIENE with 1 central bonding and anti bonding orbitals !! ESATRIENE with 1 central bonding and anti bonding orbitals
! AND 4 radical orbitals !! AND 4 radical orbitals
! First radical orbital !! First radical orbital
cmoref(7,1,1) = 1.d0 ! !cmoref(7,1,1) = 1.d0 !
! Second radical orbital !! Second radical orbital
cmoref(26,2,1) = 1.d0 ! !cmoref(26,2,1) = 1.d0 !
! First bonding orbital !! First bonding orbital
cmoref(45,3,1) = 1.d0 ! !cmoref(45,3,1) = 1.d0 !
cmoref(64,3,1) = 1.d0 ! !cmoref(64,3,1) = 1.d0 !
! Third radical orbital for esa !! Third radical orbital for esa
cmoref(83,4,1) = 1.d0 ! !cmoref(83,4,1) = 1.d0 !
! Fourth radical orbital for esa !! Fourth radical orbital for esa
cmoref(102,5,1) = 1.d0 ! !cmoref(102,5,1) = 1.d0 !
! First anti bonding orbital !! First anti bonding orbital
cmoref(45,6,1) = 1.d0 ! !cmoref(45,6,1) = 1.d0 !
cmoref(64,6,1) =-1.d0 ! !cmoref(64,6,1) =-1.d0 !
do i = 1, nrot(1) do i = 1, nrot(1)

View File

@ -96,19 +96,19 @@ Documentation
Transposed ao_expo_ordered Transposed ao_expo_ordered
`ao_l <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L182>`_ `ao_l <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L146>`_
ao_l = l value of the AO: a+b+c in x^a y^b z^c ao_l = l value of the AO: a+b+c in x^a y^b z^c
`ao_l_char <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L184>`_ `ao_l_char <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L148>`_
ao_l = l value of the AO: a+b+c in x^a y^b z^c ao_l = l value of the AO: a+b+c in x^a y^b z^c
`ao_l_char_space <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L291>`_ `ao_l_char_space <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L282>`_
Undocumented Undocumented
`ao_l_max <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L183>`_ `ao_l_max <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L147>`_
ao_l = l value of the AO: a+b+c in x^a y^b z^c ao_l = l value of the AO: a+b+c in x^a y^b z^c
@ -157,7 +157,7 @@ Documentation
Powers of x, y and z for each AO Powers of x, y and z for each AO
`ao_power_index <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L169>`_ `ao_power_index <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L171>`_
Unique index given to a triplet of powers: Unique index given to a triplet of powers:
.br .br
1/2 (l-n_x)*(l-n_x+1) + n_z + 1 1/2 (l-n_x)*(l-n_x+1) + n_z + 1
@ -171,7 +171,7 @@ Documentation
Undocumented Undocumented
`ao_prim_num_max_align <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L159>`_ `ao_prim_num_max_align <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L161>`_
Number of primitives per atomic orbital aligned Number of primitives per atomic orbital aligned
@ -223,11 +223,11 @@ Documentation
gives the values of aos at a given point r gives the values of aos at a given point r
`l_to_charater <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L197>`_ `l_to_charater <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L185>`_
character corresponding to the "L" value of an AO orbital character corresponding to the "L" value of an AO orbital
`n_aos_max <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L211>`_ `n_aos_max <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L202>`_
Number of AOs per atom Number of AOs per atom
@ -239,21 +239,21 @@ Documentation
Undocumented Undocumented
`nucl_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L224>`_ `nucl_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L215>`_
List of AOs attached on each atom List of AOs attached on each atom
`nucl_list_shell_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L242>`_ `nucl_list_shell_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L233>`_
Index of the shell type Aos and of the corresponding Aos Index of the shell type Aos and of the corresponding Aos
Per convention, for P,D,F and G AOs, we take the index Per convention, for P,D,F and G AOs, we take the index
of the AO with the the corresponding power in the "X" axis of the AO with the the corresponding power in the "X" axis
`nucl_n_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L210>`_ `nucl_n_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L201>`_
Number of AOs per atom Number of AOs per atom
`nucl_num_shell_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L243>`_ `nucl_num_shell_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AO_Basis/aos.irp.f#L234>`_
Index of the shell type Aos and of the corresponding Aos Index of the shell type Aos and of the corresponding Aos
Per convention, for P,D,F and G AOs, we take the index Per convention, for P,D,F and G AOs, we take the index
of the AO with the the corresponding power in the "X" axis of the AO with the the corresponding power in the "X" axis

View File

@ -72,16 +72,24 @@ Documentation
Transform a bit string to a string for printing Transform a bit string to a string for printing
`cas_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L277>`_ `cas_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L307>`_
Bitmasks for CAS reference determinants. (N_int, alpha/beta, CAS reference) Bitmasks for CAS reference determinants. (N_int, alpha/beta, CAS reference)
`closed_shell_ref_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L518>`_ `closed_shell_ref_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L631>`_
Undocumented Undocumented
`core_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L452>`_ `core_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L558>`_
Core orbitals bitmask Core + deleted orbitals bitmask
`core_inact_act_bitmask_4 <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L46>`_
Undocumented
`core_inact_virt_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L526>`_
Reunion of the inactive and virtual bitmasks
`debug_det <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L120>`_ `debug_det <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L120>`_
@ -94,15 +102,15 @@ Documentation
hexadecimal representation. hexadecimal representation.
`full_ijkl_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L12>`_ `full_ijkl_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L18>`_
Bitmask to include all possible MOs Bitmask to include all possible MOs
`full_ijkl_bitmask_4 <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L29>`_ `full_ijkl_bitmask_4 <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L35>`_
Undocumented Undocumented
`generators_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L190>`_ `generators_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L220>`_
Bitmasks for generator determinants. Bitmasks for generator determinants.
(N_int, alpha/beta, hole/particle, generator). (N_int, alpha/beta, hole/particle, generator).
.br .br
@ -122,7 +130,7 @@ Documentation
.br .br
`generators_bitmask_restart <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L131>`_ `generators_bitmask_restart <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L161>`_
Bitmasks for generator determinants. Bitmasks for generator determinants.
(N_int, alpha/beta, hole/particle, generator). (N_int, alpha/beta, hole/particle, generator).
.br .br
@ -142,15 +150,15 @@ Documentation
.br .br
`hf_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L41>`_ `hf_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L71>`_
Hartree Fock bit mask Hartree Fock bit mask
`i_bitmask_gen <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L469>`_ `i_bitmask_gen <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L575>`_
Current bitmask for the generators Current bitmask for the generators
`inact_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L321>`_ `inact_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L348>`_
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods in post CAS methods
n_inact_orb : Number of inactive orbitals n_inact_orb : Number of inactive orbitals
@ -159,7 +167,7 @@ Documentation
n_virt_orb : Number of virtual orbitals n_virt_orb : Number of virtual orbitals
`inact_virt_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L425>`_ `inact_virt_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L525>`_
Reunion of the inactive and virtual bitmasks Reunion of the inactive and virtual bitmasks
@ -175,27 +183,43 @@ Documentation
Initialization of the generators_bitmask to the restart bitmask Initialization of the generators_bitmask to the restart bitmask
`is_a_1h <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L476>`_ `is_a_1h <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L499>`_
Undocumented Undocumented
`is_a_1h1p <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L454>`_ `is_a_1h1p <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L466>`_
Undocumented Undocumented
`is_a_1h2p <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L465>`_ `is_a_1h2p <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L477>`_
Undocumented Undocumented
`is_a_1p <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L487>`_ `is_a_1p <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L510>`_
Undocumented Undocumented
`is_a_2p <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L498>`_ `is_a_2h <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L532>`_
Undocumented Undocumented
`is_a_two_holes_two_particles <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L206>`_ `is_a_2h1p <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L488>`_
Undocumented
`is_a_2p <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L521>`_
Undocumented
`is_a_two_holes_two_particles <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L212>`_
logical function that returns True if the determinant 'key_in'
belongs to the 2h-2p excitation class of the DDCI space
this is calculated using the CAS_bitmask that defines the active
orbital space, the inact_bitmasl that defines the inactive oribital space
and the virt_bitmask that defines the virtual orbital space
`is_i_in_virtual <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L543>`_
Undocumented Undocumented
@ -207,19 +231,70 @@ Documentation
Undocumented Undocumented
`list_act <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L502>`_ `list_act <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L609>`_
list of active orbitals list_act(i) = index of the ith active orbital
.br
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
`list_core <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L437>`_ `list_act_reverse <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L610>`_
list_act(i) = index of the ith active orbital
.br
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
`list_core <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L540>`_
List of the core orbitals that are never excited in post CAS method List of the core orbitals that are never excited in post CAS method
`list_inact <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L370>`_ `list_core_inact <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L440>`_
Undocumented
`list_core_inact_act <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L495>`_
Undocumented
`list_core_inact_act_reverse <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L496>`_
Undocumented
`list_core_inact_reverse <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L441>`_
Undocumented
`list_core_reverse <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L541>`_
List of the core orbitals that are never excited in post CAS method
`list_inact <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L399>`_
list_inact : List of the inactive orbitals which are supposed to be doubly excited list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
`list_inact_reverse <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L401>`_
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
`list_to_bitstring <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L29>`_ `list_to_bitstring <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L29>`_
@ -227,11 +302,30 @@ Documentation
occupations "list(N_int*bit_kind_size,2) occupations "list(N_int*bit_kind_size,2)
`list_virt <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L371>`_ `list_virt <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L400>`_
list_inact : List of the inactive orbitals which are supposed to be doubly excited list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
`list_virt_reverse <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L402>`_
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
`modify_bitmasks_for_hole <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/modify_bitmasks.irp.f#L25>`_ `modify_bitmasks_for_hole <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/modify_bitmasks.irp.f#L25>`_
@ -249,27 +343,39 @@ Documentation
the electrons to the orbital i_part the electrons to the orbital i_part
`n_act_orb <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L490>`_ `n_act_orb <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L596>`_
number of active orbitals number of active orbitals
`n_cas_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L247>`_ `n_cas_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L277>`_
Number of bitmasks for CAS Number of bitmasks for CAS
`n_core_orb <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L453>`_ `n_core_inact_act_orb <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L481>`_
Core orbitals bitmask Reunion of the core, inactive and active bitmasks
`n_generators_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L67>`_ `n_core_inact_orb <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L458>`_
Undocumented
`n_core_orb <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L559>`_
Core + deleted orbitals bitmask
`n_core_orb_allocate <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L654>`_
Undocumented
`n_generators_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L97>`_
Number of bitmasks for generators Number of bitmasks for generators
`n_generators_bitmask_restart <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L98>`_ `n_generators_bitmask_restart <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L128>`_
Number of bitmasks for generators Number of bitmasks for generators
`n_inact_orb <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L323>`_ `n_inact_orb <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L350>`_
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods in post CAS methods
n_inact_orb : Number of inactive orbitals n_inact_orb : Number of inactive orbitals
@ -278,11 +384,15 @@ Documentation
n_virt_orb : Number of virtual orbitals n_virt_orb : Number of virtual orbitals
`n_inact_orb_allocate <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L659>`_
Undocumented
`n_int <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L3>`_ `n_int <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L3>`_
Number of 64-bit integers needed to represent determinants as binary strings Number of 64-bit integers needed to represent determinants as binary strings
`n_virt_orb <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L324>`_ `n_virt_orb <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L351>`_
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods in post CAS methods
n_inact_orb : Number of inactive orbitals n_inact_orb : Number of inactive orbitals
@ -291,20 +401,24 @@ Documentation
n_virt_orb : Number of virtual orbitals n_virt_orb : Number of virtual orbitals
`number_of_holes <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L1>`_ `n_virt_orb_allocate <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L664>`_
Undocumented Undocumented
`number_of_holes_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L400>`_ `number_of_holes <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L2>`_
Undocumented Function that returns the number of holes in the inact space
`number_of_particles <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L103>`_ `number_of_holes_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L408>`_
Undocumented function that returns the number of holes in the inact space
`number_of_particles_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L428>`_ `number_of_particles <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L107>`_
Undocumented function that returns the number of particles in the virtual space
`number_of_particles_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L438>`_
function that returns the number of particles in the inact space
`print_det <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L138>`_ `print_det <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L138>`_
@ -331,20 +445,24 @@ Documentation
Subroutine to print the content of a determinant using the '+-' notation Subroutine to print the content of a determinant using the '+-' notation
`ref_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L59>`_ `ref_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L89>`_
Reference bit mask, used in Slater rules, chosen as Hartree-Fock bitmask Reference bit mask, used in Slater rules, chosen as Hartree-Fock bitmask
`reunion_of_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L412>`_ `reunion_of_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L512>`_
Reunion of the inactive, active and virtual bitmasks Reunion of the inactive, active and virtual bitmasks
`reunion_of_cas_inact_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L528>`_ `reunion_of_cas_inact_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L641>`_
Reunion of the inactive, active and virtual bitmasks Reunion of the inactive, active and virtual bitmasks
`reunion_of_core_inact_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L397>`_ `reunion_of_core_inact_act_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L480>`_
Reunion of the inactive, active and virtual bitmasks Reunion of the core, inactive and active bitmasks
`reunion_of_core_inact_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L467>`_
Reunion of the core and inactive and virtual bitmasks
`set_bitmask_hole_as_input <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/modify_bitmasks.irp.f#L144>`_ `set_bitmask_hole_as_input <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/modify_bitmasks.irp.f#L144>`_
@ -357,11 +475,11 @@ Documentation
as the input_bimask as the input_bimask
`unpaired_alpha_electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L478>`_ `unpaired_alpha_electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L584>`_
Bitmask reprenting the unpaired alpha electrons in the HF_bitmask Bitmask reprenting the unpaired alpha electrons in the HF_bitmask
`virt_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L322>`_ `virt_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L349>`_
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods in post CAS methods
n_inact_orb : Number of inactive orbitals n_inact_orb : Number of inactive orbitals
@ -369,3 +487,7 @@ Documentation
in post CAS methods in post CAS methods
n_virt_orb : Number of virtual orbitals n_virt_orb : Number of virtual orbitals
`virt_bitmask_4 <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L57>`_
Undocumented

View File

@ -13,11 +13,22 @@ integer function number_of_holes(key_in)
+ popcnt( xor( iand(reunion_of_core_inact_bitmask(1,1), xor(key_in(1,1),iand(key_in(1,1),cas_bitmask(1,1,1)))), reunion_of_core_inact_bitmask(1,1)) )& + popcnt( xor( iand(reunion_of_core_inact_bitmask(1,1), xor(key_in(1,1),iand(key_in(1,1),cas_bitmask(1,1,1)))), reunion_of_core_inact_bitmask(1,1)) )&
+ popcnt( xor( iand(reunion_of_core_inact_bitmask(1,2), xor(key_in(1,2),iand(key_in(1,2),cas_bitmask(1,2,1)))), reunion_of_core_inact_bitmask(1,2)) ) + popcnt( xor( iand(reunion_of_core_inact_bitmask(1,2), xor(key_in(1,2),iand(key_in(1,2),cas_bitmask(1,2,1)))), reunion_of_core_inact_bitmask(1,2)) )
else if(N_int == 2)then else if(N_int == 2)then
integer(bit_kind) :: det_tmp(N_int,2)
! det_tmp(:,:) = 0_bit_kind
! det_tmp(1,1) = iand(reunion_of_core_inact_bitmask(1,1), xor(key_in(1,1),iand(key_in(1,1),cas_bitmask(1,1,1))))!, reunion_of_core_inact_bitmask(1,1)
! det_tmp(1,2) = reunion_of_core_inact_bitmask(1,1)
!iand(reunion_of_core_inact_bitmask(1,2), xor(key_in(1,2),iand(key_in(1,2),cas_bitmask(1,2,1))))!, reunion_of_core_inact_bitmask(1,1)
! call debug_det(key_in,N_int)
! call debug_det(inact_bitmask, N_int)
! call debug_det(core_bitmask, N_int)
! call debug_det(det_tmp, N_int)
number_of_holes = number_of_holes & number_of_holes = number_of_holes &
+ popcnt( xor( iand(reunion_of_core_inact_bitmask(1,1), xor(key_in(1,1),iand(key_in(1,1),cas_bitmask(1,1,1)))), reunion_of_core_inact_bitmask(1,1)) )& + popcnt( xor( iand(reunion_of_core_inact_bitmask(1,1), xor(key_in(1,1),iand(key_in(1,1),cas_bitmask(1,1,1)))), reunion_of_core_inact_bitmask(1,1)) )&
+ popcnt( xor( iand(reunion_of_core_inact_bitmask(1,2), xor(key_in(1,2),iand(key_in(1,2),cas_bitmask(1,2,1)))), reunion_of_core_inact_bitmask(1,2)) )& + popcnt( xor( iand(reunion_of_core_inact_bitmask(1,2), xor(key_in(1,2),iand(key_in(1,2),cas_bitmask(1,2,1)))), reunion_of_core_inact_bitmask(1,2)) )&
+ popcnt( xor( iand(reunion_of_core_inact_bitmask(2,1), xor(key_in(2,1),iand(key_in(2,1),cas_bitmask(2,1,1)))), reunion_of_core_inact_bitmask(2,1)) )& + popcnt( xor( iand(reunion_of_core_inact_bitmask(2,1), xor(key_in(2,1),iand(key_in(2,1),cas_bitmask(2,1,1)))), reunion_of_core_inact_bitmask(2,1)) )&
+ popcnt( xor( iand(reunion_of_core_inact_bitmask(2,2), xor(key_in(2,2),iand(key_in(2,2),cas_bitmask(2,2,1)))), reunion_of_core_inact_bitmask(2,2)) ) + popcnt( xor( iand(reunion_of_core_inact_bitmask(2,2), xor(key_in(2,2),iand(key_in(2,2),cas_bitmask(2,2,1)))), reunion_of_core_inact_bitmask(2,2)) )
! print*, number_of_holes
! pause
else if(N_int == 3)then else if(N_int == 3)then
number_of_holes = number_of_holes & number_of_holes = number_of_holes &
+ popcnt( xor( iand(reunion_of_core_inact_bitmask(1,1), xor(key_in(1,1),iand(key_in(1,1),cas_bitmask(1,1,1)))), reunion_of_core_inact_bitmask(1,1)) )& + popcnt( xor( iand(reunion_of_core_inact_bitmask(1,1), xor(key_in(1,1),iand(key_in(1,1),cas_bitmask(1,1,1)))), reunion_of_core_inact_bitmask(1,1)) )&
@ -512,6 +523,7 @@ logical function is_a_1p(key_in)
integer(bit_kind), intent(in) :: key_in(N_int,2) integer(bit_kind), intent(in) :: key_in(N_int,2)
integer :: number_of_particles, number_of_holes integer :: number_of_particles, number_of_holes
is_a_1p = .False. is_a_1p = .False.
print*,number_of_holes(key_in), number_of_particles(key_in)
if(number_of_holes(key_in).eq.0 .and. number_of_particles(key_in).eq.1)then if(number_of_holes(key_in).eq.0 .and. number_of_particles(key_in).eq.1)then
is_a_1p = .True. is_a_1p = .True.
endif endif

View File

@ -18,65 +18,27 @@ Documentation
Eigenvectors/values of the CI matrix Eigenvectors/values of the CI matrix
`ci_eigenvectors_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI_mono.irp.f#L2>`_
Eigenvectors/values of the CI matrix
`ci_eigenvectors_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI.irp.f#L24>`_ `ci_eigenvectors_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI.irp.f#L24>`_
Eigenvectors/values of the CI matrix Eigenvectors/values of the CI matrix
`ci_eigenvectors_s2_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI_mono.irp.f#L3>`_
Eigenvectors/values of the CI matrix
`ci_electronic_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI.irp.f#L22>`_ `ci_electronic_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI.irp.f#L22>`_
Eigenvectors/values of the CI matrix Eigenvectors/values of the CI matrix
`ci_electronic_energy_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI_mono.irp.f#L1>`_
Eigenvectors/values of the CI matrix
`ci_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI.irp.f#L2>`_ `ci_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI.irp.f#L2>`_
N_states lowest eigenvalues of the CI matrix N_states lowest eigenvalues of the CI matrix
`dav_det <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L540>`_ `davidson_collector <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L235>`_
Temporary arrays for parallel davidson
.br
Touched in davidson_miniserver_get
`dav_size <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L554>`_
Size of the arrays for Davidson
.br
Touched in davidson_miniserver_get
`dav_ut <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L541>`_
Temporary arrays for parallel davidson
.br
Touched in davidson_miniserver_get
`davidson_add_task <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L175>`_
Undocumented Undocumented
`davidson_collect <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L118>`_ `davidson_converged <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/parameters.irp.f#L9>`_
Undocumented
`davidson_collector <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L365>`_
Undocumented
`davidson_converged <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/parameters.irp.f#L27>`_
True if the Davidson algorithm is converged True if the Davidson algorithm is converged
`davidson_criterion <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/parameters.irp.f#L19>`_ `davidson_criterion <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/parameters.irp.f#L1>`_
Can be : [ energy | residual | both | wall_time | cpu_time | iterations ] Can be : [ energy | residual | both | wall_time | cpu_time | iterations ]
@ -122,12 +84,12 @@ Documentation
Initial guess vectors are not necessarily orthonormal Initial guess vectors are not necessarily orthonormal
`davidson_diag_hjj_sjj <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalization_hs2.irp.f#L56>`_ `davidson_diag_hjj_sjj <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalization_hs2.irp.f#L52>`_
Davidson diagonalization with specific diagonal elements of the H matrix Davidson diagonalization with specific diagonal elements of the H matrix
.br .br
H_jj : specific diagonal H matrix elements to diagonalize de Davidson H_jj : specific diagonal H matrix elements to diagonalize de Davidson
.br .br
S2_jj : specific diagonal S^2 matrix elements S2_out : Output : s^2
.br .br
dets_in : bitmasks corresponding to determinants dets_in : bitmasks corresponding to determinants
.br .br
@ -166,43 +128,15 @@ Documentation
Initial guess vectors are not necessarily orthonormal Initial guess vectors are not necessarily orthonormal
`davidson_init <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L143>`_ `davidson_pull_results <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L192>`_
Undocumented Undocumented
`davidson_iter_max <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/parameters.irp.f#L1>`_ `davidson_push_results <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L149>`_
Max number of Davidson iterations
`davidson_miniserver_end <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L495>`_
Undocumented Undocumented
`davidson_miniserver_get <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L514>`_ `davidson_run_slave <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L22>`_
Undocumented
`davidson_miniserver_run <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L465>`_
Undocumented
`davidson_process <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L7>`_
Undocumented
`davidson_pull_results <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L327>`_
Undocumented
`davidson_push_results <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L289>`_
Undocumented
`davidson_run <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L420>`_
Undocumented
`davidson_run_slave <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L207>`_
Undocumented Undocumented
@ -210,41 +144,52 @@ Documentation
Undocumented Undocumented
`davidson_slave_inproc <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L190>`_ `davidson_slave_inproc <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L5>`_
Undocumented Undocumented
`davidson_slave_tcp <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L198>`_ `davidson_slave_tcp <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L13>`_
Undocumented Undocumented
`davidson_slave_work <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L242>`_ `davidson_slave_work <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L55>`_
Undocumented Undocumented
`davidson_sze_max <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/parameters.irp.f#L9>`_ `davidson_sze_max <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/ezfio_interface.irp.f#L6>`_
Max number of Davidson sizes Number of micro-iterations before re-contracting
`det_inf <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalization.irp.f#L52>`_ `det_inf <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalization.irp.f#L52>`_
Ordering function for determinants Ordering function for determinants
`diag_and_save <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_restart_and_save_one_state.irp.f#L1>`_
Undocumented
`diagonalize_ci <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI.irp.f#L154>`_ `diagonalize_ci <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI.irp.f#L154>`_
Replace the coefficients of the CI states by the coefficients of the Replace the coefficients of the CI states by the coefficients of the
eigenstates of the CI matrix eigenstates of the CI matrix
`diagonalize_ci_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalize_CI_mono.irp.f#L73>`_ `disk_based_davidson <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/ezfio_interface.irp.f#L101>`_
Replace the coefficients of the CI states by the coefficients of the If true, disk space is used to store the vectors
eigenstates of the CI matrix
`distributed_davidson <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/ezfio_interface.irp.f#L44>`_
If true, use the distributed algorithm
`find_reference <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/find_reference.irp.f#L1>`_
Undocumented
`first_guess <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/guess_lowest_state.irp.f#L1>`_ `first_guess <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/guess_lowest_state.irp.f#L1>`_
Select all the determinants with the lowest energy as a starting point. Select all the determinants with the lowest energy as a starting point.
`h_s2_u_0_nstates <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f#L180>`_ `h_s2_u_0_nstates <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0_old.irp.f#L231>`_
Computes v_0 = H|u_0> and s_0 = S^2 |u_0> Computes v_0 = H|u_0> and s_0 = S^2 |u_0>
.br .br
n : number of determinants n : number of determinants
@ -254,31 +199,94 @@ Documentation
S2_jj : array of <j|S^2|j> S2_jj : array of <j|S^2|j>
`h_u_0_nstates <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f#L31>`_ `h_s2_u_0_nstates_openmp <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f#L11>`_
Computes v_0 = H|u_0> and s_0 = S^2 |u_0>
.br
Assumes that the determinants are in psi_det
.br
istart, iend, ishift, istep are used in ZMQ parallelization.
`h_s2_u_0_nstates_openmp_work <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f#L65>`_
Computes v_t = H|u_t> and s_t = S^2 |u_t>
.br
Default should be 1,N_det,0,1
`h_s2_u_0_nstates_openmp_work_1 <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f_template_454#L3>`_
Computes v_t = H|u_t> and s_t = S^2 |u_t>
.br
Default should be 1,N_det,0,1
`h_s2_u_0_nstates_openmp_work_2 <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f_template_454#L357>`_
Computes v_t = H|u_t> and s_t = S^2 |u_t>
.br
Default should be 1,N_det,0,1
`h_s2_u_0_nstates_openmp_work_3 <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f_template_454#L711>`_
Computes v_t = H|u_t> and s_t = S^2 |u_t>
.br
Default should be 1,N_det,0,1
`h_s2_u_0_nstates_openmp_work_4 <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f_template_454#L1065>`_
Computes v_t = H|u_t> and s_t = S^2 |u_t>
.br
Default should be 1,N_det,0,1
`h_s2_u_0_nstates_openmp_work_n_int <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f_template_454#L1419>`_
Computes v_t = H|u_t> and s_t = S^2 |u_t>
.br
Default should be 1,N_det,0,1
`h_s2_u_0_nstates_test <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0_old.irp.f#L460>`_
Undocumented
`h_s2_u_0_nstates_zmq <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L275>`_
Computes v_0 = H|u_0> and s_0 = S^2 |u_0>
.br
n : number of determinants
.br
H_jj : array of <j|H|j>
.br
S2_jj : array of <j|S^2|j>
`h_u_0_nstates <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0_old.irp.f#L2>`_
Computes v_0 = H|u_0> Computes v_0 = H|u_0>
.br .br
n : number of determinants n : number of determinants
.br .br
H_jj : array of <j|H|j> H_jj : array of <j|H|j>
.br
`max_blocksize <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L569>`_ `n_states_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/ezfio_interface.irp.f#L82>`_
Number of states to consider during the Davdison diagonalization
`nthreads_davidson <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L418>`_
Number of threads for Davdison
`print_h_matrix_restart <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/print_H_matrix_restart.irp.f#L1>`_
Undocumented Undocumented
`n_states_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/ezfio_interface.irp.f#L25>`_ `provide_everything <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_slave.irp.f#L29>`_
n_states_diag
`provide_everything <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_slave.irp.f#L36>`_
Undocumented Undocumented
`psi_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f#L171>`_ `psi_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f#L1>`_
Energy of the current wave function Energy of the current wave function
`shortcut_ <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L565>`_ `routine <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/print_H_matrix_restart.irp.f#L9>`_
Undocumented Undocumented
@ -294,29 +302,21 @@ Documentation
Uncodumented : TODO Uncodumented : TODO
`sort_idx_ <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L568>`_ `state_following <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/ezfio_interface.irp.f#L25>`_
Undocumented If true, the states are re-ordered to match the input states
`sorted_ <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L567>`_
Undocumented
`tamiser <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalization.irp.f#L77>`_ `tamiser <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalization.irp.f#L77>`_
Uncodumented : TODO Uncodumented : TODO
`threshold_davidson <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/ezfio_interface.irp.f#L6>`_ `threshold_davidson <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/ezfio_interface.irp.f#L63>`_
Thresholds of Davidson's algorithm Thresholds of Davidson's algorithm
`u_0_h_u_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/u0Hu0.irp.f#L1>`_ `u_0_h_u_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/diagonalization_hs2.irp.f#L447>`_
Computes e_0 = <u_0|H|u_0>/<u_0|u_0> Computes e_0 = <u_0|H|u_0>/<u_0|u_0>
.br .br
n : number of determinants n : number of determinants
.br .br
`version_ <http://github.com/LCPQ/quantum_package/tree/master/src/Davidson/davidson_parallel.irp.f#L566>`_
Undocumented

File diff suppressed because it is too large Load Diff

View File

@ -244,6 +244,7 @@ end
END_PROVIDER END_PROVIDER
subroutine make_s2_eigenfunction subroutine make_s2_eigenfunction
return
implicit none implicit none
integer :: i,j,k integer :: i,j,k
integer :: smax, s integer :: smax, s

View File

@ -11,14 +11,23 @@ subroutine routine
implicit none implicit none
integer :: i integer :: i
integer :: degree integer :: degree
double precision :: hij double precision :: hij,hii,coef_1,h00
integer :: exc(0:2,2,2) integer :: exc(0:2,2,2)
double precision :: phase double precision :: phase
integer :: h1,p1,h2,p2,s1,s2 integer :: h1,p1,h2,p2,s1,s2
double precision :: get_mo_bielec_integral double precision :: get_mo_bielec_integral
double precision :: norm_mono_a,norm_mono_b double precision :: norm_mono_a,norm_mono_b
double precision :: norm_mono_a_2,norm_mono_b_2
double precision :: norm_mono_a_pert_2,norm_mono_b_pert_2
double precision :: norm_mono_a_pert,norm_mono_b_pert
norm_mono_a = 0.d0 norm_mono_a = 0.d0
norm_mono_b = 0.d0 norm_mono_b = 0.d0
norm_mono_a_2 = 0.d0
norm_mono_b_2 = 0.d0
norm_mono_a_pert = 0.d0
norm_mono_b_pert = 0.d0
norm_mono_a_pert_2 = 0.d0
norm_mono_b_pert_2 = 0.d0
do i = 1, min(500,N_det) do i = 1, min(500,N_det)
print*,'' print*,''
print*,'i = ',i print*,'i = ',i
@ -27,37 +36,48 @@ subroutine routine
print*,'degree = ',degree print*,'degree = ',degree
if(degree == 0)then if(degree == 0)then
print*,'Reference determinant ' print*,'Reference determinant '
call i_H_j(psi_det(1,1,i),psi_det(1,1,i),N_int,h00)
else else
call i_H_j(psi_det(1,1,i),psi_det(1,1,i),N_int,hij) call i_H_j(psi_det(1,1,i),psi_det(1,1,i),N_int,hii)
call i_H_j(psi_det(1,1,1),psi_det(1,1,i),N_int,hij)
coef_1 = hij/(h00-hii)
call get_excitation(psi_det(1,1,1),psi_det(1,1,i),exc,degree,phase,N_int) call get_excitation(psi_det(1,1,1),psi_det(1,1,i),exc,degree,phase,N_int)
call decode_exc(exc,degree,h1,p1,h2,p2,s1,s2) call decode_exc(exc,degree,h1,p1,h2,p2,s1,s2)
print*,'phase = ',phase print*,'phase = ',phase
! if(degree == 1)then if(degree == 1)then
! print*,'s1',s1 print*,'s1',s1
! print*,'h1,p1 = ',h1,p1 print*,'h1,p1 = ',h1,p1
! if(s1 == 1)then if(s1 == 1)then
! norm_mono_a += dabs(psi_coef(i,1)/psi_coef(1,1)) norm_mono_a += dabs(psi_coef(i,1)/psi_coef(1,1))
! else norm_mono_a_2 += dabs(psi_coef(i,1)/psi_coef(1,1))**2
! norm_mono_b += dabs(psi_coef(i,1)/psi_coef(1,1)) norm_mono_a_pert += dabs(coef_1)
! endif norm_mono_a_pert_2 += dabs(coef_1)**2
else
norm_mono_b += dabs(psi_coef(i,1)/psi_coef(1,1))
norm_mono_b_2 += dabs(psi_coef(i,1)/psi_coef(1,1))**2
norm_mono_b_pert += dabs(coef_1)
norm_mono_b_pert_2 += dabs(coef_1)**2
endif
! print*,'< h | Ka| p > = ',get_mo_bielec_integral(h1,list_act(1),list_act(1),p1,mo_integrals_map) ! print*,'< h | Ka| p > = ',get_mo_bielec_integral(h1,list_act(1),list_act(1),p1,mo_integrals_map)
! double precision :: hmono,hdouble double precision :: hmono,hdouble
! call i_H_j_verbose(psi_det(1,1,1),psi_det(1,1,i),N_int,hij,hmono,hdouble) call i_H_j_verbose(psi_det(1,1,1),psi_det(1,1,i),N_int,hij,hmono,hdouble)
! print*,'hmono = ',hmono print*,'hmono = ',hmono
! print*,'hdouble = ',hdouble print*,'hdouble = ',hdouble
! print*,'hmono+hdouble = ',hmono+hdouble print*,'hmono+hdouble = ',hmono+hdouble
! print*,'hij = ',hij print*,'hij = ',hij
! else else
! print*,'s1',s1 print*,'s1',s1
! print*,'h1,p1 = ',h1,p1 print*,'h1,p1 = ',h1,p1
! print*,'s2',s2 print*,'s2',s2
! print*,'h2,p2 = ',h2,p2 print*,'h2,p2 = ',h2,p2
! print*,'< h | Ka| p > = ',get_mo_bielec_integral(h1,h2,p1,p2,mo_integrals_map) ! print*,'< h | Ka| p > = ',get_mo_bielec_integral(h1,h2,p1,p2,mo_integrals_map)
! endif endif
print*,'<Ref| H |D_I> = ',hij print*,'<Ref| H |D_I> = ',hij
print*,'Delta E = ',h00-hii
print*,'coef pert (1) = ',coef_1
endif endif
print*,'amplitude = ',psi_coef(i,1)/psi_coef(1,1) print*,'amplitude = ',psi_coef(i,1)/psi_coef(1,1)
enddo enddo
@ -65,7 +85,16 @@ subroutine routine
print*,'' print*,''
print*,'' print*,''
print*,'' print*,''
print*,'mono alpha = ',norm_mono_a print*,'L1 norm of mono alpha = ',norm_mono_a
print*,'mono beta = ',norm_mono_b print*,'L1 norm of mono beta = ',norm_mono_b
print*, '---'
print*,'L2 norm of mono alpha = ',norm_mono_a_2
print*,'L2 norm of mono beta = ',norm_mono_b_2
print*, '-- perturbative mono'
print*,''
print*,'L1 norm of pert alpha = ',norm_mono_a_pert
print*,'L1 norm of pert beta = ',norm_mono_b_pert
print*,'L2 norm of pert alpha = ',norm_mono_a_pert_2
print*,'L2 norm of pert beta = ',norm_mono_b_pert_2
end end

View File

@ -5,7 +5,35 @@ program s2_eig_restart
end end
subroutine routine subroutine routine
implicit none implicit none
call make_s2_eigenfunction integer :: ndet_max
TOUCH psi_det psi_coef psi_det_sorted psi_coef_sorted psi_average_norm_contrib_sorted N_det print*, 'How many determinants would you like ?'
call save_wavefunction read(5,*)ndet_max
integer(bit_kind), allocatable :: psi_det_tmp(:,:,:)
double precision, allocatable :: psi_coef_tmp(:,:)
allocate(psi_det_tmp(N_int,2,ndet_max),psi_coef_tmp(ndet_max, N_states))
integer :: i,j
double precision :: accu(N_states)
accu = 0.d0
do i = 1, ndet_max
do j = 1, N_int
psi_det_tmp(j,1,i) = psi_det_sorted(j,1,i)
psi_det_tmp(j,2,i) = psi_det_sorted(j,2,i)
enddo
do j = 1, N_states
psi_coef_tmp(i,j) = psi_coef_sorted(i,j)
accu(j) += psi_coef_tmp(i,j) **2
enddo
enddo
do j = 1, N_states
accu(j) = 1.d0/dsqrt(accu(j))
enddo
do j = 1, N_states
do i = 1, ndet_max
psi_coef_tmp(i,j) = psi_coef_tmp(i,j) * accu(j)
enddo
enddo
call save_wavefunction_general(ndet_max,N_states,psi_det_tmp,N_det_max,psi_coef_tmp)
end end

View File

@ -199,10 +199,6 @@ Documentation
.br .br
output_all_singles
Output file for All_singles
output_ao_basis output_ao_basis
Output file for AO_Basis Output file for AO_Basis
@ -211,10 +207,6 @@ output_bitmask
Output file for Bitmask Output file for Bitmask
output_cas_sd
Output file for CAS_SD
`output_cpu_time_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f#L2>`_ `output_cpu_time_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f#L2>`_
Initial CPU and wall times when printing in the output files Initial CPU and wall times when printing in the output files
@ -235,26 +227,6 @@ output_ezfio_files
Output file for Ezfio_files Output file for Ezfio_files
output_full_ci
Output file for Full_CI
output_full_ci_zmq
Output file for Full_CI_ZMQ
output_generators_cas
Output file for Generators_CAS
output_generators_full
Output file for Generators_full
output_generators_restart
Output file for Generators_restart
output_hartree_fock output_hartree_fock
Output file for Hartree_Fock Output file for Hartree_Fock
@ -275,46 +247,14 @@ output_moguess
Output file for MOGuess Output file for MOGuess
output_mrcc_utils
Output file for MRCC_Utils
output_mrcepa0
Output file for mrcepa0
output_nuclei output_nuclei
Output file for Nuclei Output file for Nuclei
output_perturbation
Output file for Perturbation
output_properties
Output file for Properties
output_pseudo output_pseudo
Output file for Pseudo Output file for Pseudo
output_psiref_cas
Output file for Psiref_CAS
output_psiref_utils
Output file for Psiref_Utils
output_selectors_full
Output file for Selectors_full
output_selectors_no_sorted
Output file for Selectors_no_sorted
output_utils output_utils
Output file for Utils Output file for Utils

View File

@ -45,7 +45,15 @@ Documentation
.. by the `update_README.py` script. .. by the `update_README.py` script.
`add_integrals_to_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L40>`_ `add_integrals_to_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L174>`_
Adds integrals to tha MO map according to some bitmask
`add_integrals_to_map_no_exit_34 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L795>`_
Adds integrals to tha MO map according to some bitmask
`add_integrals_to_map_three_indices <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L480>`_
Adds integrals to tha MO map according to some bitmask Adds integrals to tha MO map according to some bitmask
@ -54,7 +62,7 @@ Documentation
i(r1) j(r1) 1/r12 k(r2) l(r2) i(r1) j(r1) 1/r12 k(r2) l(r2)
`ao_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L414>`_ `ao_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L418>`_
Needed to compute Schwartz inequalities Needed to compute Schwartz inequalities
@ -68,11 +76,11 @@ Documentation
i(r1) j(r2) 1/r12 k(r1) l(r2) i(r1) j(r2) 1/r12 k(r1) l(r2)
`ao_bielec_integrals_in_map_collector <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L123>`_ `ao_bielec_integrals_in_map_collector <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L125>`_
Collects results from the AO integral calculation Collects results from the AO integral calculation
`ao_bielec_integrals_in_map_slave <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L72>`_ `ao_bielec_integrals_in_map_slave <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L74>`_
Computes a buffer of integrals Computes a buffer of integrals
@ -100,7 +108,7 @@ Documentation
AO integrals AO integrals
`ao_integrals_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L44>`_ `ao_integrals_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L25>`_
If |<pq|rs>| < ao_integrals_threshold then <pq|rs> is zero If |<pq|rs>| < ao_integrals_threshold then <pq|rs> is zero
@ -120,11 +128,19 @@ Documentation
Undocumented Undocumented
`clear_ao_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L273>`_ `big_array_coulomb_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/integrals_3_index.irp.f#L1>`_
Undocumented
`big_array_exchange_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/integrals_3_index.irp.f#L2>`_
Undocumented
`clear_ao_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L274>`_
Frees the memory of the AO map Frees the memory of the AO map
`clear_mo_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L514>`_ `clear_mo_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1370>`_
Frees the memory of the MO map Frees the memory of the MO map
@ -132,31 +148,31 @@ Documentation
Compute AO 1/r12 integrals for all i and fixed j,k,l Compute AO 1/r12 integrals for all i and fixed j,k,l
`compute_ao_integrals_jl <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1174>`_ `compute_ao_integrals_jl <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1178>`_
Parallel client for AO integrals Parallel client for AO integrals
`disk_access_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L25>`_ `disk_access_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L6>`_
Read/Write AO integrals from/to disk [ Write | Read | None ] Read/Write AO integrals from/to disk [ Write | Read | None ]
`disk_access_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L63>`_ `disk_access_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L44>`_
Read/Write MO integrals from/to disk [ Write | Read | None ] Read/Write MO integrals from/to disk [ Write | Read | None ]
`do_direct_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L6>`_ `do_direct_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L63>`_
Compute integrals on the fly Compute integrals on the fly
`dump_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_667#L3>`_ `dump_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_717#L3>`_
Save to disk the $ao integrals Save to disk the $ao integrals
`dump_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_667#L137>`_ `dump_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_717#L137>`_
Save to disk the $ao integrals Save to disk the $ao integrals
`eri <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L577>`_ `eri <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L581>`_
ATOMIC PRIMTIVE bielectronic integral between the 4 primitives :: ATOMIC PRIMTIVE bielectronic integral between the 4 primitives ::
primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2) primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2)
primitive_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2) primitive_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2)
@ -164,6 +180,10 @@ Documentation
primitive_4 = x2**(d_x) y2**(d_y) z2**(d_z) exp(- gama * r2**2) primitive_4 = x2**(d_x) y2**(d_y) z2**(d_z) exp(- gama * r2**2)
`four_idx <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/four_idx_transform.irp.f#L1>`_
4-index transformation from AO to MO integrals
`gauleg <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/gauss_legendre.irp.f#L29>`_ `gauleg <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/gauss_legendre.irp.f#L29>`_
Gauss-Legendre Gauss-Legendre
@ -178,7 +198,7 @@ Documentation
t_w(i,2,k) = t(i) t_w(i,2,k) = t(i)
`general_primitive_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L439>`_ `general_primitive_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L443>`_
Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives
@ -186,149 +206,166 @@ Documentation
Gets one AO bi-electronic integral from the AO map Gets one AO bi-electronic integral from the AO map
`get_ao_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L194>`_ `get_ao_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L195>`_
Gets multiple AO bi-electronic integral from the AO map . Gets multiple AO bi-electronic integral from the AO map .
All i are retrieved for j,k,l fixed. All i are retrieved for j,k,l fixed.
`get_ao_bielec_integrals_non_zero <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L222>`_ `get_ao_bielec_integrals_non_zero <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L223>`_
Gets multiple AO bi-electronic integral from the AO map . Gets multiple AO bi-electronic integral from the AO map .
All non-zero i are retrieved for j,k,l fixed. All non-zero i are retrieved for j,k,l fixed.
`get_ao_map_size <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L264>`_ `get_ao_map_size <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L265>`_
Returns the number of elements in the AO map Returns the number of elements in the AO map
`get_mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L374>`_ `get_mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L375>`_
Returns one integral <ij|kl> in the MO basis Returns one integral <ij|kl> in the MO basis
`get_mo_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L405>`_ `get_mo_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L421>`_
Returns one integral <ij|kl> in the MO basis
`get_mo_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L438>`_
Returns multiple integrals <ij|kl> in the MO basis, all Returns multiple integrals <ij|kl> in the MO basis, all
i for j,k,l fixed. i for j,k,l fixed.
`get_mo_bielec_integrals_ij <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L469>`_ `get_mo_bielec_integrals_coulomb_ii <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L506>`_
Returns multiple integrals <ki|li>
k(1)i(2) 1/r12 l(1)i(2) :: out_val(i1)
for k,l fixed.
`get_mo_bielec_integrals_exch_ii <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L539>`_
Returns multiple integrals <ki|il>
k(1)i(2) 1/r12 i(1)l(2) :: out_val(i1)
for k,l fixed.
`get_mo_bielec_integrals_ij <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L452>`_
Returns multiple integrals <ij|kl> in the MO basis, all Returns multiple integrals <ij|kl> in the MO basis, all
i(1)j(2) 1/r12 k(1)l(2) i(1)j(2) 1/r12 k(1)l(2)
i, j for k,l fixed. i, j for k,l fixed.
`get_mo_map_size <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L523>`_ `get_mo_map_size <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L573>`_
Return the number of elements in the MO map Return the number of elements in the MO map
`give_polynom_mult_center_x <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L791>`_ `give_polynom_mult_center_x <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L795>`_
subroutine that returns the explicit polynom in term of the "t" subroutine that returns the explicit polynom in term of the "t"
variable of the following polynomw : variable of the following polynomw :
I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q) I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q)
`i_x1_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L710>`_ `i_x1_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L714>`_
recursive function involved in the bielectronic integral recursive function involved in the bielectronic integral
`i_x1_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L854>`_ `i_x1_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L858>`_
recursive function involved in the bielectronic integral recursive function involved in the bielectronic integral
`i_x1_pol_mult_a1 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L974>`_ `i_x1_pol_mult_a1 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L978>`_
recursive function involved in the bielectronic integral recursive function involved in the bielectronic integral
`i_x1_pol_mult_a2 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1028>`_ `i_x1_pol_mult_a2 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1032>`_
recursive function involved in the bielectronic integral recursive function involved in the bielectronic integral
`i_x1_pol_mult_recurs <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L888>`_ `i_x1_pol_mult_recurs <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L892>`_
recursive function involved in the bielectronic integral recursive function involved in the bielectronic integral
`i_x2_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L746>`_ `i_x2_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L750>`_
recursive function involved in the bielectronic integral recursive function involved in the bielectronic integral
`i_x2_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1090>`_ `i_x2_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1094>`_
recursive function involved in the bielectronic integral recursive function involved in the bielectronic integral
`insert_into_ao_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L299>`_ `insert_into_ao_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L300>`_
Create new entry into AO map Create new entry into AO map
`insert_into_mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L313>`_ `insert_into_mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L314>`_
Create new entry into MO map, or accumulate in an existing entry Create new entry into MO map, or accumulate in an existing entry
`integrale_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L634>`_ `integrale_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L638>`_
calculate the integral of the polynom :: calculate the integral of the polynom ::
I_x1(a_x+b_x, c_x+d_x,p,q) * I_x1(a_y+b_y, c_y+d_y,p,q) * I_x1(a_z+b_z, c_z+d_z,p,q) I_x1(a_x+b_x, c_x+d_x,p,q) * I_x1(a_y+b_y, c_y+d_y,p,q) * I_x1(a_z+b_z, c_z+d_z,p,q)
between ( 0 ; 1) between ( 0 ; 1)
`load_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_667#L89>`_ `load_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_717#L89>`_
Read from disk the $ao integrals Read from disk the $ao integrals
`load_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_667#L223>`_ `load_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_717#L223>`_
Read from disk the $ao integrals Read from disk the $ao integrals
`mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L425>`_ `mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L407>`_
Returns one integral <ij|kl> in the MO basis Returns one integral <ij|kl> in the MO basis
`mo_bielec_integral_jj <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L445>`_ `mo_bielec_integral_jj <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1342>`_
mo_bielec_integral_jj(i,j) = J_ij mo_bielec_integral_jj(i,j) = J_ij
mo_bielec_integral_jj_exchange(i,j) = K_ij mo_bielec_integral_jj_exchange(i,j) = K_ij
mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij
`mo_bielec_integral_jj_anti <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L447>`_ `mo_bielec_integral_jj_anti <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1344>`_
mo_bielec_integral_jj(i,j) = J_ij mo_bielec_integral_jj(i,j) = J_ij
mo_bielec_integral_jj_exchange(i,j) = K_ij mo_bielec_integral_jj_exchange(i,j) = K_ij
mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij
`mo_bielec_integral_jj_anti_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L313>`_ `mo_bielec_integral_jj_anti_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1061>`_
mo_bielec_integral_jj_from_ao(i,j) = J_ij mo_bielec_integral_jj_from_ao(i,j) = J_ij
mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
`mo_bielec_integral_jj_exchange <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L446>`_ `mo_bielec_integral_jj_exchange <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1343>`_
mo_bielec_integral_jj(i,j) = J_ij mo_bielec_integral_jj(i,j) = J_ij
mo_bielec_integral_jj_exchange(i,j) = K_ij mo_bielec_integral_jj_exchange(i,j) = K_ij
mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij
`mo_bielec_integral_jj_exchange_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L312>`_ `mo_bielec_integral_jj_exchange_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1060>`_
mo_bielec_integral_jj_from_ao(i,j) = J_ij mo_bielec_integral_jj_from_ao(i,j) = J_ij
mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
`mo_bielec_integral_jj_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L311>`_ `mo_bielec_integral_jj_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1059>`_
mo_bielec_integral_jj_from_ao(i,j) = J_ij mo_bielec_integral_jj_from_ao(i,j) = J_ij
mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
`mo_bielec_integral_mipi <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L472>`_ `mo_bielec_integral_vv_anti_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1194>`_
<mi|pi> and <mi|pi> - <mi|ip>. Indices are (i,m,p) mo_bielec_integral_vv_from_ao(i,j) = J_ij
mo_bielec_integral_vv_exchange_from_ao(i,j) = J_ij
mo_bielec_integral_vv_anti_from_ao(i,j) = J_ij - K_ij
but only for the virtual orbitals
`mo_bielec_integral_mipi_anti <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L473>`_ `mo_bielec_integral_vv_exchange_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1193>`_
<mi|pi> and <mi|pi> - <mi|ip>. Indices are (i,m,p) mo_bielec_integral_vv_from_ao(i,j) = J_ij
mo_bielec_integral_vv_exchange_from_ao(i,j) = J_ij
mo_bielec_integral_vv_anti_from_ao(i,j) = J_ij - K_ij
but only for the virtual orbitals
`mo_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L497>`_ `mo_bielec_integral_vv_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1192>`_
Needed to compute Schwartz inequalities mo_bielec_integral_vv_from_ao(i,j) = J_ij
mo_bielec_integral_vv_exchange_from_ao(i,j) = J_ij
mo_bielec_integral_vv_anti_from_ao(i,j) = J_ij - K_ij
but only for the virtual orbitals
`mo_bielec_integrals_in_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L22>`_ `mo_bielec_integrals_in_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L22>`_
@ -339,23 +376,23 @@ Documentation
Computes an unique index for i,j,k,l integrals Computes an unique index for i,j,k,l integrals
`mo_integrals_cache <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L340>`_ `mo_integrals_cache <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L341>`_
Cache of MO integrals for fast access Cache of MO integrals for fast access
`mo_integrals_cache_max <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L330>`_ `mo_integrals_cache_max <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L331>`_
Min and max values of the MOs for which the integrals are in the cache Min and max values of the MOs for which the integrals are in the cache
`mo_integrals_cache_min <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L329>`_ `mo_integrals_cache_min <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L330>`_
Min and max values of the MOs for which the integrals are in the cache Min and max values of the MOs for which the integrals are in the cache
`mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L286>`_ `mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L287>`_
MO integrals MO integrals
`mo_integrals_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L82>`_ `mo_integrals_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L120>`_
If |<ij|kl>| < ao_integrals_threshold then <pq|rs> is zero If |<ij|kl>| < ao_integrals_threshold then <pq|rs> is zero
@ -363,13 +400,25 @@ Documentation
Aligned n_pt_max_integrals Aligned n_pt_max_integrals
`n_pt_sup <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L777>`_ `n_pt_sup <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L781>`_
Returns the upper boundary of the degree of the polynomial involved in the Returns the upper boundary of the degree of the polynomial involved in the
bielctronic integral : bielctronic integral :
Ix(a_x,b_x,c_x,d_x) * Iy(a_y,b_y,c_y,d_y) * Iz(a_z,b_z,c_z,d_z) Ix(a_x,b_x,c_x,d_x) * Iy(a_y,b_y,c_y,d_y) * Iz(a_z,b_z,c_z,d_z)
`provide_all_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L526>`_ `no_ivvv_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L101>`_
Can be switched on only if no_vvvv_integrals is True, then do not computes the integrals having 3 virtual index and 1 belonging to the core inactive active orbitals
`no_vvv_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L82>`_
Can be switched on only if no_vvvv_integrals is True, then do not computes the integrals having 3 virtual orbitals
`no_vvvv_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L139>`_
If True, computes all integrals except for the integrals having 4 virtual index
`provide_all_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L1382>`_
Undocumented Undocumented
@ -389,6 +438,14 @@ Documentation
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
`set_integrals_exchange_jj_into_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L152>`_
Undocumented
`set_integrals_jj_into_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L130>`_
Undocumented
`write_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/read_write.irp.f#L3>`_ `write_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/read_write.irp.f#L3>`_
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals

View File

@ -115,7 +115,7 @@ Documentation
Local pseudo-potential Local pseudo-potential
`ao_pseudo_integral_non_local <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L144>`_ `ao_pseudo_integral_non_local <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L131>`_
Local pseudo-potential Local pseudo-potential
@ -193,7 +193,7 @@ Documentation
`mo_mono_elec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/mo_mono_ints.irp.f#L1>`_ `mo_mono_elec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/mo_mono_ints.irp.f#L1>`_
array of the mono electronic hamiltonian on the MOs basis : array of the mono electronic hamiltonian on the MOs basis :
sum of the kinetic and nuclear electronic potential sum of the kinetic and nuclear electronic potential (and pseudo potential if needed)
`mo_nucl_elec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_mo_ints.irp.f#L1>`_ `mo_nucl_elec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_mo_ints.irp.f#L1>`_
@ -259,27 +259,27 @@ Documentation
Undocumented Undocumented
`pseudo_dz_k_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L260>`_ `pseudo_dz_k_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L233>`_
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
`pseudo_dz_kl_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L278>`_ `pseudo_dz_kl_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L251>`_
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
`pseudo_n_k_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L259>`_ `pseudo_n_k_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L232>`_
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
`pseudo_n_kl_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L277>`_ `pseudo_n_kl_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L250>`_
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
`pseudo_v_k_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L258>`_ `pseudo_v_k_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L231>`_
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
`pseudo_v_kl_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L276>`_ `pseudo_v_kl_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L249>`_
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials

View File

@ -42,7 +42,7 @@ Documentation
Undocumented Undocumented
`ao_ortho_lowdin_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess/mo_ortho_lowdin.irp.f#L22>`_ `ao_ortho_lowdin_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess/mo_ortho_lowdin.irp.f#L25>`_
overlap matrix of the ao_ortho_lowdin overlap matrix of the ao_ortho_lowdin
supposed to be the Identity supposed to be the Identity

View File

@ -78,33 +78,64 @@ Documentation
AO overlap matrix in the spherical basis set AO overlap matrix in the spherical basis set
`ao_ortho_canonical_coef <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/ao_ortho_canonical.irp.f#L85>`_ `ao_ortho_cano_to_ao <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L278>`_
Transform A from the AO basis to the orthogonal AO basis
.br
C^(-1).A_ao.Ct^(-1)
`ao_ortho_canonical_coef <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/ao_ortho_canonical.irp.f#L95>`_
matrix of the coefficients of the mos generated by the matrix of the coefficients of the mos generated by the
orthonormalization by the S^{-1/2} canonical transformation of the aos orthonormalization by the S^{-1/2} canonical transformation of the aos
ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital
`ao_ortho_canonical_num <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/ao_ortho_canonical.irp.f#L86>`_ `ao_ortho_canonical_coef_inv <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/ao_ortho_canonical.irp.f#L86>`_
ao_ortho_canonical_coef^(-1)
`ao_ortho_canonical_num <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/ao_ortho_canonical.irp.f#L96>`_
matrix of the coefficients of the mos generated by the matrix of the coefficients of the mos generated by the
orthonormalization by the S^{-1/2} canonical transformation of the aos orthonormalization by the S^{-1/2} canonical transformation of the aos
ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital
`ao_ortho_canonical_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/ao_ortho_canonical.irp.f#L130>`_ `ao_ortho_canonical_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/ao_ortho_canonical.irp.f#L144>`_
overlap matrix of the ao_ortho_canonical. overlap matrix of the ao_ortho_canonical.
Expected to be the Identity Expected to be the Identity
`ao_to_mo <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L144>`_ `ao_to_mo <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L156>`_
Transform A from the AO basis to the MO basis Transform A from the AO basis to the MO basis
.br
C.A_ao.Ct
`cholesky_mo <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/cholesky_mo.irp.f#L1>`_ `cholesky_mo <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/cholesky_mo.irp.f#L1>`_
Cholesky decomposition of AO Density matrix to Cholesky decomposition of AO Density matrix
generate MOs .br
n : Number of AOs
m : Number of MOs
.br
P(LDP,n) : Density matrix in AO basis
.br
C(LDC,m) : MOs
.br
tol_in : tolerance
.br
rank : Nomber of local MOs (output)
.br
`mix_mo_jk <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L228>`_ `give_all_mos_at_r <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/utils.irp.f#L271>`_
Undocumented
`give_specific_mos_at_r <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/utils.irp.f#L278>`_
Undocumented
`mix_mo_jk <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L244>`_
subroutine that rotates the jth MO with the kth MO subroutine that rotates the jth MO with the kth MO
to give two new MO's that are to give two new MO's that are
'+' = 1/sqrt(2) (|j> + |k>) '+' = 1/sqrt(2) (|j> + |k>)
@ -125,31 +156,33 @@ Documentation
Undocumented Undocumented
`mo_class <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/ezfio_interface.irp.f#L6>`_
Core|Inactive|Active|Virtual|Deleted
`mo_coef <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L29>`_ `mo_coef <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L29>`_
Molecular orbital coefficients on AO basis set Molecular orbital coefficients on AO basis set
mo_coef(i,j) = coefficient of the ith ao on the jth mo mo_coef(i,j) = coefficient of the ith ao on the jth mo
mo_label : Label characterizing the MOS (local, canonical, natural, etc) mo_label : Label characterizing the MOS (local, canonical, natural, etc)
`mo_coef_transp <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L89>`_ `mo_coef_in_ao_ortho_basis <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L71>`_
MO coefficients in orthogonalized AO basis
.br
C^(-1).C_mo
`mo_coef_transp <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L103>`_
Molecular orbital coefficients on AO basis set Molecular orbital coefficients on AO basis set
`mo_density_matrix <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/cholesky_mo.irp.f#L44>`_ `mo_label <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L85>`_
Density matrix in MO basis
`mo_density_matrix_virtual <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/cholesky_mo.irp.f#L64>`_
Density matrix in MO basis (virtual MOs)
`mo_label <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L71>`_
Molecular orbital coefficients on AO basis set Molecular orbital coefficients on AO basis set
mo_coef(i,j) = coefficient of the ith ao on the jth mo mo_coef(i,j) = coefficient of the ith ao on the jth mo
mo_label : Label characterizing the MOS (local, canonical, natural, etc) mo_label : Label characterizing the MOS (local, canonical, natural, etc)
`mo_occ <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L120>`_ `mo_occ <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L134>`_
MO occupation numbers MO occupation numbers
@ -161,11 +194,13 @@ Documentation
Undocumented Undocumented
`mo_to_ao <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L170>`_ `mo_to_ao <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L184>`_
Transform A from the MO basis to the AO basis Transform A from the MO basis to the AO basis
.br
(S.C).A_mo.(S.C)t
`mo_to_ao_no_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L202>`_ `mo_to_ao_no_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L218>`_
Transform A from the MO basis to the S^-1 AO basis Transform A from the MO basis to the S^-1 AO basis
@ -177,7 +212,15 @@ Documentation
Aligned variable for dimensioning of arrays Aligned variable for dimensioning of arrays
`s_mo_coef <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L107>`_ `permut_mos <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mo_permutation.irp.f#L1>`_
Undocumented
`pouet <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/print_mo_in_space.irp.f#L1>`_
Undocumented
`s_mo_coef <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/mos.irp.f#L121>`_
Product S.C where S is the overlap matrix in the AO basis and C the mo_coef matrix. Product S.C where S is the overlap matrix in the AO basis and C the mo_coef matrix.
@ -189,6 +232,22 @@ Documentation
Undocumented Undocumented
`svd_mo <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/cholesky_mo.irp.f#L53>`_
Singular value decomposition of the AO Density matrix
.br
n : Number of AOs
m : Number of MOs
.br
P(LDP,n) : Density matrix in AO basis
.br
C(LDC,m) : MOs
.br
tol_in : tolerance
.br
rank : Nomber of local MOs (output)
.br
`swap_mos <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/swap_mos.irp.f#L1>`_ `swap_mos <http://github.com/LCPQ/quantum_package/tree/master/src/MO_Basis/swap_mos.irp.f#L1>`_
Undocumented Undocumented

View File

@ -34,11 +34,15 @@ Documentation
.. by the `update_README.py` script. .. by the `update_README.py` script.
`element_name <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/nuclei.irp.f#L172>`_ `disk_access_nuclear_repulsion <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/ezfio_interface.irp.f#L6>`_
Read/Write Nuclear Repulsion from/to disk [ Write | Read | None ]
`element_name <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/nuclei.irp.f#L191>`_
Array of the name of element, sorted by nuclear charge (integer) Array of the name of element, sorted by nuclear charge (integer)
`nucl_charge <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/ezfio_interface.irp.f#L26>`_ `nucl_charge <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/ezfio_interface.irp.f#L44>`_
Nuclear charges Nuclear charges
@ -80,11 +84,11 @@ Documentation
nucl_dist_vec : Nucleus-nucleus distances vectors nucl_dist_vec : Nucleus-nucleus distances vectors
`nucl_label <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/ezfio_interface.irp.f#L6>`_ `nucl_label <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/ezfio_interface.irp.f#L64>`_
Nuclear labels Nuclear labels
`nucl_num <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/ezfio_interface.irp.f#L46>`_ `nucl_num <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/ezfio_interface.irp.f#L25>`_
Number of nuclei Number of nuclei
@ -99,3 +103,28 @@ Documentation
`positive_charge_barycentre <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/nuclei.irp.f#L128>`_ `positive_charge_barycentre <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/nuclei.irp.f#L128>`_
Centroid of the positive charges Centroid of the positive charges
`slater_bragg_radii <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/atomic_radii.irp.f#L1>`_
atomic radii in Angstrom defined in table I of JCP 41, 3199 (1964) Slater
execpt for the Hydrogen atom where we took the value of Becke (1988, JCP)
`slater_bragg_radii_per_atom <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/atomic_radii.irp.f#L65>`_
Undocumented
`slater_bragg_radii_per_atom_ua <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/atomic_radii.irp.f#L73>`_
Undocumented
`slater_bragg_radii_ua <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/atomic_radii.irp.f#L57>`_
Undocumented
`slater_bragg_type_inter_distance <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/atomic_radii.irp.f#L81>`_
Undocumented
`slater_bragg_type_inter_distance_ua <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/atomic_radii.irp.f#L95>`_
Undocumented

View File

@ -28,11 +28,11 @@ Documentation
Compute 1st dimension such that it is aligned for vectorization. Compute 1st dimension such that it is aligned for vectorization.
`apply_rotation <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L320>`_ `apply_rotation <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L372>`_
Apply the rotation found by find_rotation Apply the rotation found by find_rotation
`approx_dble <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L371>`_ `approx_dble <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L355>`_
Undocumented Undocumented
@ -75,19 +75,24 @@ Documentation
Undocumented Undocumented
`dset_order <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_216#L27>`_ `degree_max_integration_lebedev <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/angular_integration.irp.f#L1>`_
integrate correctly a polynom of order "degree_max_integration_lebedev"
needed for the angular integration according to LEBEDEV formulae
`dset_order <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_323#L27>`_
array A has already been sorted, and iorder has contains the new order of array A has already been sorted, and iorder has contains the new order of
elements of A. This subroutine changes the order of x to match the new order of A. elements of A. This subroutine changes the order of x to match the new order of A.
`dset_order_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_283#L94>`_ `dset_order_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_388#L90>`_
array A has already been sorted, and iorder has contains the new order of array A has already been sorted, and iorder has contains the new order of
elements of A. This subroutine changes the order of x to match the new order of A. elements of A. This subroutine changes the order of x to match the new order of A.
This is a version for very large arrays where the indices need This is a version for very large arrays where the indices need
to be in integer*8 format to be in integer*8 format
`dsort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L339>`_ `dsort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_270#L30>`_
Sort array x(isize). Sort array x(isize).
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -114,7 +119,7 @@ Documentation
1/n! 1/n!
`find_rotation <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L301>`_ `find_rotation <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L353>`_
Find A.C = B Find A.C = B
@ -140,7 +145,11 @@ Documentation
Undocumented Undocumented
`get_pseudo_inverse <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L247>`_ `get_inverse <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L271>`_
Returns the inverse of the square matrix A
`get_pseudo_inverse <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L299>`_
Find C = A^-1 Find C = A^-1
@ -175,13 +184,13 @@ Documentation
Undocumented Undocumented
`heap_dsort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L210>`_ `heap_dsort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L312>`_
Sort array x(isize) using the heap sort algorithm. Sort array x(isize) using the heap sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`heap_dsort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L273>`_ `heap_dsort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L375>`_
Sort array x(isize) using the heap sort algorithm. Sort array x(isize) using the heap sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -189,13 +198,13 @@ Documentation
to be in integer*8 format to be in integer*8 format
`heap_i2sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L744>`_ `heap_i2sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L1008>`_
Sort array x(isize) using the heap sort algorithm. Sort array x(isize) using the heap sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`heap_i2sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L807>`_ `heap_i2sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L1071>`_
Sort array x(isize) using the heap sort algorithm. Sort array x(isize) using the heap sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -203,13 +212,13 @@ Documentation
to be in integer*8 format to be in integer*8 format
`heap_i8sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L566>`_ `heap_i8sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L776>`_
Sort array x(isize) using the heap sort algorithm. Sort array x(isize) using the heap sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`heap_i8sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L629>`_ `heap_i8sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L839>`_
Sort array x(isize) using the heap sort algorithm. Sort array x(isize) using the heap sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -217,13 +226,13 @@ Documentation
to be in integer*8 format to be in integer*8 format
`heap_isort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L388>`_ `heap_isort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L544>`_
Sort array x(isize) using the heap sort algorithm. Sort array x(isize) using the heap sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`heap_isort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L451>`_ `heap_isort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L607>`_
Sort array x(isize) using the heap sort algorithm. Sort array x(isize) using the heap sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -231,13 +240,13 @@ Documentation
to be in integer*8 format to be in integer*8 format
`heap_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L32>`_ `heap_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L80>`_
Sort array x(isize) using the heap sort algorithm. Sort array x(isize) using the heap sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`heap_sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L95>`_ `heap_sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L143>`_
Sort array x(isize) using the heap sort algorithm. Sort array x(isize) using the heap sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -249,70 +258,70 @@ Documentation
Hermite polynomial Hermite polynomial
`i2radix_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_452#L327>`_ `i2radix_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_605#L423>`_
Sort integer array x(isize) using the radix sort algorithm. Sort integer array x(isize) using the radix sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
iradix should be -1 in input. iradix should be -1 in input.
`i2set_order <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_216#L102>`_ `i2set_order <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_323#L102>`_
array A has already been sorted, and iorder has contains the new order of array A has already been sorted, and iorder has contains the new order of
elements of A. This subroutine changes the order of x to match the new order of A. elements of A. This subroutine changes the order of x to match the new order of A.
`i2set_order_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_283#L271>`_ `i2set_order_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_388#L261>`_
array A has already been sorted, and iorder has contains the new order of array A has already been sorted, and iorder has contains the new order of
elements of A. This subroutine changes the order of x to match the new order of A. elements of A. This subroutine changes the order of x to match the new order of A.
This is a version for very large arrays where the indices need This is a version for very large arrays where the indices need
to be in integer*8 format to be in integer*8 format
`i2sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L873>`_ `i2sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_291#L34>`_
Sort array x(isize). Sort array x(isize).
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`i8radix_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_452#L165>`_ `i8radix_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_605#L213>`_
Sort integer array x(isize) using the radix sort algorithm. Sort integer array x(isize) using the radix sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
iradix should be -1 in input. iradix should be -1 in input.
`i8radix_sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_452#L651>`_ `i8radix_sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_605#L843>`_
Sort integer array x(isize) using the radix sort algorithm. Sort integer array x(isize) using the radix sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
iradix should be -1 in input. iradix should be -1 in input.
`i8set_order <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_216#L77>`_ `i8set_order <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_323#L77>`_
array A has already been sorted, and iorder has contains the new order of array A has already been sorted, and iorder has contains the new order of
elements of A. This subroutine changes the order of x to match the new order of A. elements of A. This subroutine changes the order of x to match the new order of A.
`i8set_order_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_283#L212>`_ `i8set_order_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_388#L204>`_
array A has already been sorted, and iorder has contains the new order of array A has already been sorted, and iorder has contains the new order of
elements of A. This subroutine changes the order of x to match the new order of A. elements of A. This subroutine changes the order of x to match the new order of A.
This is a version for very large arrays where the indices need This is a version for very large arrays where the indices need
to be in integer*8 format to be in integer*8 format
`i8sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L695>`_ `i8sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_291#L18>`_
Sort array x(isize). Sort array x(isize).
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`insertion_dsort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L180>`_ `insertion_dsort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L234>`_
Sort array x(isize) using the insertion sort algorithm. Sort array x(isize) using the insertion sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`insertion_dsort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_283#L61>`_ `insertion_dsort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_388#L59>`_
Sort array x(isize) using the insertion sort algorithm. Sort array x(isize) using the insertion sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -320,13 +329,13 @@ Documentation
to be in integer*8 format to be in integer*8 format
`insertion_i2sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L714>`_ `insertion_i2sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L930>`_
Sort array x(isize) using the insertion sort algorithm. Sort array x(isize) using the insertion sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`insertion_i2sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_283#L238>`_ `insertion_i2sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_388#L230>`_
Sort array x(isize) using the insertion sort algorithm. Sort array x(isize) using the insertion sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -334,13 +343,13 @@ Documentation
to be in integer*8 format to be in integer*8 format
`insertion_i8sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L536>`_ `insertion_i8sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L698>`_
Sort array x(isize) using the insertion sort algorithm. Sort array x(isize) using the insertion sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`insertion_i8sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_283#L179>`_ `insertion_i8sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_388#L173>`_
Sort array x(isize) using the insertion sort algorithm. Sort array x(isize) using the insertion sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -348,13 +357,13 @@ Documentation
to be in integer*8 format to be in integer*8 format
`insertion_isort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L358>`_ `insertion_isort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L466>`_
Sort array x(isize) using the insertion sort algorithm. Sort array x(isize) using the insertion sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`insertion_isort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_283#L120>`_ `insertion_isort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_388#L116>`_
Sort array x(isize) using the insertion sort algorithm. Sort array x(isize) using the insertion sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -362,13 +371,13 @@ Documentation
to be in integer*8 format to be in integer*8 format
`insertion_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L2>`_ `insertion_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L2>`_
Sort array x(isize) using the insertion sort algorithm. Sort array x(isize) using the insertion sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`insertion_sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_283#L2>`_ `insertion_sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_388#L2>`_
Sort array x(isize) using the insertion sort algorithm. Sort array x(isize) using the insertion sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
@ -376,43 +385,43 @@ Documentation
to be in integer*8 format to be in integer*8 format
`inv_int <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L278>`_ `inv_int <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L262>`_
1/i 1/i
`iradix_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_452#L3>`_ `iradix_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_605#L3>`_
Sort integer array x(isize) using the radix sort algorithm. Sort integer array x(isize) using the radix sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
iradix should be -1 in input. iradix should be -1 in input.
`iradix_sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_452#L489>`_ `iradix_sort_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_605#L633>`_
Sort integer array x(isize) using the radix sort algorithm. Sort integer array x(isize) using the radix sort algorithm.
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
iradix should be -1 in input. iradix should be -1 in input.
`iset_order <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_216#L52>`_ `iset_order <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_323#L52>`_
array A has already been sorted, and iorder has contains the new order of array A has already been sorted, and iorder has contains the new order of
elements of A. This subroutine changes the order of x to match the new order of A. elements of A. This subroutine changes the order of x to match the new order of A.
`iset_order_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_283#L153>`_ `iset_order_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_388#L147>`_
array A has already been sorted, and iorder has contains the new order of array A has already been sorted, and iorder has contains the new order of
elements of A. This subroutine changes the order of x to match the new order of A. elements of A. This subroutine changes the order of x to match the new order of A.
This is a version for very large arrays where the indices need This is a version for very large arrays where the indices need
to be in integer*8 format to be in integer*8 format
`isort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L517>`_ `isort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_291#L2>`_
Sort array x(isize). Sort array x(isize).
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`lapack_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L399>`_ `lapack_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L451>`_
Diagonalize matrix H Diagonalize matrix H
.br .br
H is untouched between input and ouptut H is untouched between input and ouptut
@ -423,7 +432,7 @@ Documentation
.br .br
`lapack_diag_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L462>`_ `lapack_diag_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L519>`_
Diagonalize matrix H Diagonalize matrix H
.br .br
H is untouched between input and ouptut H is untouched between input and ouptut
@ -434,7 +443,7 @@ Documentation
.br .br
`lapack_diagd <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L332>`_ `lapack_diagd <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L384>`_
Diagonalize matrix H Diagonalize matrix H
.br .br
H is untouched between input and ouptut H is untouched between input and ouptut
@ -445,7 +454,7 @@ Documentation
.br .br
`lapack_partial_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L528>`_ `lapack_partial_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L585>`_
Diagonalize matrix H Diagonalize matrix H
.br .br
H is untouched between input and ouptut H is untouched between input and ouptut
@ -460,11 +469,11 @@ Documentation
n! n!
`lowercase <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L395>`_ `lowercase <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L379>`_
Transform to lower case Transform to lower case
`map_load_from_disk <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/map_functions.irp.f#L70>`_ `map_load_from_disk <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/map_functions.irp.f#L66>`_
Undocumented Undocumented
@ -472,17 +481,25 @@ Documentation
Undocumented Undocumented
`matrix_vector_product <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L666>`_
performs u1 =! performs u1 +( u0 * matrix)
`multiply_poly <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L264>`_ `multiply_poly <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L264>`_
Multiply two polynomials Multiply two polynomials
D(t) =! D(t) +( B(t)*C(t)) D(t) =! D(t) +( B(t)*C(t))
`normalize <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L348>`_ `n_points_integration_angular_lebedev <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/angular_integration.irp.f#L11>`_
Number of points needed for the angular integral
`normalize <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L332>`_
Normalizes vector u Normalizes vector u
u is expected to be aligned in memory. u is expected to be aligned in memory.
`nproc <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L304>`_ `nproc <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L288>`_
Number of current OpenMP threads Number of current OpenMP threads
@ -504,7 +521,7 @@ Documentation
.br .br
`ortho_lowdin <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L162>`_ `ortho_lowdin <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L187>`_
Compute C_new=C_old.S^-1/2 orthogonalization. Compute C_new=C_old.S^-1/2 orthogonalization.
.br .br
overlap : overlap matrix overlap : overlap matrix
@ -518,7 +535,7 @@ Documentation
.br .br
LDC : leftmost dimension of C LDC : leftmost dimension of C
.br .br
m : Coefficients matrix is MxN, ( array is (LDC,N) ) M : Coefficients matrix is MxN, ( array is (LDC,N) )
.br .br
@ -535,6 +552,19 @@ Documentation
.br .br
`ortho_qr_unblocked <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L160>`_
Orthogonalization using Q.R factorization
.br
A : matrix to orthogonalize
.br
LDA : leftmost dimension of A
.br
n : Number of rows of A
.br
m : Number of columns of A
.br
`overlap_a_b_c <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/one_e_integration.irp.f#L35>`_ `overlap_a_b_c <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/one_e_integration.irp.f#L35>`_
Undocumented Undocumented
@ -561,6 +591,12 @@ Documentation
.br .br
`phi_angular_integration_lebedev <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/angular_integration.irp.f#L41>`_
Theta phi values together with the weights values for the angular integration :
integral [dphi,dtheta] f(x,y,z) = 4 * pi * sum (1<i<n_points_integration_angular_lebedev) f(xi,yi,zi)
Note that theta and phi are in DEGREES !!
`progress_active <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L29>`_ `progress_active <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L29>`_
Current status for displaying progress bars. Global variable. Current status for displaying progress bars. Global variable.
@ -581,6 +617,56 @@ Documentation
Current status for displaying progress bars. Global variable. Current status for displaying progress bars. Global variable.
`quick_dsort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L262>`_
Sort array x(isize) using the quicksort algorithm.
iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements.
`quick_i2sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L958>`_
Sort array x(isize) using the quicksort algorithm.
iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements.
`quick_i8sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L726>`_
Sort array x(isize) using the quicksort algorithm.
iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements.
`quick_isort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L494>`_
Sort array x(isize) using the quicksort algorithm.
iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements.
`quick_sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L30>`_
Sort array x(isize) using the quicksort algorithm.
iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements.
`rec__quicksort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L43>`_
Undocumented
`rec_d_quicksort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L275>`_
Undocumented
`rec_i2_quicksort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L971>`_
Undocumented
`rec_i8_quicksort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L739>`_
Undocumented
`rec_i_quicksort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L507>`_
Undocumented
`recentered_poly2 <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L363>`_ `recentered_poly2 <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L363>`_
Recenter two polynomials Recenter two polynomials
@ -620,28 +706,48 @@ Documentation
Undocumented Undocumented
`set_order <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_216#L2>`_ `set_order <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_323#L2>`_
array A has already been sorted, and iorder has contains the new order of array A has already been sorted, and iorder has contains the new order of
elements of A. This subroutine changes the order of x to match the new order of A. elements of A. This subroutine changes the order of x to match the new order of A.
`set_order_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_283#L35>`_ `set_order_big <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_388#L33>`_
array A has already been sorted, and iorder has contains the new order of array A has already been sorted, and iorder has contains the new order of
elements of A. This subroutine changes the order of x to match the new order of A. elements of A. This subroutine changes the order of x to match the new order of A.
This is a version for very large arrays where the indices need This is a version for very large arrays where the indices need
to be in integer*8 format to be in integer*8 format
`set_zero_extra_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L585>`_ `set_zero_extra_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L642>`_
Undocumented Undocumented
`sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_184#L161>`_ `sort <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_270#L2>`_
Sort array x(isize). Sort array x(isize).
iorder in input should be (1,2,3,...,isize), and in output iorder in input should be (1,2,3,...,isize), and in output
contains the new order of the elements. contains the new order of the elements.
`sorted_dnumber <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L441>`_
Returns the number of sorted elements
`sorted_i2number <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L1137>`_
Returns the number of sorted elements
`sorted_i8number <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L905>`_
Returns the number of sorted elements
`sorted_inumber <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L673>`_
Returns the number of sorted elements
`sorted_number <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/sort.irp.f_template_238#L209>`_
Returns the number of sorted elements
`start_progress <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L1>`_ `start_progress <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L1>`_
Starts the progress bar Starts the progress bar
@ -659,22 +765,34 @@ Documentation
.br .br
`theta_angular_integration_lebedev <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/angular_integration.irp.f#L40>`_
Theta phi values together with the weights values for the angular integration :
integral [dphi,dtheta] f(x,y,z) = 4 * pi * sum (1<i<n_points_integration_angular_lebedev) f(xi,yi,zi)
Note that theta and phi are in DEGREES !!
`transpose <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/transpose.irp.f#L2>`_ `transpose <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/transpose.irp.f#L2>`_
Transpose input matrix A into output matrix B Transpose input matrix A into output matrix B
`u_dot_u <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L334>`_ `u_dot_u <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L318>`_
Compute <u|u> Compute <u|u>
`u_dot_v <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L320>`_ `u_dot_v <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L304>`_
Compute <u|v> Compute <u|v>
`wall_time <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L289>`_ `wall_time <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L273>`_
The equivalent of cpu_time, but for the wall time. The equivalent of cpu_time, but for the wall time.
`write_git_log <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L264>`_ `weights_angular_integration_lebedev <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/angular_integration.irp.f#L42>`_
Theta phi values together with the weights values for the angular integration :
integral [dphi,dtheta] f(x,y,z) = 4 * pi * sum (1<i<n_points_integration_angular_lebedev) f(xi,yi,zi)
Note that theta and phi are in DEGREES !!
`write_git_log <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L248>`_
Write the last git commit in file iunit. Write the last git commit in file iunit.

View File

@ -1,12 +1,11 @@
double precision function SABpartial(zA,zB,A,B,nA,nB,gamA,gamB) double precision function SABpartial(zA,zB,A,B,nA,nB,gamA,gamB,l)
implicit double precision(a-h,o-z) implicit double precision(a-h,o-z)
dimension nA(3),nB(3) dimension nA(3),nB(3)
dimension A(3),B(3) dimension A(3),B(3)
gamtot=gamA+gamB gamtot=gamA+gamB
SABpartial=1.d0 SABpartial=1.d0
l=3
u=gamA/gamtot*A(l)+gamB/gamtot*B(l) u=gamA/gamtot*A(l)+gamB/gamtot*B(l)
arg=gamtot*u**2-gamA*A(l)**2-gamB*B(l)**2 arg=gamtot*u**2-gamA*A(l)**2-gamB*B(l)**2
alpha=dexp(arg) alpha=dexp(arg)

View File

@ -21,55 +21,63 @@ Documentation
.. by the `update_README.py` script. .. by the `update_README.py` script.
`add_task_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L677>`_ `add_task_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L704>`_
Get a task from the task server Get a task from the task server
`connect_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L594>`_ `add_task_to_taskserver_recv <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L761>`_
Get a task from the task server
`add_task_to_taskserver_send <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L736>`_
Get a task from the task server
`connect_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L621>`_
Connect to the task server and obtain the worker ID Connect to the task server and obtain the worker ID
`disconnect_from_taskserver <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L637>`_ `disconnect_from_taskserver <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L664>`_
Disconnect from the task server Disconnect from the task server
`end_parallel_job <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L559>`_ `end_parallel_job <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L583>`_
End a new parallel job with name 'name'. The slave tasks execute subroutine 'slave' End a new parallel job with name 'name'. The slave tasks execute subroutine 'slave'
`end_zmq_pair_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L419>`_ `end_zmq_pair_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L424>`_
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
`end_zmq_pull_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L437>`_ `end_zmq_pull_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L444>`_
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
`end_zmq_push_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L456>`_ `end_zmq_push_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L470>`_
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
`end_zmq_sub_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L401>`_ `end_zmq_sub_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L404>`_
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
`end_zmq_to_qp_run_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L790>`_ `end_zmq_to_qp_run_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L890>`_
Terminate the socket from the application to qp_run Terminate the socket from the application to qp_run
`get_task_from_taskserver <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L737>`_ `get_task_from_taskserver <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L836>`_
Get a task from the task server Get a task from the task server
`new_parallel_job <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L490>`_ `new_parallel_job <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L506>`_
Start a new parallel job with name 'name'. The slave tasks execute subroutine 'slave' Start a new parallel job with name 'name'. The slave tasks execute subroutine 'slave'
`new_zmq_pair_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L164>`_ `new_zmq_pair_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L161>`_
Socket on which the collector and the main communicate Socket on which the collector and the main communicate
`new_zmq_pull_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L224>`_ `new_zmq_pull_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L221>`_
Socket on which the results are sent. If thread is 1, use inproc Socket on which the results are sent. If thread is 1, use inproc
@ -77,90 +85,98 @@ Documentation
Socket on which the results are sent. If thread is 1, use inproc Socket on which the results are sent. If thread is 1, use inproc
`new_zmq_sub_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L360>`_ `new_zmq_sub_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L363>`_
Socket to read the state published by the Task server Socket to read the state published by the Task server
`new_zmq_to_qp_run_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L126>`_ `new_zmq_to_qp_run_socket <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L123>`_
Socket on which the qp_run process replies Socket on which the qp_run process replies
`qp_run_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L19>`_ `qp_run_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L16>`_
Address of the qp_run socket Address of the qp_run socket
Example : tcp://130.120.229.139:12345 Example : tcp://130.120.229.139:12345
`reset_zmq_addresses <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L67>`_ `reset_zmq_addresses <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L64>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`switch_qp_run_to_master <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L84>`_ `switch_qp_run_to_master <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L81>`_
Address of the master qp_run socket Address of the master qp_run socket
Example : tcp://130.120.229.139:12345 Example : tcp://130.120.229.139:12345
`task_done_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L708>`_ `task_done_to_taskserver <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L807>`_
Get a task from the task server Get a task from the task server
`wait_for_next_state <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L855>`_ `wait_for_next_state <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L955>`_
Undocumented Undocumented
`wait_for_state <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L879>`_ `wait_for_state <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L979>`_
Wait for the ZMQ state to be ready Wait for the ZMQ state to be ready
`wait_for_states <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L907>`_ `wait_for_states <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L1007>`_
Wait for the ZMQ state to be ready Wait for the ZMQ state to be ready
`zmq_context <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L8>`_ `zmq_abort <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L780>`_
Aborts a running parallel computation
`zmq_context <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L4>`_
Context for the ZeroMQ library Context for the ZeroMQ library
`zmq_delete_task <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L813>`_ `zmq_delete_task <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L913>`_
When a task is done, it has to be removed from the list of tasks on the qp_run When a task is done, it has to be removed from the list of tasks on the qp_run
queue. This guarantees that the results have been received in the pull. queue. This guarantees that the results have been received in the pull.
`zmq_port <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L113>`_ `zmq_lock <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L5>`_
Context for the ZeroMQ library
`zmq_port <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L110>`_
Return the value of the ZMQ port from the corresponding integer Return the value of the ZMQ port from the corresponding integer
`zmq_port_start <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L20>`_ `zmq_port_start <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L17>`_
Address of the qp_run socket Address of the qp_run socket
Example : tcp://130.120.229.139:12345 Example : tcp://130.120.229.139:12345
`zmq_set_running <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L530>`_ `zmq_set_running <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L553>`_
Set the job to Running in QP-run Set the job to Running in QP-run
`zmq_socket_pair_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L45>`_ `zmq_socket_pair_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L42>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_socket_pull_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L47>`_ `zmq_socket_pull_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L44>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_socket_pull_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L44>`_ `zmq_socket_pull_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L41>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_socket_push_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L48>`_ `zmq_socket_push_inproc_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L45>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_socket_push_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L46>`_ `zmq_socket_push_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L43>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_socket_sub_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L49>`_ `zmq_socket_sub_tcp_address <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L46>`_
Socket which pulls the results (2) Socket which pulls the results (2)
`zmq_state <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L482>`_ `zmq_state <http://github.com/LCPQ/quantum_package/tree/master/src/ZMQ/utils.irp.f#L498>`_
Threads executing work through the ZeroMQ interface Threads executing work through the ZeroMQ interface