diff --git a/src/aux_quantities/EZFIO.cfg b/src/aux_quantities/EZFIO.cfg index 6b4bd0f2..2e400577 100644 --- a/src/aux_quantities/EZFIO.cfg +++ b/src/aux_quantities/EZFIO.cfg @@ -37,4 +37,31 @@ doc: Beta one body density matrix on the |AO| basis computed with the wave funct type: double precision size: (ao_basis.ao_num,ao_basis.ao_num,determinants.n_states) +[data_one_e_dm_alpha_mo_complex] +interface: ezfio, provider +doc: Alpha one body density matrix on the |MO| basis computed with the wave function +type: double precision +size: (2,mo_basis.mo_num,mo_basis.mo_num,determinants.n_states) + + +[data_one_e_dm_beta_mo_complex] +interface: ezfio, provider +doc: Beta one body density matrix on the |MO| basis computed with the wave function +type: double precision +size: (2,mo_basis.mo_num,mo_basis.mo_num,determinants.n_states) + + +[data_one_e_dm_alpha_ao_complex] +interface: ezfio, provider +doc: Alpha one body density matrix on the |AO| basis computed with the wave function +type: double precision +size: (2,ao_basis.ao_num,ao_basis.ao_num,determinants.n_states) + + +[data_one_e_dm_beta_ao_complex] +interface: ezfio, provider +doc: Beta one body density matrix on the |AO| basis computed with the wave function +type: double precision +size: (2,ao_basis.ao_num,ao_basis.ao_num,determinants.n_states) + diff --git a/src/tools/save_one_e_dm_cplx.irp.f b/src/tools/save_one_e_dm_cplx.irp.f new file mode 100644 index 00000000..3d0e6d6c --- /dev/null +++ b/src/tools/save_one_e_dm_cplx.irp.f @@ -0,0 +1,27 @@ +program save_one_e_dm_cplx + implicit none + BEGIN_DOC +! Program that computes the one body density on the |MO| and |AO| basis +! for $\alpha$ and $\beta$ electrons from the wave function +! stored in the |EZFIO| directory, and then saves it into the +! :ref:`module_aux_quantities`. +! +! Then, the global variable :option:`aux_quantities data_one_e_dm_alpha_mo_complex` +! and :option:`aux_quantities data_one_e_dm_beta_mo_complex` (and the corresponding for |AO|) + END_DOC + read_wf = .True. + touch read_wf + call routine_save_one_e_dm_cplx + +end + +subroutine routine_save_one_e_dm_cplx + implicit none + BEGIN_DOC + ! routine called by :c:func:`save_one_e_dm_cplx` + END_DOC + call ezfio_set_aux_quantities_data_one_e_dm_alpha_mo_complex(one_e_dm_mo_alpha_complex) + call ezfio_set_aux_quantities_data_one_e_dm_beta_mo_complex(one_e_dm_mo_beta_complex) + call ezfio_set_aux_quantities_data_one_e_dm_alpha_ao_complex(one_e_dm_ao_alpha_complex) + call ezfio_set_aux_quantities_data_one_e_dm_beta_ao_complex(one_e_dm_ao_beta_complex) +end