├── .gitattributes ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── bin ├── .empty └── qp_gaspi_run ├── config ├── gfortran.cfg ├── gfortran_avx.cfg ├── gfortran_debug.cfg ├── gfortran_mpi.cfg ├── ifort.cfg ├── ifort_mpi.cfg ├── sse4_avx2.cfg └── travis.cfg ├── configure ├── data ├── .gitignore ├── README.rst ├── Symmetry │ ├── C1 │ ├── C10 │ ├── C10h │ ├── C10v │ ├── C11 │ ├── C11h │ ├── C11v │ ├── C12 │ ├── C12h │ ├── C12v │ ├── C13 │ ├── C13h │ ├── C13v │ ├── C14 │ ├── C14h │ ├── C14v │ ├── C15 │ ├── C15h │ ├── C15v │ ├── C16 │ ├── C16h │ ├── C16v │ ├── C17 │ ├── C17h │ ├── C17v │ ├── C18 │ ├── C18h │ ├── C18v │ ├── C19 │ ├── C19h │ ├── C19v │ ├── C1h │ ├── C1v │ ├── C2 │ ├── C20 │ ├── C20h │ ├── C20v │ ├── C21 │ ├── C21h │ ├── C21v │ ├── C22 │ ├── C22h │ ├── C22v │ ├── C23 │ ├── C23h │ ├── C23v │ ├── C24 │ ├── C24h │ ├── C24v │ ├── C25 │ ├── C25h │ ├── C25v │ ├── C26 │ ├── C26h │ ├── C26v │ ├── C27 │ ├── C27h │ ├── C27v │ ├── C28 │ ├── C28h │ ├── C28v │ ├── C29 │ ├── C29h │ ├── C29v │ ├── C2h │ ├── C2v │ ├── C3 │ ├── C30 │ ├── C30h │ ├── C30v │ ├── C31 │ ├── C31h │ ├── C31v │ ├── C32 │ ├── C32h │ ├── C32v │ ├── C3h │ ├── C3v │ ├── C4 │ ├── C4h │ ├── C4v │ ├── C5 │ ├── C5h │ ├── C5v │ ├── C6 │ ├── C6h │ ├── C6v │ ├── C7 │ ├── C7h │ ├── C7v │ ├── C8 │ ├── C8h │ ├── C8v │ ├── C9 │ ├── C9h │ ├── C9v │ ├── Ci │ ├── Cinfv │ ├── Cs │ ├── D1 │ ├── D10 │ ├── D10d │ ├── D10h │ ├── D11 │ ├── D11d │ ├── D11h │ ├── D12 │ ├── D12d │ ├── D12h │ ├── D13 │ ├── D13d │ ├── D13h │ ├── D14 │ ├── D14d │ ├── D14h │ ├── D15 │ ├── D15d │ ├── D15h │ ├── D16 │ ├── D16d │ ├── D16h │ ├── D17 │ ├── D17d │ ├── D17h │ ├── D18 │ ├── D18d │ ├── D18h │ ├── D19 │ ├── D19d │ ├── D19h │ ├── D1d │ ├── D1h │ ├── D2 │ ├── D20 │ ├── D20d │ ├── D20h │ ├── D21 │ ├── D21d │ ├── D21h │ ├── D22 │ ├── D22d │ ├── D22h │ ├── D23 │ ├── D23d │ ├── D23h │ ├── D24 │ ├── D24d │ ├── D24h │ ├── D25 │ ├── D25d │ ├── D25h │ ├── D26 │ ├── D26d │ ├── D26h │ ├── D27 │ ├── D27d │ ├── D27h │ ├── D28 │ ├── D28d │ ├── D28h │ ├── D29 │ ├── D29d │ ├── D29h │ ├── D2d │ ├── D2h │ ├── D3 │ ├── D30 │ ├── D30d │ ├── D30h │ ├── D31 │ ├── D31d │ ├── D31h │ ├── D32 │ ├── D32d │ ├── D32h │ ├── D3d │ ├── D3h │ ├── D4 │ ├── D4d │ ├── D4h │ ├── D5 │ ├── D5d │ ├── D5h │ ├── D6 │ ├── D6d │ ├── D6h │ ├── D7 │ ├── D7d │ ├── D7h │ ├── D8 │ ├── D8d │ ├── D8h │ ├── D9 │ ├── D9d │ ├── D9h │ ├── Dinfh │ ├── I │ ├── Ih │ ├── O │ ├── Oh │ ├── S12 │ ├── S16 │ ├── S20 │ ├── S24 │ ├── S28 │ ├── S32 │ ├── S4 │ ├── S8 │ ├── T │ ├── Td │ └── Th ├── Titanium.png ├── basis │ ├── aug-cc-pcv5z │ ├── aug-cc-pcvdz │ ├── aug-cc-pcvqz │ ├── aug-cc-pcvtz │ ├── aug-cc-pv5z │ ├── aug-cc-pv6z │ ├── aug-cc-pvdz │ ├── aug-cc-pvqz │ ├── aug-cc-pvtz │ ├── cc-pcv5z │ ├── cc-pcv6z │ ├── cc-pcvdz │ ├── cc-pcvqz │ ├── cc-pcvtz │ ├── cc-pv5z │ ├── cc-pv6z │ ├── cc-pvdz │ ├── cc-pvqz │ ├── cc-pvtz │ ├── chipman-dzp │ ├── v5z-bfd │ ├── vdz-ano-bfd │ ├── vdz-bfd │ ├── vqz-ano-bfd │ ├── vqz-bfd │ ├── vtz-ano-bfd │ └── vtz-bfd ├── ezfio_defaults │ ├── .empty │ └── .gitignore ├── pseudo │ ├── bfd │ ├── tm │ ├── tn_df │ ├── tn_df_sc │ └── tn_hf └── qp.png ├── doc ├── .gitignore ├── Makefile ├── code_architecture │ └── Script.md └── source │ ├── Intro.rst │ ├── _static │ └── .empty │ ├── code_doc_intro.rst │ ├── conf.py │ ├── index.rst │ ├── install.rst │ └── wavefunction.rst ├── include └── .empty ├── install ├── .gitignore ├── Downloads │ └── .empty ├── _build │ └── .gitignore └── scripts │ ├── build.sh │ ├── check_irp_version.sh │ ├── fetch_from_web.py │ ├── install_bats.sh │ ├── install_curl.sh │ ├── install_docopt.sh │ ├── install_emsl.sh │ ├── install_ezfio.sh │ ├── install_f77zmq.sh │ ├── install_gmp.sh │ ├── install_irpf90.sh │ ├── install_lapack.sh │ ├── install_m4.sh │ ├── install_ninja.sh │ ├── install_ocaml.sh │ ├── install_p_graphviz.sh │ ├── install_patch.sh │ ├── install_resultsFile.sh │ ├── install_zeromq.sh │ └── install_zlib.sh ├── lib └── .gitignore ├── lib64 ├── ocaml ├── .merlin ├── Address.ml ├── Atom.ml ├── Atom.mli ├── Basis.ml ├── Basis.mli ├── Bit.ml ├── Bit.mli ├── Bitlist.ml ├── Bitlist.mli ├── Charge.ml ├── Charge.mli ├── Determinant.ml ├── Determinant.mli ├── Element.ml ├── Element.mli ├── Excitation.ml ├── Excitation.mli ├── Gamess.ml ├── GaussianPrimitive.ml ├── Generic_input_of_rst.ml ├── Gto.ml ├── Gto.mli ├── Id.ml ├── Id.mli ├── Input.ml ├── Input_ao_basis.ml ├── Input_bi_integrals.ml ├── Input_bitmasks.ml ├── Input_determinants_by_hand.ml ├── Input_electrons.ml ├── Input_mo_basis.ml ├── Input_nuclei_by_hand.ml ├── Io_ext.ml ├── Long_basis.ml ├── Long_basis.mli ├── MO_class.ml ├── MO_class.mli ├── MO_label.ml ├── MO_label.mli ├── Makefile ├── Message.ml ├── Message_lexer.mll ├── Molecule.ml ├── Molecule.mli ├── Multiplicity.ml ├── Multiplicity.mli ├── Point3d.ml ├── Point3d.mli ├── Primitive.mli ├── Progress_bar.ml ├── Pseudo.ml ├── Qpackage.ml ├── Qputils.ml ├── Queuing_system.ml ├── Queuing_system.mli ├── README.rst ├── README_qp_edit.rst ├── Range.ml ├── Range.mli ├── String_ext.ml ├── Symmetry.ml ├── Symmetry.mli ├── TaskServer.ml ├── TaskServer.mli ├── To_md5.ml ├── Units.ml ├── Units.mli ├── Zmatrix.ml ├── _tags ├── create_git_sha1.sh ├── element_create_db.ml ├── qp_basis_clean.ml ├── qp_create_ezfio_from_xyz.ml ├── qp_create_guess.ml ├── qp_find_pi_space.ml ├── qp_overlap_of_wf.ml ├── qp_print.ml ├── qp_print_basis.ml ├── qp_run.ml ├── qp_set_mo_class.ml ├── qptypes_generator.ml ├── test_atom.ml ├── test_basis.ml ├── test_bitlist.ml ├── test_determinants.ml ├── test_elements.ml ├── test_excitation.ml ├── test_gto.ml ├── test_message.ml ├── test_mo_label.ml ├── test_molecule.ml ├── test_point3d.ml ├── test_pseudo.ml ├── test_queuing_system.ml ├── test_symmetry.ml ├── test_task_server.ml └── test_task_server.py ├── plugins ├── All_singles │ ├── EZFIO.cfg │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── all_1h_1p.irp.f │ ├── all_1h_1p_singles.irp.f │ ├── all_singles.irp.f │ └── tree_dependency.png ├── CAS_SD_ZMQ │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── cassd_zmq.irp.f │ ├── energy.irp.f │ ├── run_selection_slave.irp.f │ ├── selection.irp.f │ ├── selection_buffer.irp.f │ ├── selection_cassd_slave.irp.f │ ├── selection_types.f90 │ └── target_pt2_ratio_cassd.irp.f ├── CID │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── cid.irp.f │ ├── cid_lapack.irp.f │ └── tree_dependency.png ├── CID_SC2_selected │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── cid_sc2_selection.irp.f │ └── tree_dependency.png ├── CID_selected │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── cid_selected.irp.f │ └── tree_dependency.png ├── CIS │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── cis.irp.f │ ├── super_ci.irp.f │ └── tree_dependency.png ├── CISD │ ├── EZFIO.cfg │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── cisd.irp.f │ ├── cisd_lapack.irp.f │ └── tree_dependency.png ├── CISD_SC2_selected │ ├── EZFIO.cfg │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── cisd_sc2_selection.irp.f │ └── tree_dependency.png ├── CISD_selected │ ├── EZFIO.cfg │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── cisd_selected.irp.f │ └── tree_dependency.png ├── Casino │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── save_for_casino.irp.f │ └── tree_dependency.png ├── DFT_Utils │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── grid_density.irp.f │ ├── integration_3d.irp.f │ ├── integration_radial.irp.f │ ├── routines_roland.irp.f │ └── test_integration_3d_density.irp.f ├── DensityMatrix │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── density_matrix.irp.f │ └── det_num.irp.f ├── Dressed_Ref_Hamiltonian │ ├── Dressed_Ref_Hamiltonian.main.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── dressed_eigenvectors.irp.f │ ├── dressed_hamiltonian.irp.f │ └── print_CAS_effective_Hamiltonian.irp.f ├── FCIdump │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── fcidump.irp.f │ └── tree_dependency.png ├── FOBOCI │ ├── EZFIO.cfg │ ├── H_apply.irp.f │ ├── H_apply_dressed_autonom.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── SC2_1h1p.irp.f │ ├── all_singles.irp.f │ ├── all_singles_split.irp.f │ ├── collect_all_lmct.irp.f │ ├── corr_energy_2h2p.irp.f │ ├── create_1h_or_1p.irp.f │ ├── density_matrix.irp.f │ ├── diag_fock_inactiv_virt.irp.f │ ├── dress_simple.irp.f │ ├── fobo_coupled_ci.irp.f │ ├── fobo_diff_dm.irp.f │ ├── fobo_scf.irp.f │ ├── foboci_lmct_mlct_threshold_old.irp.f │ ├── foboci_reunion.irp.f │ ├── generators_restart_save.irp.f │ ├── modify_generators.irp.f │ ├── new_approach.irp.f │ ├── new_new_approach.irp.f │ ├── routine_new_approach.irp.f │ ├── routines_dressing.irp.f │ ├── routines_foboci.irp.f │ └── save_fock_diag_inactiv_virt.irp.f ├── FourIdx │ ├── four_index.irp.f │ └── four_index_sym.irp.f ├── Full_CI │ ├── EZFIO.cfg │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── full_ci.irp.f │ ├── target_pt2.irp.f │ ├── tree_dependency.png │ └── var_pt2_ratio.irp.f ├── Full_CI_ZMQ │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── dump_fci_iterations_value.irp.f │ ├── energy.irp.f │ ├── fci_zmq.irp.f │ ├── fci_zmq_nos.irp.f │ ├── pt2_slave.irp.f │ ├── pt2_stoch.irp.f │ ├── pt2_stoch_routines.irp.f │ ├── run_pt2_slave.irp.f │ ├── run_selection_slave.irp.f │ ├── selection.irp.f │ ├── selection_buffer.irp.f │ ├── selection_davidson_slave.irp.f │ ├── selection_slave.irp.f │ ├── selection_types.f90 │ ├── target_pt2_ratio_zmq.irp.f │ ├── target_pt2_zmq.irp.f │ ├── tree_dependency.png │ └── zmq_selection.irp.f ├── Full_CI_ZMQ_GPI2 │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ └── selection_davidson_slave_gpi2.irp.f ├── GPI2 │ └── broadcast.irp.f ├── Generators_CAS │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── generators.irp.f │ └── tree_dependency.png ├── Generators_full │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── generators.irp.f │ └── tree_dependency.png ├── Generators_restart │ ├── ASSUMPTIONS.rst │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── generators.irp.f │ └── tree_dependency.png ├── Hartree_Fock │ ├── DIIS.irp.f │ ├── EZFIO.cfg │ ├── Fock_matrix.irp.f │ ├── HF_density_matrix_ao.irp.f │ ├── Huckel_guess.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── Roothaan_Hall_SCF.irp.f │ ├── SCF.irp.f │ ├── SCF_old.irp.f │ ├── damping_SCF.irp.f │ ├── diagonalize_fock.irp.f │ ├── huckel.irp.f │ ├── localize_mos.irp.f │ └── tree_dependency.png ├── Hartree_Fock_SlaterDressed │ ├── EZFIO.cfg │ ├── LinearSystem.irp.f │ ├── SCF_dressed.irp.f │ ├── at_nucl.irp.f │ ├── dressing.irp.f │ ├── integrals.irp.f │ └── slater.irp.f ├── MP2 │ ├── EZFIO.cfg │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── mp2.irp.f │ ├── mp2_wf.irp.f │ └── tree_dependency.png ├── MRCC_Utils │ ├── EZFIO.cfg │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── amplitudes.irp.f │ ├── davidson.irp.f │ ├── mrcc_dress.irp.f │ ├── mrcc_general.irp.f │ ├── mrcc_utils.irp.f │ ├── multi_state.irp.f │ └── tree_dependency.png ├── MRPT │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── jm_mrpt2.irp.f │ └── print_1h2p.irp.f ├── MRPT_Utils │ ├── EZFIO.cfg │ ├── H_apply.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── density_matrix_based.irp.f │ ├── energies_cas.irp.f │ ├── excitations_cas.irp.f │ ├── fock_like_operators.irp.f │ ├── give_2h2p.irp.f │ ├── mrpt_dress.irp.f │ ├── mrpt_utils.irp.f │ ├── new_way.irp.f │ ├── new_way_second_order_coef.irp.f │ ├── psi_active_prov.irp.f │ ├── second_order_new.irp.f │ ├── second_order_new_2p.irp.f │ └── utils_bitmask.irp.f ├── MR_wf_analysis │ ├── analyze_one_det_connections.irp.f │ └── analyze_sr_wf.irp.f ├── Molden │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── print_mo.irp.f │ └── tree_dependency.png ├── OVB │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── ovb_components.irp.f │ └── print_ovb.irp.f ├── OVB_effective_Hamiltonian │ ├── NEEDED_CHILDREN_MODULES │ ├── OVB_effective_H.irp.f │ ├── README.rst │ ├── print_OVB_effective_H_diagonalized.irp.f │ ├── save_wf_only_ionic_and_1p_amplitudes.irp.f │ └── save_wf_only_neutral_and_1p_amplitudes.irp.f ├── Orbital_Entanglement │ ├── NEEDED_CHILDREN_MODULES │ ├── Orbital_Entanglement.irp.f │ ├── README.rst │ ├── print_entanglement.irp.f │ ├── tree_dependency │ └── tree_dependency.png ├── Perturbation │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── dipole_moment.irp.f │ ├── exc_max.irp.f │ ├── pert_sc2.irp.f │ ├── pert_single.irp.f │ ├── perturbation.irp.f │ ├── perturbation.template.f │ ├── pt2_equations.irp.f │ ├── pt2_new.irp.f │ ├── selection.irp.f │ ├── tree_dependency.png │ └── var_pt2_ratio_provider.irp.f ├── Properties │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── average.irp.f │ ├── delta_rho.irp.f │ ├── give_mos_at_r.irp.f │ ├── hyperfine_constants.irp.f │ ├── iunit_two_bod.irp.f │ ├── mulliken.irp.f │ ├── print_hcc.irp.f │ ├── print_mulliken.irp.f │ ├── print_spin_density.irp.f │ ├── properties.irp.f │ ├── provide_deltarho.irp.f │ ├── routines_test.irp.f │ ├── slater_rules_mono_electronic.irp.f │ ├── test_two_body_dm.irp.f │ └── tree_dependency.png ├── Psiref_CAS │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── overwrite_with_cas.irp.f │ ├── psi_ref.irp.f │ └── tree_dependency.png ├── Psiref_Utils │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── extract_ref.irp.f │ ├── psi_ref_excitations_operators.irp.f │ ├── psi_ref_utils.irp.f │ └── tree_dependency.png ├── QMC │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── densify_coefmatrix.irp.f │ ├── pot_ao_pseudo_ints.irp.f │ ├── pseudo.irp.f │ ├── qmc_create_wf.irp.f │ ├── qmc_e_curve.irp.f │ ├── qp_convert_qmcpack_to_ezfio.py │ ├── save_for_qmcchem.irp.f │ ├── save_for_qmcpack.irp.f │ ├── target_pt2_qmc.irp.f │ ├── tree_dependency.png │ └── truncate_wf_spin.irp.f ├── Selectors_CASSD │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ └── selectors.irp.f ├── Selectors_Utils │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── e_corr_selectors.irp.f │ ├── selectors.irp.f │ └── zmq.irp.f ├── Selectors_full │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── selectors.irp.f │ └── tree_dependency.png ├── Selectors_no_sorted │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── selectors.irp.f │ └── tree_dependency.png ├── SingleRefMethod │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── generators.irp.f │ └── tree_dependency.png ├── Symmetry │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── Symmetry.main.irp.f │ ├── aos.irp.f │ ├── find_sym.irp.f │ ├── nuclei.irp.f │ └── sym_operation.irp.f ├── analyze_wf │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── analyze_wf.irp.f │ ├── attachment.irp.f │ ├── dump_nto.irp.f │ ├── dump_one_body_mos.irp.f │ ├── occupation.irp.f │ └── phi_s.irp.f ├── loc_cele │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── loc.f │ ├── loc_cele.irp.f │ ├── loc_exchange_int.irp.f │ ├── loc_exchange_int_act.irp.f │ ├── loc_exchange_int_inact.irp.f │ ├── loc_exchange_int_virt.irp.f │ └── tree_dependency.png ├── mrcepa0 │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── dress_types.f90 │ ├── dressing.irp.f │ ├── dressing_slave.irp.f │ ├── energy.irp.f │ ├── mrcc.irp.f │ ├── mrcc_slave.irp.f │ ├── mrcc_sto.irp.f │ ├── mrcc_stoch.irp.f │ ├── mrcc_stoch_routines.irp.f │ ├── mrcc_zmq.irp.f │ ├── mrcepa0.irp.f │ ├── mrcepa0_general.irp.f │ ├── mrsc2.irp.f │ ├── run_mrcc_slave.irp.f │ └── tree_dependency.png └── read_integral │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── print_integrals_ao.irp.f │ ├── print_integrals_mo.irp.f │ ├── read_integrals_ao.irp.f │ ├── read_integrals_mo.irp.f │ └── tree_dependency.png ├── promela ├── collector.pml ├── fortran.pml ├── integrals.pml ├── model.pml ├── slave.pml └── task_server.pml ├── scripts ├── .gitignore ├── compilation │ ├── .gitignore │ ├── cache_compile.py │ ├── qp_create_ninja.py │ └── read_compilation_cfg.py ├── entanglement.py ├── ezfio_interface │ ├── ei_handler.py │ ├── ezfio_generate_ocaml.py │ ├── ezfio_generate_provider.py │ ├── qp_convert_ezfio_v1_to_v2.sh │ ├── qp_convert_output_to_ezfio.py │ └── qp_edit_template ├── generate_h_apply.py ├── get_basis.sh ├── make_binary.sh ├── module │ ├── create_executables_list.sh │ ├── create_gitignore.sh │ ├── module_handler.py │ ├── qp_module.py │ └── qp_update_readme.py ├── perturbation.py ├── pseudo │ ├── elts_num_ele.py │ └── put_pseudo_in_ezfio.py ├── qp_bitmasks.py ├── qp_set_frozen_core.py ├── qp_upgrade_ocaml.sh ├── save_current_mos.sh └── utility │ ├── decorator.py │ ├── get_groups.py │ ├── is_master_repository.py │ └── qp_path.py ├── src ├── AO_Basis │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── ao_overlap.irp.f │ ├── aos.irp.f │ ├── aos_value.irp.f │ ├── dimensions_integrals.irp.f │ ├── spherical_to_cartesian.irp.f │ └── tree_dependency.png ├── Bitmask │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── bitmask_cas_routines.irp.f │ ├── bitmasks.ezfio_config │ ├── bitmasks.irp.f │ ├── bitmasks_module.f90 │ ├── bitmasks_routines.irp.f │ ├── find_hole.irp.f │ ├── modify_bitmasks.irp.f │ ├── mpi.irp.f │ └── tree_dependency.png ├── Davidson │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── davidson_parallel.irp.f │ ├── davidson_slave.irp.f │ ├── diagonalization.irp.f │ ├── diagonalization_hs2.irp.f │ ├── diagonalize_CI.irp.f │ ├── diagonalize_restart_and_save_all_states.irp.f │ ├── diagonalize_restart_and_save_lowest_state.irp.f │ ├── diagonalize_restart_and_save_one_state.irp.f │ ├── find_reference.irp.f │ ├── guess_lowest_state.irp.f │ ├── parameters.irp.f │ ├── print_H_matrix_restart.irp.f │ ├── print_energy.irp.f │ └── u0Hu0.irp.f ├── Determinants │ ├── EZFIO.cfg │ ├── Fock_diag.irp.f │ ├── H_apply.irp.f │ ├── H_apply.template.f │ ├── H_apply_nozmq.template.f │ ├── H_apply_zmq.template.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── connected_to_ref.irp.f │ ├── create_excitations.irp.f │ ├── density_matrix.irp.f │ ├── determinants.irp.f │ ├── determinants_bitmasks.irp.f │ ├── diagonalize_restart_and_save_two_states.irp.f │ ├── excitations_utils.irp.f │ ├── filter_connected.irp.f │ ├── guess_doublet.irp.f │ ├── guess_singlet.irp.f │ ├── guess_triplet.irp.f │ ├── mo_energy_expval.irp.f │ ├── mono_excitations.irp.f │ ├── occ_pattern.irp.f │ ├── print_bitmask.irp.f │ ├── print_holes_particles.irp.f │ ├── print_wf.irp.f │ ├── psi_cas.irp.f │ ├── ref_bitmask.irp.f │ ├── s2.irp.f │ ├── save_HF_determinant.irp.f │ ├── save_natorb.irp.f │ ├── save_only_singles.irp.f │ ├── slater_rules.irp.f │ ├── spindeterminants.ezfio_config │ ├── spindeterminants.irp.f │ ├── tree_dependency.png │ ├── truncate_wf.irp.f │ ├── two_body_dm_map.irp.f │ ├── useful_for_ovb.irp.f │ ├── utils.irp.f │ └── zmq.irp.f ├── Electrons │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── electrons.irp.f │ └── tree_dependency.png ├── Ezfio_files │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── ezfio.irp.f │ ├── get_unit_and_open.irp.f │ ├── output.irp.f │ └── tree_dependency.png ├── FourIdx │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── four_index.irp.f │ ├── four_index_block.irp.f │ ├── four_index_slave.irp.f │ └── four_index_zmq.irp.f ├── Integrals_Bielec │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── ao_bi_integrals.irp.f │ ├── ao_bielec_integrals_in_map_slave.irp.f │ ├── four_idx_transform.irp.f │ ├── gauss_legendre.irp.f │ ├── integrals_3_index.irp.f │ ├── map_integrals.irp.f │ ├── mo_bi_integrals.irp.f │ ├── q_package.ezfio_config │ ├── qp_ao_ints.irp.f │ ├── read_write.irp.f │ ├── test_integrals.irp.f │ └── tree_dependency.png ├── Integrals_Monoelec │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── ao_mono_ints.irp.f │ ├── check_orthonormality.irp.f │ ├── kin_ao_ints.irp.f │ ├── kin_mo_ints.irp.f │ ├── mo_mono_ints.irp.f │ ├── orthonormalize.irp.f │ ├── pot_ao_ints.irp.f │ ├── pot_ao_pseudo_ints.irp.f │ ├── pot_mo_ints.irp.f │ ├── pot_mo_pseudo_ints.irp.f │ ├── pseudopot.f90 │ ├── read_write.irp.f │ ├── save_ortho_mos.irp.f │ ├── spread_dipole_ao.irp.f │ ├── spread_dipole_mo.irp.f │ └── tree_dependency.png ├── MOGuess │ ├── H_CORE_guess.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── h_core_guess_routine.irp.f │ ├── mo_ortho_lowdin.irp.f │ ├── pot_mo_ortho_canonical_ints.irp.f │ ├── pot_mo_ortho_lowdin_ints.irp.f │ └── tree_dependency.png ├── MO_Basis │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── ao_ortho_canonical.irp.f │ ├── cholesky_mo.irp.f │ ├── mo_overlap.irp.f │ ├── mo_permutation.irp.f │ ├── mos.irp.f │ ├── print_aos.irp.f │ ├── print_mo_in_space.irp.f │ ├── swap_mos.irp.f │ ├── tree_dependency.png │ └── utils.irp.f ├── MPI │ ├── .gitignore │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ └── mpi.irp.f ├── Nuclei │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── atomic_radii.irp.f │ ├── inertia.irp.f │ ├── nuclei.irp.f │ └── tree_dependency.png ├── Pseudo │ ├── EZFIO.cfg │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ └── tree_dependency.png ├── README.rst ├── Utils │ ├── LinearAlgebra.irp.f │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── angular_integration.irp.f │ ├── constants.include.F │ ├── extrapolation.irp.f │ ├── fortran_mmap.c │ ├── integration.irp.f │ ├── map_functions.irp.f │ ├── map_module.f90 │ ├── mmap.f90 │ ├── need.irp.f │ ├── one_e_integration.irp.f │ ├── progress.irp.f │ ├── sort.irp.f │ ├── transpose.irp.f │ ├── tree_dependency.png │ └── util.irp.f └── ZMQ │ ├── NEEDED_CHILDREN_MODULES │ ├── README.rst │ ├── f77_zmq_module.f90 │ ├── put_get.irp.f │ ├── tree_dependency.png │ └── utils.irp.f └── tests ├── bats ├── cassd.bats ├── common.bats.sh ├── convert.bats ├── fci.bats ├── foboci.bats ├── hf.bats ├── mrcepa0.bats └── pseudo.bats ├── bats_to_sh.py ├── input ├── HBO.out ├── HBO.xyz ├── dhno.xyz ├── h2o.log └── h2o.xyz └── run_tests.sh /.gitattributes: -------------------------------------------------------------------------------- 1 | *.irp.f linguist-language=IRPF90 2 | *.f linguist-language=Fortran 3 | *.ml linguist-language=Ocaml 4 | *.sh linguist-language=Bash 5 | *.py linguist-language=Python 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | quantum_package.rc 2 | config/ifort.cfg 3 | quantum_package_static.tar.gz 4 | build.ninja 5 | .ninja_log 6 | .ninja_deps 7 | bin/ 8 | lib/ 9 | config/qp_create_ninja.pickle 10 | src/*/.gitignore 11 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | #sudo: true 2 | #before_script: 3 | # - sudo apt-get update -q 4 | # - sudo apt-get install gfortran liblapack-dev gcc 5 | # - sudo apt-get install graphviz 6 | 7 | os: linux 8 | 9 | dist: trusty 10 | 11 | sudo: false 12 | 13 | compiler: gfortran 14 | 15 | addons: 16 | apt: 17 | packages: 18 | - gfortran 19 | - gcc 20 | # - liblapack-dev 21 | # - libblas-dev 22 | - graphviz 23 | 24 | cache: 25 | directories: 26 | - $HOME/.opam/ 27 | 28 | language: python 29 | python: 30 | - "2.6" 31 | 32 | script: 33 | - ./configure ./config/travis.cfg 34 | - source ./quantum_package.rc ; qp_module.py install Full_CI Full_CI_ZMQ Hartree_Fock CAS_SD_ZMQ mrcepa0 All_singles 35 | - source ./quantum_package.rc ; cd ~ ; install_lapack.sh ; cd $QP_ROOT 36 | - source ./quantum_package.rc ; ninja 37 | - source ./quantum_package.rc ; cd ocaml ; make ; cd - 38 | - source ./quantum_package.rc ; cd tests ; ./run_tests.sh -v 39 | -------------------------------------------------------------------------------- /bin/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/bin/.empty -------------------------------------------------------------------------------- /bin/qp_gaspi_run: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | QP_ROOT=$( cd $(dirname "${BASH_SOURCE}")/.. ; pwd -P ) 4 | source $HOME/.bashrc 5 | source $QP_ROOT/quantum_package.rc 6 | exec $QP_ROOT/ocaml/qp_run $@ 7 | -------------------------------------------------------------------------------- /data/.gitignore: -------------------------------------------------------------------------------- 1 | executables 2 | -------------------------------------------------------------------------------- /data/README.rst: -------------------------------------------------------------------------------- 1 | ==== 2 | Data 3 | ==== 4 | 5 | 6 | This directory contains all the data files needed for the Quantum Package. 7 | 8 | The `basis` directory contains some of the most popular basis sets, and the 9 | `pseudo` directory contains pseudopotential data. 10 | -------------------------------------------------------------------------------- /data/Symmetry/C1: -------------------------------------------------------------------------------- 1 | Group C1 2 | n 1 3 | 4 | Irred Operation 5 | 1 A E 6 | 7 | Table 8 | 1 9 | 1 1.00000 10 | 11 | -------------------------------------------------------------------------------- /data/Symmetry/C10: -------------------------------------------------------------------------------- 1 | Group C10 2 | n 6 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B C10 7 | 3 E1 C5 8 | 4 E2 C10^3 9 | 5 E3 C5^2 10 | 6 E4 C2 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 16 | 3 2.00000 1.61800 0.61800 -0.61800 -1.61800 -2.00000 17 | 4 2.00000 0.61800 -1.61800 -1.61800 0.61800 2.00000 18 | 5 2.00000 -0.61800 -1.61800 1.61800 0.61800 -2.00000 19 | 6 2.00000 -1.61800 0.61800 0.61800 -1.61800 2.00000 20 | 21 | -------------------------------------------------------------------------------- /data/Symmetry/C10v: -------------------------------------------------------------------------------- 1 | Group C10v 2 | n 8 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C10 7 | 3 B1 C5 8 | 4 B2 C10^3 9 | 5 E1 C5^2 10 | 6 E2 C2 11 | 7 E3 sv 12 | 8 E4 sd 13 | 14 | Table 15 | 1 2 3 4 5 6 7 8 16 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 17 | 2 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 -1.00000 -1.00000 18 | 3 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 19 | 4 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 -1.00000 1.00000 20 | 5 2.00000 1.61800 0.61800 -0.61800 -1.61800 -2.00000 0.00000 0.00000 21 | 6 2.00000 0.61800 -1.61800 -1.61800 0.61800 2.00000 0.00000 0.00000 22 | 7 2.00000 -0.61800 -1.61800 1.61800 0.61800 -2.00000 0.00000 0.00000 23 | 8 2.00000 -1.61800 0.61800 0.61800 -1.61800 2.00000 0.00000 0.00000 24 | 25 | -------------------------------------------------------------------------------- /data/Symmetry/C11: -------------------------------------------------------------------------------- 1 | Group C11 2 | n 6 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 E1 C11 7 | 3 E2 C11^2 8 | 4 E3 C11^3 9 | 5 E4 C11^4 10 | 6 E5 C11^5 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 2.00000 1.68250 0.83080 -0.28460 -1.30970 -1.91890 16 | 3 2.00000 0.83080 -1.30970 -1.91890 -0.28460 1.68250 17 | 4 2.00000 -0.28460 -1.91890 0.83080 1.68250 -1.30970 18 | 5 2.00000 -1.30970 -0.28460 1.68250 -1.91890 0.83080 19 | 6 2.00000 -1.91890 1.68250 -1.30970 0.83080 -0.28460 20 | 21 | -------------------------------------------------------------------------------- /data/Symmetry/C11v: -------------------------------------------------------------------------------- 1 | Group C11v 2 | n 7 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C11 7 | 3 E1 C11^2 8 | 4 E2 C11^3 9 | 5 E3 C11^4 10 | 6 E4 C11^5 11 | 7 E5 sv 12 | 13 | Table 14 | 1 2 3 4 5 6 7 15 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 16 | 2 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 -1.00000 17 | 3 2.00000 1.68250 0.83080 -0.28460 -1.30970 -1.91890 0.00000 18 | 4 2.00000 0.83080 -1.30970 -1.91890 -0.28460 1.68250 0.00000 19 | 5 2.00000 -0.28460 -1.91890 0.83080 1.68250 -1.30970 0.00000 20 | 6 2.00000 -1.30970 -0.28460 1.68250 -1.91890 0.83080 0.00000 21 | 7 2.00000 -1.91890 1.68250 -1.30970 0.83080 -0.28460 0.00000 22 | 23 | -------------------------------------------------------------------------------- /data/Symmetry/C12: -------------------------------------------------------------------------------- 1 | Group C12 2 | n 7 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B C12 7 | 3 E1 C6 8 | 4 E2 C4 9 | 5 E3 C3 10 | 6 E4 C12^5 11 | 7 E5 C2 12 | 13 | Table 14 | 1 2 3 4 5 6 7 15 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 16 | 2 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 1.00000 17 | 3 2.00000 1.73200 1.00000 0.00000 -1.00000 -1.73200 -2.00000 18 | 4 2.00000 1.00000 -1.00000 -2.00000 -1.00000 1.00000 2.00000 19 | 5 2.00000 0.00000 -2.00000 0.00000 2.00000 0.00000 -2.00000 20 | 6 2.00000 -1.00000 -1.00000 2.00000 -1.00000 -1.00000 2.00000 21 | 7 2.00000 -1.73200 1.00000 0.00000 -1.00000 1.73200 -2.00000 22 | 23 | -------------------------------------------------------------------------------- /data/Symmetry/C13: -------------------------------------------------------------------------------- 1 | Group C13 2 | n 7 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 E1 C13 7 | 3 E2 C13^2 8 | 4 E3 C13^3 9 | 5 E4 C13^4 10 | 6 E5 C13^5 11 | 7 E6 C13^6 12 | 13 | Table 14 | 1 2 3 4 5 6 7 15 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 16 | 2 2.00000 1.77090 1.13610 0.24100 -0.70920 -1.49700 -1.94180 17 | 3 2.00000 1.13610 -0.70920 -1.94180 -1.49700 0.24100 1.77090 18 | 4 2.00000 0.24100 -1.94180 -0.70920 1.77090 1.13610 -1.49700 19 | 5 2.00000 -0.70920 -1.49700 1.77090 0.24100 -1.94180 1.13610 20 | 6 2.00000 -1.49700 0.24100 1.13610 -1.94180 1.77090 -0.70920 21 | 7 2.00000 -1.94180 1.77090 -1.49700 1.13610 -0.70920 0.24100 22 | 23 | -------------------------------------------------------------------------------- /data/Symmetry/C13v: -------------------------------------------------------------------------------- 1 | Group C13v 2 | n 8 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C13 7 | 3 E1 C13^2 8 | 4 E2 C13^3 9 | 5 E3 C13^4 10 | 6 E4 C13^5 11 | 7 E5 C13^6 12 | 8 E6 sv 13 | 14 | Table 15 | 1 2 3 4 5 6 7 8 16 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 17 | 2 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 -1.00000 18 | 3 2.00000 1.77090 1.13610 0.24100 -0.70920 -1.49700 -1.94180 0.00000 19 | 4 2.00000 1.13610 -0.70920 -1.94180 -1.49700 0.24100 1.77090 0.00000 20 | 5 2.00000 0.24100 -1.94180 -0.70920 1.77090 1.13610 -1.49700 0.00000 21 | 6 2.00000 -0.70920 -1.49700 1.77090 0.24100 -1.94180 1.13610 0.00000 22 | 7 2.00000 -1.49700 0.24100 1.13610 -1.94180 1.77090 -0.70920 0.00000 23 | 8 2.00000 -1.94180 1.77090 -1.49700 1.13610 -0.70920 0.24100 0.00000 24 | 25 | -------------------------------------------------------------------------------- /data/Symmetry/C14: -------------------------------------------------------------------------------- 1 | Group C14 2 | n 8 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B C14 7 | 3 E1 C7 8 | 4 E2 C14^3 9 | 5 E3 C7^2 10 | 6 E4 C14^5 11 | 7 E5 C7^3 12 | 8 E6 C2 13 | 14 | Table 15 | 1 2 3 4 5 6 7 8 16 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 17 | 2 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 18 | 3 2.00000 1.80190 1.24690 0.44500 -0.44500 -1.24690 -1.80190 -2.00000 19 | 4 2.00000 1.24690 -0.44500 -1.80190 -1.80190 -0.44500 1.24690 2.00000 20 | 5 2.00000 0.44500 -1.80190 -1.24690 1.24690 1.80190 -0.44500 -2.00000 21 | 6 2.00000 -0.44500 -1.80190 1.24690 1.24690 -1.80190 -0.44500 2.00000 22 | 7 2.00000 -1.24690 -0.44500 1.80190 -1.80190 0.44500 1.24690 -2.00000 23 | 8 2.00000 -1.80190 1.24690 -0.44500 -0.44500 1.24690 -1.80190 2.00000 24 | 25 | -------------------------------------------------------------------------------- /data/Symmetry/C15: -------------------------------------------------------------------------------- 1 | Group C15 2 | n 8 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 E1 C15 7 | 3 E2 C15^2 8 | 4 E3 C5 9 | 5 E4 C15^4 10 | 6 E5 C3 11 | 7 E6 C5^2 12 | 8 E7 C15^7 13 | 14 | Table 15 | 1 2 3 4 5 6 7 8 16 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 17 | 2 2.00000 1.82700 1.33820 0.61800 -0.20900 -1.00000 -1.61800 -1.95630 18 | 3 2.00000 1.33820 -0.20900 -1.61800 -1.95630 -1.00000 0.61800 1.82700 19 | 4 2.00000 0.61800 -1.61800 -1.61800 0.61800 2.00000 0.61800 -1.61800 20 | 5 2.00000 -0.20900 -1.95630 0.61800 1.82700 -1.00000 -1.61800 1.33820 21 | 6 2.00000 -1.00000 -1.00000 2.00000 -1.00000 -1.00000 2.00000 -1.00000 22 | 7 2.00000 -1.61800 0.61800 0.61800 -1.61800 2.00000 -1.61800 0.61800 23 | 8 2.00000 -1.95630 1.82700 -1.61800 1.33820 -1.00000 0.61800 -0.20900 24 | 25 | -------------------------------------------------------------------------------- /data/Symmetry/C1h: -------------------------------------------------------------------------------- 1 | Group C1h 2 | n 2 3 | 4 | Irred Operation 5 | 1 A' E 6 | 2 A" sh 7 | 8 | Table 9 | 1 2 10 | 1 1.00000 1.00000 11 | 2 1.00000 -1.00000 12 | 13 | -------------------------------------------------------------------------------- /data/Symmetry/C1v: -------------------------------------------------------------------------------- 1 | Group C1v 2 | n 2 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 sv 7 | 8 | Table 9 | 1 2 10 | 1 1.00000 1.00000 11 | 2 1.00000 -1.00000 12 | 13 | -------------------------------------------------------------------------------- /data/Symmetry/C2: -------------------------------------------------------------------------------- 1 | Group C2 2 | n 2 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B C2 7 | 8 | Table 9 | 1 2 10 | 1 1.00000 1.00000 11 | 2 1.00000 -1.00000 12 | 13 | -------------------------------------------------------------------------------- /data/Symmetry/C2h: -------------------------------------------------------------------------------- 1 | Group C2h 2 | n 4 3 | 4 | Irred Operation 5 | 1 Ag E 6 | 2 Bg C2 7 | 3 Au i 8 | 4 Bu sh 9 | 10 | Table 11 | 1 2 3 4 12 | 1 1.00000 1.00000 1.00000 1.00000 13 | 2 1.00000 -1.00000 1.00000 -1.00000 14 | 3 1.00000 1.00000 -1.00000 -1.00000 15 | 4 1.00000 -1.00000 -1.00000 1.00000 16 | 17 | -------------------------------------------------------------------------------- /data/Symmetry/C2v: -------------------------------------------------------------------------------- 1 | Group C2v 2 | n 4 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C2 7 | 3 B1 sv 8 | 4 B2 sd 9 | 10 | Table 11 | 1 2 3 4 12 | 1 1.00000 1.00000 1.00000 1.00000 13 | 2 1.00000 1.00000 -1.00000 -1.00000 14 | 3 1.00000 -1.00000 1.00000 -1.00000 15 | 4 1.00000 -1.00000 -1.00000 1.00000 16 | 17 | -------------------------------------------------------------------------------- /data/Symmetry/C3: -------------------------------------------------------------------------------- 1 | Group C3 2 | n 2 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 E C3 7 | 8 | Table 9 | 1 2 10 | 1 1.00000 1.00000 11 | 2 2.00000 -1.00000 12 | 13 | -------------------------------------------------------------------------------- /data/Symmetry/C3h: -------------------------------------------------------------------------------- 1 | Group C3h 2 | n 4 3 | 4 | Irred Operation 5 | 1 A' E 6 | 2 A" C3 7 | 3 E' sh 8 | 4 E" S3 9 | 10 | Table 11 | 1 2 3 4 12 | 1 1.00000 1.00000 1.00000 1.00000 13 | 2 1.00000 1.00000 -1.00000 -1.00000 14 | 3 2.00000 -1.00000 2.00000 -1.00000 15 | 4 2.00000 -1.00000 -2.00000 1.00000 16 | 17 | -------------------------------------------------------------------------------- /data/Symmetry/C3v: -------------------------------------------------------------------------------- 1 | Group C3v 2 | n 3 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C3 7 | 3 E sv 8 | 9 | Table 10 | 1 2 3 11 | 1 1.00000 1.00000 1.00000 12 | 2 1.00000 1.00000 -1.00000 13 | 3 2.00000 -1.00000 0.00000 14 | 15 | -------------------------------------------------------------------------------- /data/Symmetry/C4: -------------------------------------------------------------------------------- 1 | Group C4 2 | n 3 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B C4 7 | 3 E C2 8 | 9 | Table 10 | 1 2 3 11 | 1 1.00000 1.00000 1.00000 12 | 2 1.00000 -1.00000 1.00000 13 | 3 2.00000 0.00000 -2.00000 14 | 15 | -------------------------------------------------------------------------------- /data/Symmetry/C4h: -------------------------------------------------------------------------------- 1 | Group C4h 2 | n 6 3 | 4 | Irred Operation 5 | 1 Ag E 6 | 2 Bg C4 7 | 3 Eg C2 8 | 4 Au i 9 | 5 Bu S4 10 | 6 Eu sh 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 1.00000 -1.00000 1.00000 1.00000 -1.00000 1.00000 16 | 3 2.00000 0.00000 -2.00000 2.00000 0.00000 -2.00000 17 | 4 1.00000 1.00000 1.00000 -1.00000 -1.00000 -1.00000 18 | 5 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 19 | 6 2.00000 0.00000 -2.00000 -2.00000 0.00000 2.00000 20 | 21 | -------------------------------------------------------------------------------- /data/Symmetry/C4v: -------------------------------------------------------------------------------- 1 | Group C4v 2 | n 5 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C4 7 | 3 B1 C2 8 | 4 B2 sv 9 | 5 E sd 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 1.00000 1.00000 1.00000 -1.00000 -1.00000 15 | 3 1.00000 -1.00000 1.00000 1.00000 -1.00000 16 | 4 1.00000 -1.00000 1.00000 -1.00000 1.00000 17 | 5 2.00000 0.00000 -2.00000 0.00000 0.00000 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/C5: -------------------------------------------------------------------------------- 1 | Group C5 2 | n 3 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 E1 C5 7 | 3 E2 C5^2 8 | 9 | Table 10 | 1 2 3 11 | 1 1.00000 1.00000 1.00000 12 | 2 2.00000 0.61800 -1.61800 13 | 3 2.00000 -1.61800 0.61800 14 | 15 | -------------------------------------------------------------------------------- /data/Symmetry/C5h: -------------------------------------------------------------------------------- 1 | Group C5h 2 | n 6 3 | 4 | Irred Operation 5 | 1 A' E 6 | 2 A" C5 7 | 3 E1' C5^2 8 | 4 E1" sh 9 | 5 E2' S5 10 | 6 E2" S5^3 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 1.00000 1.00000 1.00000 -1.00000 -1.00000 -1.00000 16 | 3 2.00000 0.61800 -1.61800 2.00000 0.61800 -1.61800 17 | 4 2.00000 0.61800 -1.61800 -2.00000 -0.61800 1.61800 18 | 5 2.00000 -1.61800 0.61800 2.00000 -1.61800 0.61800 19 | 6 2.00000 -1.61800 0.61800 -2.00000 1.61800 -0.61800 20 | 21 | -------------------------------------------------------------------------------- /data/Symmetry/C5v: -------------------------------------------------------------------------------- 1 | Group C5v 2 | n 4 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C5 7 | 3 E1 C5^2 8 | 4 E2 sv 9 | 10 | Table 11 | 1 2 3 4 12 | 1 1.00000 1.00000 1.00000 1.00000 13 | 2 1.00000 1.00000 1.00000 -1.00000 14 | 3 2.00000 0.61800 -1.61800 0.00000 15 | 4 2.00000 -1.61800 0.61800 0.00000 16 | 17 | -------------------------------------------------------------------------------- /data/Symmetry/C6: -------------------------------------------------------------------------------- 1 | Group C6 2 | n 4 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B C6 7 | 3 E1 C3 8 | 4 E2 C2 9 | 10 | Table 11 | 1 2 3 4 12 | 1 1.00000 1.00000 1.00000 1.00000 13 | 2 1.00000 -1.00000 1.00000 -1.00000 14 | 3 2.00000 1.00000 -1.00000 -2.00000 15 | 4 2.00000 -1.00000 -1.00000 2.00000 16 | 17 | -------------------------------------------------------------------------------- /data/Symmetry/C6h: -------------------------------------------------------------------------------- 1 | Group C6h 2 | n 8 3 | 4 | Irred Operation 5 | 1 Ag E 6 | 2 Bg C6 7 | 3 E1g C3 8 | 4 E2g C2 9 | 5 Au i 10 | 6 Bu S6 11 | 7 E1u S3 12 | 8 E2u sh 13 | 14 | Table 15 | 1 2 3 4 5 6 7 8 16 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 17 | 2 1.00000 -1.00000 1.00000 -1.00000 1.00000 1.00000 -1.00000 -1.00000 18 | 3 2.00000 1.00000 -1.00000 -2.00000 2.00000 -1.00000 1.00000 -2.00000 19 | 4 2.00000 -1.00000 -1.00000 2.00000 2.00000 -1.00000 -1.00000 2.00000 20 | 5 1.00000 1.00000 1.00000 1.00000 -1.00000 -1.00000 -1.00000 -1.00000 21 | 6 1.00000 -1.00000 1.00000 -1.00000 -1.00000 -1.00000 1.00000 1.00000 22 | 7 2.00000 1.00000 -1.00000 -2.00000 -2.00000 1.00000 -1.00000 2.00000 23 | 8 2.00000 -1.00000 -1.00000 2.00000 -2.00000 1.00000 1.00000 -2.00000 24 | 25 | -------------------------------------------------------------------------------- /data/Symmetry/C6v: -------------------------------------------------------------------------------- 1 | Group C6v 2 | n 6 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C6 7 | 3 B1 C3 8 | 4 B2 C2 9 | 5 E1 sv 10 | 6 E2 sd 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 1.00000 1.00000 1.00000 1.00000 -1.00000 -1.00000 16 | 3 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 17 | 4 1.00000 -1.00000 1.00000 -1.00000 -1.00000 1.00000 18 | 5 2.00000 1.00000 -1.00000 -2.00000 0.00000 0.00000 19 | 6 2.00000 -1.00000 -1.00000 2.00000 0.00000 0.00000 20 | 21 | -------------------------------------------------------------------------------- /data/Symmetry/C7: -------------------------------------------------------------------------------- 1 | Group C7 2 | n 4 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 E1 C7 7 | 3 E2 C7^2 8 | 4 E3 C7^3 9 | 10 | Table 11 | 1 2 3 4 12 | 1 1.00000 1.00000 1.00000 1.00000 13 | 2 2.00000 1.24690 -0.44500 -1.80190 14 | 3 2.00000 -0.44500 -1.80190 1.24690 15 | 4 2.00000 -1.80190 1.24690 -0.44500 16 | 17 | -------------------------------------------------------------------------------- /data/Symmetry/C7h: -------------------------------------------------------------------------------- 1 | Group C7h 2 | n 8 3 | 4 | Irred Operation 5 | 1 A' E 6 | 2 A" C7 7 | 3 E1' C7^2 8 | 4 E1" C7^3 9 | 5 E2' sh 10 | 6 E2" S7 11 | 7 E3' S7^3 12 | 8 E3" S7^5 13 | 14 | Table 15 | 1 2 3 4 5 6 7 8 16 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 17 | 2 1.00000 1.00000 1.00000 1.00000 -1.00000 -1.00000 -1.00000 -1.00000 18 | 3 2.00000 1.24690 -0.44500 -1.80190 2.00000 1.24690 -1.80190 -0.44500 19 | 4 2.00000 1.24690 -0.44500 -1.80190 -2.00000 -1.24690 1.80190 0.44500 20 | 5 2.00000 -0.44500 -1.80190 1.24690 2.00000 -0.44500 1.24690 -1.80190 21 | 6 2.00000 -0.44500 -1.80190 1.24690 -2.00000 0.44500 -1.24690 1.80190 22 | 7 2.00000 -1.80190 1.24690 -0.44500 2.00000 -1.80190 -0.44500 1.24690 23 | 8 2.00000 -1.80190 1.24690 -0.44500 -2.00000 1.80190 0.44500 -1.24690 24 | 25 | -------------------------------------------------------------------------------- /data/Symmetry/C7v: -------------------------------------------------------------------------------- 1 | Group C7v 2 | n 5 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C7 7 | 3 E1 C7^2 8 | 4 E2 C7^3 9 | 5 E3 sv 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 1.00000 1.00000 1.00000 1.00000 -1.00000 15 | 3 2.00000 1.24690 -0.44500 -1.80190 0.00000 16 | 4 2.00000 -0.44500 -1.80190 1.24690 0.00000 17 | 5 2.00000 -1.80190 1.24690 -0.44500 0.00000 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/C8: -------------------------------------------------------------------------------- 1 | Group C8 2 | n 5 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B C8 7 | 3 E1 C4 8 | 4 E2 C8^3 9 | 5 E3 C2 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 1.00000 -1.00000 1.00000 -1.00000 1.00000 15 | 3 2.00000 1.41420 0.00000 -1.41420 -2.00000 16 | 4 2.00000 0.00000 -2.00000 0.00000 2.00000 17 | 5 2.00000 -1.41420 0.00000 1.41420 -2.00000 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/C8v: -------------------------------------------------------------------------------- 1 | Group C8v 2 | n 7 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C8 7 | 3 B1 C4 8 | 4 B2 C8^3 9 | 5 E1 C2 10 | 6 E2 sv 11 | 7 E3 sd 12 | 13 | Table 14 | 1 2 3 4 5 6 7 15 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 16 | 2 1.00000 1.00000 1.00000 1.00000 1.00000 -1.00000 -1.00000 17 | 3 1.00000 -1.00000 1.00000 -1.00000 1.00000 1.00000 -1.00000 18 | 4 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 1.00000 19 | 5 2.00000 1.41420 0.00000 -1.41420 -2.00000 0.00000 0.00000 20 | 6 2.00000 0.00000 -2.00000 0.00000 2.00000 0.00000 0.00000 21 | 7 2.00000 -1.41420 0.00000 1.41420 -2.00000 0.00000 0.00000 22 | 23 | -------------------------------------------------------------------------------- /data/Symmetry/C9: -------------------------------------------------------------------------------- 1 | Group C9 2 | n 5 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 E1 C9 7 | 3 E2 C9^2 8 | 4 E3 C3 9 | 5 E4 C9^4 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 2.00000 1.53200 0.34730 -1.00000 -1.87930 15 | 3 2.00000 0.34730 -1.87930 -1.00000 1.53200 16 | 4 2.00000 -1.00000 -1.00000 2.00000 -1.00000 17 | 5 2.00000 -1.87930 1.53200 -1.00000 0.34730 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/C9v: -------------------------------------------------------------------------------- 1 | Group C9v 2 | n 6 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C9 7 | 3 E1 C9^2 8 | 4 E2 C3 9 | 5 E3 C9^4 10 | 6 E4 sv 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 1.00000 1.00000 1.00000 1.00000 1.00000 -1.00000 16 | 3 2.00000 1.53200 0.34730 -1.00000 -1.87930 0.00000 17 | 4 2.00000 0.34730 -1.87930 -1.00000 1.53200 0.00000 18 | 5 2.00000 -1.00000 -1.00000 2.00000 -1.00000 0.00000 19 | 6 2.00000 -1.87930 1.53200 -1.00000 0.34730 0.00000 20 | 21 | -------------------------------------------------------------------------------- /data/Symmetry/Ci: -------------------------------------------------------------------------------- 1 | Group Ci 2 | n 2 3 | 4 | Irred Operation 5 | 1 Ag E 6 | 2 Au i 7 | 8 | Table 9 | 1 2 10 | 1 1.00000 1.00000 11 | 2 1.00000 -1.00000 12 | 13 | -------------------------------------------------------------------------------- /data/Symmetry/Cs: -------------------------------------------------------------------------------- 1 | Group Cs 2 | n 2 3 | 4 | Irred Operation 5 | 1 A' E 6 | 2 A" sh 7 | 8 | Table 9 | 1 2 10 | 1 1.00000 1.00000 11 | 2 1.00000 -1.00000 12 | 13 | -------------------------------------------------------------------------------- /data/Symmetry/D1: -------------------------------------------------------------------------------- 1 | Group D1 2 | n 2 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C2' 7 | 8 | Table 9 | 1 2 10 | 1 1.00000 1.00000 11 | 2 1.00000 -1.00000 12 | 13 | -------------------------------------------------------------------------------- /data/Symmetry/D11: -------------------------------------------------------------------------------- 1 | Group D11 2 | n 7 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C11 7 | 3 E1 C11^2 8 | 4 E2 C11^3 9 | 5 E3 C11^4 10 | 6 E4 C11^5 11 | 7 E5 C2' 12 | 13 | Table 14 | 1 2 3 4 5 6 7 15 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 16 | 2 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 -1.00000 17 | 3 2.00000 1.68250 0.83080 -0.28460 -1.30970 -1.91890 0.00000 18 | 4 2.00000 0.83080 -1.30970 -1.91890 -0.28460 1.68250 0.00000 19 | 5 2.00000 -0.28460 -1.91890 0.83080 1.68250 -1.30970 0.00000 20 | 6 2.00000 -1.30970 -0.28460 1.68250 -1.91890 0.83080 0.00000 21 | 7 2.00000 -1.91890 1.68250 -1.30970 0.83080 -0.28460 0.00000 22 | 23 | -------------------------------------------------------------------------------- /data/Symmetry/D1d: -------------------------------------------------------------------------------- 1 | Group D1d 2 | n 4 3 | 4 | Irred Operation 5 | 1 A1g E 6 | 2 A2g C2' 7 | 3 A1u i 8 | 4 A2u sd 9 | 10 | Table 11 | 1 2 3 4 12 | 1 1.00000 1.00000 1.00000 1.00000 13 | 2 1.00000 -1.00000 1.00000 -1.00000 14 | 3 1.00000 1.00000 -1.00000 -1.00000 15 | 4 1.00000 -1.00000 -1.00000 1.00000 16 | 17 | -------------------------------------------------------------------------------- /data/Symmetry/D1h: -------------------------------------------------------------------------------- 1 | Group D1h 2 | n 4 3 | 4 | Irred Operation 5 | 1 A1' E 6 | 2 A1" C2' 7 | 3 A2' sh 8 | 4 A2" sv 9 | 10 | Table 11 | 1 2 3 4 12 | 1 1.00000 1.00000 1.00000 1.00000 13 | 2 1.00000 1.00000 -1.00000 -1.00000 14 | 3 1.00000 -1.00000 1.00000 -1.00000 15 | 4 1.00000 -1.00000 -1.00000 1.00000 16 | 17 | -------------------------------------------------------------------------------- /data/Symmetry/D2: -------------------------------------------------------------------------------- 1 | Group D2 2 | n 4 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B1 C2 7 | 3 B2 C2' 8 | 4 B3 C2" 9 | 10 | Table 11 | 1 2 3 4 12 | 1 1.00000 1.00000 1.00000 1.00000 13 | 2 1.00000 1.00000 -1.00000 -1.00000 14 | 3 1.00000 -1.00000 -1.00000 1.00000 15 | 4 1.00000 -1.00000 1.00000 -1.00000 16 | 17 | -------------------------------------------------------------------------------- /data/Symmetry/D2d: -------------------------------------------------------------------------------- 1 | Group D2d 2 | n 5 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 S4 7 | 3 B1 C2 8 | 4 B2 C2' 9 | 5 E sd 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 1.00000 1.00000 1.00000 -1.00000 -1.00000 15 | 3 1.00000 -1.00000 1.00000 1.00000 -1.00000 16 | 4 1.00000 -1.00000 1.00000 -1.00000 1.00000 17 | 5 2.00000 0.00000 -2.00000 0.00000 0.00000 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/D3: -------------------------------------------------------------------------------- 1 | Group D3 2 | n 3 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C3 7 | 3 E C2' 8 | 9 | Table 10 | 1 2 3 11 | 1 1.00000 1.00000 1.00000 12 | 2 1.00000 1.00000 -1.00000 13 | 3 2.00000 -1.00000 0.00000 14 | 15 | -------------------------------------------------------------------------------- /data/Symmetry/D3d: -------------------------------------------------------------------------------- 1 | Group D3d 2 | n 6 3 | 4 | Irred Operation 5 | 1 A1g E 6 | 2 A2g C3 7 | 3 Eg C2' 8 | 4 A1u i 9 | 5 A2u S6 10 | 6 Eu sd 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 1.00000 1.00000 -1.00000 1.00000 1.00000 -1.00000 16 | 3 2.00000 -1.00000 0.00000 2.00000 -1.00000 0.00000 17 | 4 1.00000 1.00000 1.00000 -1.00000 -1.00000 -1.00000 18 | 5 1.00000 1.00000 -1.00000 -1.00000 -1.00000 1.00000 19 | 6 2.00000 -1.00000 0.00000 -2.00000 1.00000 0.00000 20 | 21 | -------------------------------------------------------------------------------- /data/Symmetry/D3h: -------------------------------------------------------------------------------- 1 | Group D3h 2 | n 6 3 | 4 | Irred Operation 5 | 1 A1' E 6 | 2 A1" C3 7 | 3 A2' C2' 8 | 4 A2" sh 9 | 5 E' S3 10 | 6 E" sv 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 1.00000 1.00000 1.00000 -1.00000 -1.00000 -1.00000 16 | 3 1.00000 1.00000 -1.00000 1.00000 1.00000 -1.00000 17 | 4 1.00000 1.00000 -1.00000 -1.00000 -1.00000 1.00000 18 | 5 2.00000 -1.00000 0.00000 2.00000 -1.00000 0.00000 19 | 6 2.00000 -1.00000 0.00000 -2.00000 1.00000 0.00000 20 | 21 | -------------------------------------------------------------------------------- /data/Symmetry/D4: -------------------------------------------------------------------------------- 1 | Group D4 2 | n 5 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C4 7 | 3 B1 C2 8 | 4 B2 C2' 9 | 5 E C2" 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 1.00000 1.00000 1.00000 -1.00000 -1.00000 15 | 3 1.00000 -1.00000 1.00000 1.00000 -1.00000 16 | 4 1.00000 -1.00000 1.00000 -1.00000 1.00000 17 | 5 2.00000 0.00000 -2.00000 0.00000 0.00000 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/D4d: -------------------------------------------------------------------------------- 1 | Group D4d 2 | n 7 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 S8 7 | 3 B1 C4 8 | 4 B2 S8^3 9 | 5 E1 C2 10 | 6 E2 C2' 11 | 7 E3 sd 12 | 13 | Table 14 | 1 2 3 4 5 6 7 15 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 16 | 2 1.00000 1.00000 1.00000 1.00000 1.00000 -1.00000 -1.00000 17 | 3 1.00000 -1.00000 1.00000 -1.00000 1.00000 1.00000 -1.00000 18 | 4 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 1.00000 19 | 5 2.00000 1.41420 0.00000 -1.41420 -2.00000 0.00000 0.00000 20 | 6 2.00000 0.00000 -2.00000 0.00000 2.00000 0.00000 0.00000 21 | 7 2.00000 -1.41420 0.00000 1.41420 -2.00000 0.00000 0.00000 22 | 23 | -------------------------------------------------------------------------------- /data/Symmetry/D5: -------------------------------------------------------------------------------- 1 | Group D5 2 | n 4 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C5 7 | 3 E1 C5^2 8 | 4 E2 C2' 9 | 10 | Table 11 | 1 2 3 4 12 | 1 1.00000 1.00000 1.00000 1.00000 13 | 2 1.00000 1.00000 1.00000 -1.00000 14 | 3 2.00000 0.61800 -1.61800 0.00000 15 | 4 2.00000 -1.61800 0.61800 0.00000 16 | 17 | -------------------------------------------------------------------------------- /data/Symmetry/D6: -------------------------------------------------------------------------------- 1 | Group D6 2 | n 6 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C6 7 | 3 B1 C3 8 | 4 B2 C2 9 | 5 E1 C2' 10 | 6 E2 C2" 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 1.00000 1.00000 1.00000 1.00000 -1.00000 -1.00000 16 | 3 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 17 | 4 1.00000 -1.00000 1.00000 -1.00000 -1.00000 1.00000 18 | 5 2.00000 1.00000 -1.00000 -2.00000 0.00000 0.00000 19 | 6 2.00000 -1.00000 -1.00000 2.00000 0.00000 0.00000 20 | 21 | -------------------------------------------------------------------------------- /data/Symmetry/D7: -------------------------------------------------------------------------------- 1 | Group D7 2 | n 5 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C7 7 | 3 E1 C7^2 8 | 4 E2 C7^3 9 | 5 E3 C2' 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 1.00000 1.00000 1.00000 1.00000 -1.00000 15 | 3 2.00000 1.24690 -0.44500 -1.80190 0.00000 16 | 4 2.00000 -0.44500 -1.80190 1.24690 0.00000 17 | 5 2.00000 -1.80190 1.24690 -0.44500 0.00000 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/D8: -------------------------------------------------------------------------------- 1 | Group D8 2 | n 7 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C8 7 | 3 B1 C4 8 | 4 B2 C8^3 9 | 5 E1 C2 10 | 6 E2 C2' 11 | 7 E3 C2" 12 | 13 | Table 14 | 1 2 3 4 5 6 7 15 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 16 | 2 1.00000 1.00000 1.00000 1.00000 1.00000 -1.00000 -1.00000 17 | 3 1.00000 -1.00000 1.00000 -1.00000 1.00000 1.00000 -1.00000 18 | 4 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 1.00000 19 | 5 2.00000 1.41420 0.00000 -1.41420 -2.00000 0.00000 0.00000 20 | 6 2.00000 0.00000 -2.00000 0.00000 2.00000 0.00000 0.00000 21 | 7 2.00000 -1.41420 0.00000 1.41420 -2.00000 0.00000 0.00000 22 | 23 | -------------------------------------------------------------------------------- /data/Symmetry/D9: -------------------------------------------------------------------------------- 1 | Group D9 2 | n 6 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C9 7 | 3 E1 C9^2 8 | 4 E2 C3 9 | 5 E3 C9^4 10 | 6 E4 C2' 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 1.00000 1.00000 1.00000 1.00000 1.00000 -1.00000 16 | 3 2.00000 1.53200 0.34730 -1.00000 -1.87930 0.00000 17 | 4 2.00000 0.34730 -1.87930 -1.00000 1.53200 0.00000 18 | 5 2.00000 -1.00000 -1.00000 2.00000 -1.00000 0.00000 19 | 6 2.00000 -1.87930 1.53200 -1.00000 0.34730 0.00000 20 | 21 | -------------------------------------------------------------------------------- /data/Symmetry/I: -------------------------------------------------------------------------------- 1 | Group I 2 | n 5 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 T1 C5 7 | 3 T2 C5^2 8 | 4 G C3 9 | 5 H C2 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 3.00000 1.61803 -0.61803 0.00000 -1.00000 15 | 3 3.00000 -0.61803 1.61803 0.00000 -1.00000 16 | 4 4.00000 -1.00000 -1.00000 1.00000 0.00000 17 | 5 5.00000 0.00000 0.00000 -1.00000 1.00000 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/O: -------------------------------------------------------------------------------- 1 | Group O 2 | n 5 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C3 7 | 3 E C2 8 | 4 T1 C4 9 | 5 T2 C2' 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 1.00000 1.00000 1.00000 -1.00000 -1.00000 15 | 3 2.00000 -1.00000 2.00000 0.00000 0.00000 16 | 4 3.00000 0.00000 -1.00000 1.00000 -1.00000 17 | 5 3.00000 0.00000 -1.00000 -1.00000 1.00000 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/S12: -------------------------------------------------------------------------------- 1 | Group S12 2 | n 7 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B S12 7 | 3 E1 C6 8 | 4 E2 S4 9 | 5 E3 C3 10 | 6 E4 S12^5 11 | 7 E5 C2 12 | 13 | Table 14 | 1 2 3 4 5 6 7 15 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 16 | 2 1.00000 -1.00000 1.00000 -1.00000 1.00000 -1.00000 1.00000 17 | 3 2.00000 1.73200 1.00000 0.00000 -1.00000 -1.73200 -2.00000 18 | 4 2.00000 1.00000 -1.00000 -2.00000 -1.00000 1.00000 2.00000 19 | 5 2.00000 0.00000 -2.00000 0.00000 2.00000 0.00000 -2.00000 20 | 6 2.00000 -1.00000 -1.00000 2.00000 -1.00000 -1.00000 2.00000 21 | 7 2.00000 -1.73200 1.00000 0.00000 -1.00000 1.73200 -2.00000 22 | 23 | -------------------------------------------------------------------------------- /data/Symmetry/S4: -------------------------------------------------------------------------------- 1 | Group S4 2 | n 3 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B S4 7 | 3 E C2 8 | 9 | Table 10 | 1 2 3 11 | 1 1.00000 1.00000 1.00000 12 | 2 1.00000 -1.00000 1.00000 13 | 3 2.00000 0.00000 -2.00000 14 | 15 | -------------------------------------------------------------------------------- /data/Symmetry/S8: -------------------------------------------------------------------------------- 1 | Group S8 2 | n 5 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 B S8 7 | 3 E1 C4 8 | 4 E2 S8^3 9 | 5 E3 C2 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 1.00000 -1.00000 1.00000 -1.00000 1.00000 15 | 3 2.00000 1.41420 0.00000 -1.41420 -2.00000 16 | 4 2.00000 0.00000 -2.00000 0.00000 2.00000 17 | 5 2.00000 -1.41420 0.00000 1.41420 -2.00000 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/T: -------------------------------------------------------------------------------- 1 | Group T 2 | n 3 3 | 4 | Irred Operation 5 | 1 A E 6 | 2 E C3 7 | 3 T C2 8 | 9 | Table 10 | 1 2 3 11 | 1 1.00000 1.00000 1.00000 12 | 2 2.00000 -1.00000 2.00000 13 | 3 3.00000 0.00000 -1.00000 14 | 15 | -------------------------------------------------------------------------------- /data/Symmetry/Td: -------------------------------------------------------------------------------- 1 | Group Td 2 | n 5 3 | 4 | Irred Operation 5 | 1 A1 E 6 | 2 A2 C3 7 | 3 E C2 8 | 4 T1 S4 9 | 5 T2 sd 10 | 11 | Table 12 | 1 2 3 4 5 13 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 14 | 2 1.00000 1.00000 1.00000 -1.00000 -1.00000 15 | 3 2.00000 -1.00000 2.00000 0.00000 0.00000 16 | 4 3.00000 0.00000 -1.00000 1.00000 -1.00000 17 | 5 3.00000 0.00000 -1.00000 -1.00000 1.00000 18 | 19 | -------------------------------------------------------------------------------- /data/Symmetry/Th: -------------------------------------------------------------------------------- 1 | Group Th 2 | n 6 3 | 4 | Irred Operation 5 | 1 Ag E 6 | 2 Eg C3 7 | 3 Tg C2 8 | 4 Au i 9 | 5 Eu S6 10 | 6 Tu sh 11 | 12 | Table 13 | 1 2 3 4 5 6 14 | 1 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 15 | 2 2.00000 -1.00000 2.00000 2.00000 -1.00000 2.00000 16 | 3 3.00000 0.00000 -1.00000 3.00000 0.00000 -1.00000 17 | 4 1.00000 1.00000 1.00000 -1.00000 -1.00000 -1.00000 18 | 5 2.00000 -1.00000 2.00000 -2.00000 1.00000 -2.00000 19 | 6 3.00000 0.00000 -1.00000 -3.00000 0.00000 1.00000 20 | 21 | -------------------------------------------------------------------------------- /data/Titanium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/data/Titanium.png -------------------------------------------------------------------------------- /data/ezfio_defaults/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/data/ezfio_defaults/.empty -------------------------------------------------------------------------------- /data/ezfio_defaults/.gitignore: -------------------------------------------------------------------------------- 1 | *ezfio_interface_default -------------------------------------------------------------------------------- /data/pseudo/tm: -------------------------------------------------------------------------------- 1 | Ag GEN 36 2 2 | 4 3 | 11.074 1 1.712 4 | -166.201 2 1.391 5 | 255.676 2 1.194 6 | -91.757 2 1.033 7 | 3 8 | 11.074 1 0.897 9 | -22.6472 2 1.226 10 | 16.8557 2 0.9789 11 | 4 12 | 9.524 1 12.668 13 | 227.659 2 1.662 14 | -363.576 2 1.4 15 | 150.286 2 1.205 16 | 17 | Au GEN 68 2 18 | 4 19 | 10.881 1 2.286 20 | -97.386 2 1.088 21 | 270.134 2 1.267 22 | -171.733 2 1.499 23 | 3 24 | 10.721 1 1.38 25 | -63.222 2 1.111 26 | 60.634 2 0.987 27 | 4 28 | 9.383 1 11. 29 | 225.822 2 1.66 30 | 286.233 2 1.342 31 | -497.561 2 1.437 32 | 33 | -------------------------------------------------------------------------------- /data/qp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/data/qp.png -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | -------------------------------------------------------------------------------- /doc/source/_static/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/doc/source/_static/.empty -------------------------------------------------------------------------------- /doc/source/index.rst: -------------------------------------------------------------------------------- 1 | .. Selected CI documentation master file, created by 2 | sphinx-quickstart on Mon Feb 10 15:53:11 2014. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to Selected CI's documentation! 7 | ======================================= 8 | 9 | Contents: 10 | 11 | .. toctree:: 12 | :maxdepth: 1 13 | 14 | install 15 | Intro 16 | code_doc_intro 17 | wavefunction 18 | 19 | Indices and tables 20 | ================== 21 | 22 | * :ref:`genindex` 23 | * :ref:`modindex` 24 | * :ref:`search` 25 | 26 | -------------------------------------------------------------------------------- /doc/source/install.rst: -------------------------------------------------------------------------------- 1 | ============ 2 | Installation 3 | ============ 4 | 5 | Requirements 6 | ------------ 7 | 8 | * `GNU make `_ 9 | * `The Intel Fortran Compiler with MKL `_ 10 | * `IRPF90 `_ 11 | * `EZFIO `_ 12 | 13 | Optional Requirements 14 | --------------------- 15 | 16 | * `Sphinx `_ is used to build the documentation 17 | 18 | Setup 19 | ----- 20 | 21 | #) Run the :file:`setup_environment.sh` script. This will create the :file:`sci.rc` file 22 | that contains all the environment variables :: 23 | 24 | $ ./setup_environment.sh 25 | 26 | #) Source this file into your shell :: 27 | 28 | $ source sci.rc 29 | 30 | #) Go into the :file:`src` directory and create the :file:`Makefile.config` file using the 31 | :file:`Makefile.config.example` file as a template 32 | 33 | #) Build the program :: 34 | 35 | $ make 36 | 37 | #) Build the documentation :: 38 | 39 | $ make doc 40 | 41 | -------------------------------------------------------------------------------- /include/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/include/.empty -------------------------------------------------------------------------------- /install/.gitignore: -------------------------------------------------------------------------------- 1 | config/qp_create_ninja.pickle 2 | Downloads 3 | _build 4 | docopt 5 | emsl 6 | EZFIO 7 | irpf90 8 | resultsFile 9 | zlib 10 | build.ninja 11 | p_graphviz -------------------------------------------------------------------------------- /install/Downloads/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/install/Downloads/.empty -------------------------------------------------------------------------------- /install/_build/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/install/_build/.gitignore -------------------------------------------------------------------------------- /install/scripts/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # This script should be included 3 | 4 | BUILD=_build/${TARGET} 5 | rm -rf -- ${BUILD} 6 | mkdir ${BUILD} || exit 1 7 | if [[ -f Downloads/${TARGET}.tar.gz ]] ; then 8 | tar -zxf Downloads/${TARGET}.tar.gz --strip-components=1 --directory=${BUILD} || exit 1 9 | elif [[ -f Downloads/${TARGET}.tar.bz2 ]] ; then 10 | tar -jxf Downloads/${TARGET}.tar.bz2 --strip-components=1 --directory=${BUILD} || exit 1 11 | fi 12 | _install || exit 1 13 | rm -rf -- ${BUILD} _build/${TARGET}.log 14 | exit 0 15 | -------------------------------------------------------------------------------- /install/scripts/check_irp_version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # This script should be included 3 | 4 | # pro: 5 | # 6 | # solid way to compare fancy version strings: 7 | # support any length of sub-parts (ie: 1.3alpha.2.dev2 > 1.1 ?) 8 | # support alpha-betical sort (ie: 1.alpha < 1.beta2) 9 | # support big size version (ie: 1.10003939209329320932 > 1.2039209378273789273 ?) 10 | # can easily be modified to support n arguments. (leaved as an exercise ;) ) 11 | # usually very usefull with 3 arguments: (ie: 1.2 < my_version < 2.7 ) 12 | # cons: 13 | # 14 | # uses a lot of various calls to different programs. So it's not that efficient. 15 | # uses a pretty recent version of sort and it might not be available on your system. (check with man sort) 16 | 17 | function version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | tail -n 1)" == "$1"; } 18 | 19 | irp_cur_version=`irpf90 -v` 20 | irp_need_version=1.6.7 21 | 22 | if version_gt $irp_cur_version $irp_need_version; then 23 | echo "OK" 24 | fi 25 | echo "FAIL" -------------------------------------------------------------------------------- /install/scripts/fetch_from_web.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import urllib 4 | import sys 5 | 6 | __author__ = "Anthony Scemama" 7 | __date__ = "Mon Apr 7 15:30:29 CEST 2014" 8 | 9 | """Fetches a file from a given URL. 10 | syntax : %s """%(sys.argv[0]) 11 | 12 | # Check command line 13 | if len(sys.argv) < 3: 14 | print """ 15 | usage: 16 | %s """%(sys.argv[0]) 17 | 18 | URL = sys.argv[1] 19 | filename = sys.argv[2] 20 | 21 | 22 | webpage = urllib.urlopen(URL) 23 | data = webpage.read() 24 | 25 | if "404 - Not Found" in data: 26 | print "Error in URL" 27 | sys.exit(1) 28 | 29 | file = open(filename,'w') 30 | file.write(data) 31 | file.close() 32 | 33 | 34 | -------------------------------------------------------------------------------- /install/scripts/install_bats.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=bats 4 | 5 | function _install() 6 | { 7 | cp -R ${BUILD} . || exit 1 8 | cd ../bin 9 | ln -s ../install/${TARGET}/libexec/bats . || return 1 10 | cd - 11 | } 12 | 13 | source scripts/build.sh 14 | -------------------------------------------------------------------------------- /install/scripts/install_curl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | TARGET=curl 3 | 4 | function _install() 5 | { 6 | cd .. 7 | QP_ROOT=$PWD 8 | cd - 9 | cd ${BUILD} || return 1 10 | mv curl.ermine ${QP_ROOT}/bin/curl || return 1 11 | } 12 | 13 | source scripts/build.sh 14 | -------------------------------------------------------------------------------- /install/scripts/install_docopt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=docopt 4 | 5 | function _install() 6 | { 7 | cp -R ${BUILD} . || exit 1 8 | } 9 | 10 | source scripts/build.sh 11 | -------------------------------------------------------------------------------- /install/scripts/install_emsl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=emsl 4 | 5 | function _install() 6 | { 7 | cp -R ${BUILD} . || exit 1 8 | } 9 | 10 | source scripts/build.sh 11 | -------------------------------------------------------------------------------- /install/scripts/install_ezfio.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=ezfio 4 | 5 | function _install() 6 | { 7 | cd .. 8 | QP_ROOT=$PWD 9 | cd - 10 | rm -rf ${QP_ROOT}/EZFIO 11 | cd ${BUILD}/config || return 1 12 | cd - 13 | mv ${BUILD} ${QP_ROOT}/install/EZFIO || return 1 14 | } 15 | 16 | source scripts/build.sh 17 | -------------------------------------------------------------------------------- /install/scripts/install_f77zmq.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=f77zmq 4 | 5 | function _install() 6 | { 7 | cd .. 8 | QP_ROOT=$PWD 9 | cd - 10 | set -e 11 | set -u 12 | export ZMQ_H="${QP_ROOT}"/include/zmq.h 13 | cd "${BUILD}" 14 | make -j 8 || exit 1 15 | mv libf77zmq.a "${QP_ROOT}"/lib || exit 1 16 | mv libf77zmq.so "${QP_ROOT}"/lib || exit 1 17 | cp f77_zmq.h "${QP_ROOT}"/src/ZMQ/ 18 | cd - 19 | return 0 20 | } 21 | 22 | source scripts/build.sh 23 | -------------------------------------------------------------------------------- /install/scripts/install_gmp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=gmp 4 | 5 | function _install() 6 | { 7 | rm -rf -- ${TARGET} 8 | mkdir ${TARGET} || exit 1 9 | cd .. 10 | QP_ROOT=$PWD 11 | cd - 12 | cd ${BUILD} 13 | ./configure --prefix=$QP_ROOT && make -j 8 || exit 1 14 | make install || exit 1 15 | } 16 | 17 | source scripts/build.sh 18 | -------------------------------------------------------------------------------- /install/scripts/install_irpf90.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=irpf90 4 | function _install() 5 | { 6 | cd .. 7 | QP_ROOT=$PWD 8 | cd - 9 | 10 | make -C ${BUILD} || return 1 11 | rm -rf -- ./irpf90 12 | mv ${BUILD} . || return 1 13 | [[ -x ./irpf90/bin/irpf90 ]] || return 1 14 | [[ -x ./irpf90/bin/irpman ]] || return 1 15 | rm -rf -- ../bin/irpf90 ../bin/irpman 16 | cat << EOF > ../bin/irpf90 || return 1 17 | #!/bin/bash 18 | exec \${QP_ROOT}/install/irpf90/bin/irpf90 \$@ 19 | EOF 20 | 21 | 22 | cat << EOF > ../bin/irpman || return 1 23 | #!/bin/bash 24 | exec \${QP_ROOT}/install/irpf90/bin/irpman \$@ 25 | EOF 26 | chmod +x ../bin/irpf90 ../bin/irpman || return 1 27 | return 0 28 | } 29 | 30 | source scripts/build.sh 31 | 32 | 33 | -------------------------------------------------------------------------------- /install/scripts/install_lapack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | git clone https://github.com/Reference-LAPACK/lapack-release.git 4 | cd lapack-release 5 | cp make.inc.example make.inc 6 | make -j 8 7 | mv librefblas.a liblapack.a libtmglib.a $QP_ROOT/lib 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /install/scripts/install_m4.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=m4 4 | 5 | function _install() 6 | { 7 | cd .. 8 | QP_ROOT=$PWD 9 | cd - 10 | cd ${BUILD} 11 | ./configure --prefix=$QP_ROOT && make || exit 1 12 | } 13 | 14 | source scripts/build.sh 15 | -------------------------------------------------------------------------------- /install/scripts/install_ninja.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=ninja 4 | 5 | function _install() 6 | { 7 | cd ${BUILD} || return 1 8 | ./configure.py --bootstrap || return 1 9 | cd - 10 | mv ${BUILD}/ninja ../bin/ || return 1 11 | return 0 12 | } 13 | 14 | source scripts/build.sh -------------------------------------------------------------------------------- /install/scripts/install_p_graphviz.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=p_graphviz 4 | 5 | function _install() 6 | { 7 | cp -R ${BUILD} . || exit 1 8 | } 9 | 10 | source scripts/build.sh 11 | -------------------------------------------------------------------------------- /install/scripts/install_patch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=patch 4 | 5 | function _install() 6 | { 7 | mkdir ${TARGET} 8 | cd .. 9 | QP_ROOT=$PWD 10 | cd - 11 | cd ${BUILD} 12 | ./configure --prefix=${QP_ROOT} && make || exit 1 13 | make install || exit 1 14 | cd - 15 | cp ${TARGET}/bin/${TARGET} ${QP_ROOT}/bin || exit 1 16 | rm -R -- ${TARGET} || exit 1 17 | } 18 | 19 | source scripts/build.sh 20 | -------------------------------------------------------------------------------- /install/scripts/install_resultsFile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=resultsFile 4 | 5 | function _install() 6 | { 7 | cp -R ${BUILD} . || exit 1 8 | } 9 | 10 | source scripts/build.sh 11 | 12 | -------------------------------------------------------------------------------- /install/scripts/install_zeromq.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=zeromq 4 | 5 | function _install() 6 | { 7 | cd .. 8 | QP_ROOT=$PWD 9 | cd - 10 | set -e 11 | set -u 12 | ORIG=$(pwd) 13 | cd "${BUILD}" 14 | ./configure --prefix=$QP_ROOT --without-libsodium || exit 1 15 | make -j 8 || exit 1 16 | make install || exit 1 17 | cd ${ORIG} 18 | return 0 19 | } 20 | 21 | source scripts/build.sh 22 | -------------------------------------------------------------------------------- /install/scripts/install_zlib.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | TARGET=zlib 4 | 5 | function _install() 6 | { 7 | rm -rf -- ${TARGET} 8 | mkdir ${TARGET} || exit 1 9 | cd .. 10 | QP_ROOT=$PWD 11 | cd - 12 | cd ${BUILD} 13 | ./configure && make || exit 1 14 | ./configure --prefix=$QP_ROOT && make || exit 1 15 | make install || exit 1 16 | } 17 | 18 | source scripts/build.sh 19 | -------------------------------------------------------------------------------- /lib/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/lib/.gitignore -------------------------------------------------------------------------------- /lib64: -------------------------------------------------------------------------------- 1 | lib -------------------------------------------------------------------------------- /ocaml/.merlin: -------------------------------------------------------------------------------- 1 | PKG core ZMQ cryptokit 2 | B _build/ 3 | 4 | 5 | -------------------------------------------------------------------------------- /ocaml/Atom.mli: -------------------------------------------------------------------------------- 1 | exception AtomError of string 2 | 3 | type t = { element : Element.t; charge : Charge.t; coord : Point3d.t; } 4 | 5 | val t_of_sexp : Sexplib.Sexp.t -> t 6 | val sexp_of_t : t -> Sexplib.Sexp.t 7 | 8 | val of_string : units:Units.units -> string -> t 9 | val to_string : units:Units.units -> t -> string 10 | val to_xyz : t -> string 11 | -------------------------------------------------------------------------------- /ocaml/Basis.mli: -------------------------------------------------------------------------------- 1 | open Qptypes;; 2 | 3 | type t = (Gto.t * Nucl_number.t) list 4 | 5 | (** Read all the basis functions of an element and set the number of the 6 | * atom *) 7 | val read : in_channel -> Nucl_number.t -> (Gto.t * Nucl_number.t) list 8 | 9 | (** Find an element in the basis set file *) 10 | val find : in_channel -> Element.t -> Element.t 11 | 12 | (** Read the basis of an element from the file *) 13 | val read_element : 14 | in_channel -> Nucl_number.t -> Element.t -> (Gto.t * Nucl_number.t) list 15 | 16 | (** Convert the basis to a string *) 17 | val to_string : ?fmt:Gto.fmt -> ?ele_array:Element.t array -> (Gto.t * Nucl_number.t) list -> string 18 | 19 | (** Convert the basis to an MD5 hash *) 20 | val to_md5 : (Gto.t * Nucl_number.t) list -> MD5.t 21 | -------------------------------------------------------------------------------- /ocaml/Bit.ml: -------------------------------------------------------------------------------- 1 | open Core;; 2 | 3 | (* 4 | Type for bits 5 | ============== 6 | 7 | Zero | One 8 | 9 | *) 10 | 11 | type t = 12 | | One 13 | | Zero 14 | [@@deriving sexp] 15 | 16 | let to_string = function 17 | | Zero -> "0" 18 | | One -> "1" 19 | ;; 20 | 21 | let and_operator a b = 22 | match a, b with 23 | | Zero, _ -> Zero 24 | | _, Zero -> Zero 25 | | _, _ -> One 26 | ;; 27 | 28 | let or_operator a b = 29 | match a, b with 30 | | One, _ -> One 31 | | _, One -> One 32 | | _, _ -> Zero 33 | ;; 34 | 35 | let xor_operator a b = 36 | match a, b with 37 | | One, Zero -> One 38 | | Zero, One -> One 39 | | _, _ -> Zero 40 | ;; 41 | 42 | let not_operator = function 43 | | One -> Zero 44 | | Zero -> One 45 | ;; 46 | 47 | -------------------------------------------------------------------------------- /ocaml/Bit.mli: -------------------------------------------------------------------------------- 1 | type t = One | Zero [@@deriving sexp] 2 | 3 | (** String conversions for printing *) 4 | val to_string : t -> string 5 | 6 | (** Logical operations *) 7 | val and_operator : t -> t -> t 8 | val or_operator : t -> t -> t 9 | val xor_operator : t -> t -> t 10 | val not_operator : t -> t 11 | -------------------------------------------------------------------------------- /ocaml/Charge.ml: -------------------------------------------------------------------------------- 1 | open Core 2 | 3 | type t = float [@@deriving sexp] 4 | 5 | let of_float x = x 6 | let of_int i = Float.of_int i 7 | let of_string s = Float.of_string s 8 | 9 | 10 | let to_float x = x 11 | let to_int x = Float.to_int x 12 | let to_string x = 13 | if x >= 0. then 14 | Printf.sprintf "+%f" x 15 | else 16 | Printf.sprintf "%f" x 17 | 18 | -------------------------------------------------------------------------------- /ocaml/Charge.mli: -------------------------------------------------------------------------------- 1 | type t = float [@@deriving sexp] 2 | 3 | (** Float conversion functions *) 4 | val to_float : t -> float 5 | val of_float : float -> t 6 | 7 | (** Int conversion functions *) 8 | val to_int : t -> int 9 | val of_int : int -> t 10 | 11 | (** String conversion functions *) 12 | val to_string: t -> string 13 | val of_string: string -> t 14 | -------------------------------------------------------------------------------- /ocaml/Element.mli: -------------------------------------------------------------------------------- 1 | exception ElementError of string 2 | 3 | type t = 4 | |X 5 | |H |He 6 | |Li|Be |B |C |N |O |F |Ne 7 | |Na|Mg |Al|Si|P |S |Cl|Ar 8 | |K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr 9 | |Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe 10 | |Pt 11 | [@@deriving sexp] 12 | 13 | (** String conversion functions *) 14 | val of_string : string -> t 15 | val to_string : t -> string 16 | val to_long_string : t -> string 17 | 18 | (** Properties *) 19 | val to_charge : t -> Charge.t 20 | val of_charge : Charge.t -> t 21 | val covalent_radius : t -> Qptypes.Positive_float.t 22 | val vdw_radius : t -> Qptypes.Positive_float.t 23 | val mass : t -> Qptypes.Positive_float.t 24 | -------------------------------------------------------------------------------- /ocaml/Excitation.mli: -------------------------------------------------------------------------------- 1 | module Hole : 2 | sig 3 | type t 4 | val to_mo_class : t -> MO_class.t 5 | val of_mo_class : MO_class.t -> t 6 | val t_of_sexp : Sexplib.Sexp.t -> t 7 | val sexp_of_t : t -> Sexplib.Sexp.t 8 | end 9 | module Particle : 10 | sig 11 | type t 12 | val to_mo_class : t -> MO_class.t 13 | val of_mo_class : MO_class.t -> t 14 | val t_of_sexp : Sexplib.Sexp.t -> t 15 | val sexp_of_t : t -> Sexplib.Sexp.t 16 | end 17 | 18 | type t = 19 | | Single of Hole.t * Particle.t 20 | | Double of Hole.t * Particle.t * Hole.t * Particle.t 21 | [@@deriving sexp] 22 | 23 | val create_single : hole:MO_class.t -> particle:MO_class.t -> t 24 | 25 | val double_of_singles : t -> t -> t 26 | 27 | val create_double : hole1:MO_class.t -> particle1:MO_class.t -> 28 | hole2:MO_class.t -> particle2:MO_class.t -> t 29 | 30 | val to_string : t -> string 31 | -------------------------------------------------------------------------------- /ocaml/GaussianPrimitive.ml: -------------------------------------------------------------------------------- 1 | open Qptypes 2 | open Core 3 | 4 | type t = 5 | { sym : Symmetry.t ; 6 | expo : AO_expo.t ; 7 | } [@@deriving sexp] 8 | 9 | let to_string p = 10 | let { sym = s ; expo = e } = p in 11 | Printf.sprintf "(%s, %22e)" 12 | (Symmetry.to_string s) 13 | (AO_expo.to_float e) 14 | 15 | 16 | let of_sym_expo s e = 17 | { sym=s ; expo=e} 18 | -------------------------------------------------------------------------------- /ocaml/Gto.mli: -------------------------------------------------------------------------------- 1 | exception GTO_Read_Failure of string 2 | exception End_Of_Basis 3 | type fmt = 4 | | Gamess 5 | | Gaussian 6 | 7 | type t = 8 | { sym : Symmetry.t ; 9 | lc : (GaussianPrimitive.t * Qptypes.AO_coef.t) list; 10 | } [@@deriving sexp] 11 | 12 | (** Create from a list of GaussianPrimitive.t * Qptypes.AO_coef.t *) 13 | val of_prim_coef_list : 14 | (GaussianPrimitive.t * Qptypes.AO_coef.t) list -> t 15 | 16 | (** Read from a file *) 17 | val read_one : in_channel -> t 18 | 19 | (** Convert to string for printing *) 20 | val to_string : ?fmt:fmt -> t -> string 21 | -------------------------------------------------------------------------------- /ocaml/Id.ml: -------------------------------------------------------------------------------- 1 | module Id = struct 2 | type t = int 3 | 4 | let of_int x = 5 | assert (x>0); x 6 | 7 | let to_int x = x 8 | 9 | let of_string x = 10 | int_of_string x 11 | |> of_int 12 | 13 | let to_string x = 14 | string_of_int x 15 | 16 | let increment x = x + 1 17 | let decrement x = x - 1 18 | 19 | let compare = compare 20 | end 21 | 22 | module Task = struct 23 | include Id 24 | end 25 | 26 | module Client = struct 27 | include Id 28 | end 29 | 30 | -------------------------------------------------------------------------------- /ocaml/Id.mli: -------------------------------------------------------------------------------- 1 | module Id : 2 | sig 3 | type t 4 | val of_int : int -> t 5 | val to_int : t -> int 6 | val of_string : string -> t 7 | val to_string : t -> string 8 | val increment : t -> t 9 | val decrement : t -> t 10 | val compare : t -> t -> int 11 | end 12 | 13 | 14 | module Task : 15 | sig 16 | include (module type of Id) 17 | end 18 | 19 | 20 | module Client : 21 | sig 22 | include (module type of Id) 23 | end 24 | -------------------------------------------------------------------------------- /ocaml/Input.ml: -------------------------------------------------------------------------------- 1 | open Qputils;; 2 | open Qptypes;; 3 | open Core;; 4 | 5 | include Input_ao_basis;; 6 | include Input_bitmasks;; 7 | include Input_determinants_by_hand;; 8 | include Input_electrons;; 9 | include Input_mo_basis;; 10 | include Input_nuclei_by_hand;; 11 | include Input_auto_generated;; 12 | -------------------------------------------------------------------------------- /ocaml/Io_ext.ml: -------------------------------------------------------------------------------- 1 | let input_lines filename = 2 | let in_channel = 3 | open_in filename 4 | in 5 | let rec aux accu = 6 | try 7 | let newline = 8 | input_line in_channel 9 | in 10 | aux (newline::accu) 11 | with End_of_file -> accu 12 | in 13 | let result = 14 | List.rev (aux []) 15 | in 16 | close_in in_channel; 17 | result 18 | 19 | 20 | 21 | let read_all filename = 22 | input_lines filename 23 | |> String.concat "\n" 24 | 25 | -------------------------------------------------------------------------------- /ocaml/Long_basis.mli: -------------------------------------------------------------------------------- 1 | open Qptypes;; 2 | 3 | (** A long basis is a basis set where 4 | * all the P orbitals are converted to x, y, z 5 | * all the D orbitals are converted to xx, xy, xz, yy, yx 6 | * etc 7 | *) 8 | type t = (Symmetry.Xyz.t * Gto.t * Nucl_number.t) list [@@deriving sexp] 9 | 10 | (** Transform a basis to a long basis *) 11 | val of_basis : 12 | (Gto.t * Nucl_number.t) list -> (Symmetry.Xyz.t * Gto.t * Nucl_number.t) list 13 | 14 | (** Transform a long basis to a basis *) 15 | val to_basis : 16 | (Symmetry.Xyz.t * Gto.t * Nucl_number.t) list -> (Gto.t * Nucl_number.t) list 17 | 18 | (** Convert the basis into its string representation *) 19 | val to_string : 20 | (Symmetry.Xyz.t * Gto.t * Nucl_number.t) list -> string 21 | -------------------------------------------------------------------------------- /ocaml/MO_class.mli: -------------------------------------------------------------------------------- 1 | type t = 2 | | Core of Qptypes.MO_number.t list 3 | | Inactive of Qptypes.MO_number.t list 4 | | Active of Qptypes.MO_number.t list 5 | | Virtual of Qptypes.MO_number.t list 6 | | Deleted of Qptypes.MO_number.t list 7 | [@@deriving sexp] 8 | 9 | 10 | (** Create different excitation classes *) 11 | val create_core : string -> t 12 | val create_inactive : string -> t 13 | val create_active : string -> t 14 | val create_virtual : string -> t 15 | val create_deleted : string -> t 16 | 17 | (** Convert to a Bitlist.t *) 18 | val to_bitlist : Qptypes.N_int_number.t -> t -> Bitlist.t 19 | 20 | (** Convert to string for printing *) 21 | val to_string : t -> string 22 | 23 | val of_string : string -> t 24 | 25 | -------------------------------------------------------------------------------- /ocaml/MO_label.ml: -------------------------------------------------------------------------------- 1 | open Core;; 2 | 3 | type t = 4 | | Guess 5 | | Canonical 6 | | Natural 7 | | Localized 8 | | Orthonormalized 9 | | None 10 | [@@deriving sexp] 11 | ;; 12 | 13 | let to_string = function 14 | | Guess -> "Guess" 15 | | Canonical -> "Canonical" 16 | | Orthonormalized -> "Orthonormalized" 17 | | Natural -> "Natural" 18 | | Localized -> "Localized" 19 | | None -> "None" 20 | ;; 21 | 22 | let of_string s = 23 | match String.lowercase (String.strip s) with 24 | | "guess" -> Guess 25 | | "canonical" -> Canonical 26 | | "natural" -> Natural 27 | | "localized" -> Localized 28 | | "orthonormalized" -> Orthonormalized 29 | | "none" -> None 30 | | _ -> (print_endline s ; failwith "MO_label should be one of: 31 | Guess | Orthonormalized | Canonical | Natural | Localized | None.") 32 | ;; 33 | -------------------------------------------------------------------------------- /ocaml/MO_label.mli: -------------------------------------------------------------------------------- 1 | type t = 2 | | Guess 3 | | Canonical 4 | | Natural 5 | | Localized 6 | | Orthonormalized 7 | | None 8 | [@@deriving sexp] 9 | 10 | (** String representation *) 11 | val to_string : t -> string 12 | 13 | (** Build from string representation *) 14 | val of_string : string -> t 15 | 16 | -------------------------------------------------------------------------------- /ocaml/Multiplicity.ml: -------------------------------------------------------------------------------- 1 | open Core;; 2 | open Qptypes ;; 3 | 4 | type t = Strictly_positive_int.t [@@deriving sexp] 5 | 6 | let of_int = Strictly_positive_int.of_int ;; 7 | let to_int = Strictly_positive_int.to_int ;; 8 | 9 | let to_string m = 10 | match (to_int m) with 11 | | 1 -> "Singlet" 12 | | 2 -> "Doublet" 13 | | 3 -> "Triplet" 14 | | 4 -> "Quartet" 15 | | 5 -> "Quintet" 16 | | 6 -> "Sextet" 17 | | 7 -> "Septet" 18 | | 8 -> "Octet" 19 | | 9 -> "Nonet" 20 | | i -> Printf.sprintf "%d-et" i 21 | ;; 22 | 23 | let of_alpha_beta a b = 24 | let a = Elec_alpha_number.to_int a 25 | and b = Elec_beta_number.to_int b 26 | in 27 | assert (a >= b); 28 | of_int (1 + a - b) 29 | ;; 30 | 31 | let to_alpha_beta ne m = 32 | let ne = Elec_number.to_int ne in 33 | let nb = (ne-(to_int m)+1)/2 in 34 | let na = ne - nb in 35 | (Elec_alpha_number.of_int na, Elec_beta_number.of_int nb) 36 | ;; 37 | -------------------------------------------------------------------------------- /ocaml/Multiplicity.mli: -------------------------------------------------------------------------------- 1 | type t = Qptypes.Strictly_positive_int.t [@@deriving sexp] 2 | 3 | (** Conversion from int *) 4 | val of_int : int -> t 5 | val to_int : t -> int 6 | 7 | (** Computation from the number of alpha and beta electrons *) 8 | val of_alpha_beta : 9 | Qptypes.Elec_alpha_number.t -> 10 | Qptypes.Elec_beta_number.t -> t 11 | 12 | (** Generation of the number of alpha and beta electrons *) 13 | val to_alpha_beta : 14 | Qptypes.Elec_number.t -> t -> 15 | Qptypes.Elec_alpha_number.t * Qptypes.Elec_beta_number.t 16 | 17 | (** Conversion to string for printing *) 18 | val to_string : t-> string 19 | 20 | -------------------------------------------------------------------------------- /ocaml/Point3d.mli: -------------------------------------------------------------------------------- 1 | type t = 2 | { x : float; 3 | y : float; 4 | z : float; 5 | } [@@deriving sexp] 6 | 7 | (** Create from a tuple of floats *) 8 | val of_tuple : units:Units.units -> float*float*float -> t 9 | 10 | (** Create from an xyz string *) 11 | val of_string : units:Units.units -> string -> t 12 | 13 | (** Convert to a string for printing *) 14 | val to_string : units:Units.units -> t -> string 15 | 16 | (** Computes the squared distance between 2 points *) 17 | val distance2 : t -> t -> Qptypes.Positive_float.t 18 | 19 | (** Computes the distance between 2 points *) 20 | val distance : t -> t -> float 21 | -------------------------------------------------------------------------------- /ocaml/Primitive.mli: -------------------------------------------------------------------------------- 1 | type t = 2 | { sym : Symmetry.t; 3 | expo : Qptypes.AO_expo.t; 4 | } [@@deriving sexp] 5 | 6 | (** Conversion to string for printing *) 7 | val to_string : t -> string 8 | 9 | (** Creation *) 10 | val of_sym_expo : Symmetry.t -> Qptypes.AO_expo.t -> t 11 | 12 | -------------------------------------------------------------------------------- /ocaml/README.rst: -------------------------------------------------------------------------------- 1 | =============== 2 | OCaml scripts 3 | =============== 4 | 5 | This directory contains all the scripts that control the input/output 6 | with the user. 7 | 8 | All executables start with `qp_` and all tests start with `test_`. Modules 9 | file names start with a capital letter. 10 | 11 | Info on how to extend the `qp_edit` tool is given in 12 | `README_qp_edit.rst `_. 13 | 14 | -------------------------------------------------------------------------------- /ocaml/Range.mli: -------------------------------------------------------------------------------- 1 | type t = int list [@@deriving sexp] 2 | 3 | (** A range is a sorted list of ints in an interval. 4 | It is created using a string : 5 | "[a-b]" : range between a and b (included) 6 | "[a]" : the list with only one integer a 7 | "a" : equivalent to "[a]" 8 | *) 9 | val of_string : string -> t 10 | val to_string : t -> string 11 | -------------------------------------------------------------------------------- /ocaml/Symmetry.mli: -------------------------------------------------------------------------------- 1 | type t = S | P | D | F | G | H | I | J | K | L [@@deriving sexp] 2 | 3 | (** Creatio from strings *) 4 | val to_string : t -> string 5 | val of_string : string -> t 6 | val of_char : char -> t 7 | 8 | (** Connexion with l quantum number *) 9 | val to_l : t -> Qptypes.Positive_int.t 10 | val of_l : Qptypes.Positive_int.t -> t 11 | 12 | type st = t 13 | module Xyz : 14 | sig 15 | type t = { 16 | x : Qptypes.Positive_int.t; 17 | y : Qptypes.Positive_int.t; 18 | z : Qptypes.Positive_int.t; 19 | } [@@deriving sexp] 20 | 21 | (** The string format contains the powers of x,y and z in a 22 | format like "x2z3" *) 23 | 24 | val of_string : string -> t 25 | val to_string : t -> string 26 | 27 | (** Returns the quantum number l *) 28 | val get_l : t -> Qptypes.Positive_int.t 29 | 30 | (** Returns a list of XYZ powers for a given symmetry *) 31 | val of_symmetry : st -> t list 32 | 33 | (** Returns the symmetry corresponding to the XYZ powers *) 34 | val to_symmetry : t -> st 35 | 36 | end 37 | -------------------------------------------------------------------------------- /ocaml/To_md5.ml: -------------------------------------------------------------------------------- 1 | open Qptypes 2 | open Sexplib 3 | 4 | let to_md5 sexp_of_t t = 5 | sexp_of_t t 6 | |> Sexp.to_string 7 | |> Cryptokit.hash_string (Cryptokit.Hash.md5 ()) 8 | |> Cryptokit.transform_string (Cryptokit.Hexa.encode ()) 9 | |> MD5.of_string 10 | ;; 11 | 12 | -------------------------------------------------------------------------------- /ocaml/Units.ml: -------------------------------------------------------------------------------- 1 | 2 | type units = 3 | | Bohr 4 | | Angstrom 5 | ;; 6 | 7 | let angstrom_to_bohr = 1. /. 0.52917721092 8 | let bohr_to_angstrom = 0.52917721092 9 | ;; 10 | 11 | 12 | -------------------------------------------------------------------------------- /ocaml/Units.mli: -------------------------------------------------------------------------------- 1 | type units = Bohr | Angstrom 2 | 3 | (** Conversion functions *) 4 | val angstrom_to_bohr : float 5 | val bohr_to_angstrom : float 6 | 7 | 8 | -------------------------------------------------------------------------------- /ocaml/_tags: -------------------------------------------------------------------------------- 1 | true: package(core,cryptokit,zmq,str,ppx_sexp_conv,ppx_deriving) 2 | true: thread 3 | false: profile 4 | -------------------------------------------------------------------------------- /ocaml/create_git_sha1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | SHA1=$(git log -1 | head -1 | cut -d ' ' -f 2) 4 | DATE=$(git log -1 | grep Date | cut -d ':' -f 2-) 5 | MESSAGE=$(git log -1 | tail -1 | sed 's/"/\\"/g') 6 | cat << EOF > Git.ml 7 | open Core 8 | let sha1 = "$SHA1" |> String_ext.strip 9 | let date = "$DATE" |> String_ext.strip 10 | let message = "$MESSAGE" |> String_ext.strip 11 | EOF 12 | 13 | -------------------------------------------------------------------------------- /ocaml/element_create_db.ml: -------------------------------------------------------------------------------- 1 | open Core 2 | open Qptypes 3 | open Element 4 | 5 | let () = 6 | let indices = 7 | Array.init 78 (fun i -> i) 8 | in 9 | Out_channel.with_file (Qpackage.root ^ "/data/list_element.txt") 10 | ~f:(fun out_channel -> 11 | Array.init 110 ~f:(fun i -> 12 | let element = 13 | try 14 | Some (of_charge (Charge.of_int i)) 15 | with 16 | | _ -> None 17 | in 18 | match element with 19 | | None -> "" 20 | | Some x -> Printf.sprintf "%3d %3s %s %f\n" 21 | i (to_string x) (to_long_string x) (Positive_float.to_float @@ mass x ) 22 | ) 23 | |> Array.to_list 24 | |> String.concat ~sep:"" 25 | |> Out_channel.output_string out_channel 26 | ) 27 | 28 | -------------------------------------------------------------------------------- /ocaml/test_atom.ml: -------------------------------------------------------------------------------- 1 | let test_atom = 2 | let line = "C 6.0 1. 2. 3." in 3 | let atom = Atom.of_string Units.Bohr line in 4 | print_string (Atom.to_string Units.Angstrom atom) 5 | ;; 6 | -------------------------------------------------------------------------------- /ocaml/test_basis.ml: -------------------------------------------------------------------------------- 1 | open Core;; 2 | open Qputils;; 3 | open Qptypes;; 4 | 5 | let test_module () = 6 | 7 | let basis_channel = 8 | let b = "cc-pvdz" in 9 | In_channel.create (Qpackage.root^"/data/basis/"^(String.lowercase b)) 10 | in 11 | 12 | (* 13 | let molecule = 14 | let xyz_file = "F2.xyz" in 15 | Molecule.of_xyz_file xyz_file 16 | in 17 | *) 18 | 19 | let basis = 20 | (Basis.read_element basis_channel (Nucl_number.of_int 1) Element.F) @ 21 | (Basis.read_element basis_channel (Nucl_number.of_int 2) Element.F) 22 | in 23 | 24 | print_string "Long basis\n==========\n"; 25 | let long_basis = 26 | Long_basis.of_basis basis 27 | in 28 | print_endline (Long_basis.to_string long_basis); 29 | 30 | let short_basis = 31 | Long_basis.to_basis long_basis 32 | in 33 | if (short_basis <> basis) then 34 | print_endline "(short_basis <> basis)" 35 | ; 36 | print_string "Short basis\n===========\n"; 37 | print_endline (Basis.to_string basis); 38 | print_endline ("MD5: "^(Basis.to_md5 basis |> MD5.to_string)); 39 | ;; 40 | 41 | test_module (); 42 | -------------------------------------------------------------------------------- /ocaml/test_determinants.ml: -------------------------------------------------------------------------------- 1 | open Qptypes;; 2 | 3 | let test_module () = 4 | let mo_tot_num = MO_number.of_int 10 in 5 | let det = 6 | [| 15L ; 7L |] 7 | |> Determinant.of_int64_array 8 | ~n_int:(N_int_number.of_int 1) 9 | ~alpha:(Elec_alpha_number.of_int 4) 10 | ~beta:(Elec_beta_number.of_int 3) 11 | in 12 | Printf.printf "%s\n" (Determinant.to_string (~mo_tot_num:mo_tot_num) det) 13 | ;; 14 | 15 | test_module ();; 16 | -------------------------------------------------------------------------------- /ocaml/test_elements.ml: -------------------------------------------------------------------------------- 1 | let test_module () = 2 | let atom = Element.of_string "Cobalt" in 3 | Printf.printf "%s %d\n" (Element.to_string atom) (Charge.to_int (Element.to_charge atom)) 4 | ;; 5 | 6 | test_module ();; 7 | -------------------------------------------------------------------------------- /ocaml/test_excitation.ml: -------------------------------------------------------------------------------- 1 | let test_module () = 2 | let c = MO_class.create_core "[1-4]" in 3 | let i = MO_class.create_inactive "[5-8]" in 4 | let a = MO_class.create_active "[9-13]" in 5 | let v = MO_class.create_virtual "[14-18]" in 6 | let d = MO_class.create_deleted "[18-20]" in 7 | c |> MO_class.to_string |> print_endline ; 8 | i |> MO_class.to_string |> print_endline ; 9 | a |> MO_class.to_string |> print_endline ; 10 | v |> MO_class.to_string |> print_endline ; 11 | d |> MO_class.to_string |> print_endline ; 12 | 13 | let b1 = Excitation.create_single i v in 14 | Excitation.to_string b1 |> print_endline; 15 | 16 | let b2 = Excitation.create_double i v i a in 17 | Excitation.to_string b2 |> print_endline; 18 | ;; 19 | 20 | test_module () ;; 21 | -------------------------------------------------------------------------------- /ocaml/test_mo_label.ml: -------------------------------------------------------------------------------- 1 | let () = 2 | let m = MO_label.of_string "canonical" in 3 | let s = MO_label.to_string m in 4 | print_string s 5 | ;; 6 | -------------------------------------------------------------------------------- /ocaml/test_point3d.ml: -------------------------------------------------------------------------------- 1 | let test_point3d_1 () = 2 | let input = "7.4950000 -0.1499810 0.5085570" in 3 | let p3d = Point3d.of_string Units.Angstrom input in 4 | print_endline(Point3d.to_string Units.Angstrom p3d); 5 | let p3d = Point3d.of_string Units.Bohr input in 6 | print_endline (Point3d.to_string Units.Bohr p3d) 7 | ;; 8 | 9 | let test_point3d () = 10 | let p1 = Point3d.of_string Units.Bohr "1. 2. 3." 11 | and p2 = Point3d.of_string Units.Bohr "-2. 1. 1.5" in 12 | Printf.printf "%f\n" (Point3d.distance p1 p2); 13 | let p1 = Point3d.of_string Units.Angstrom "1. 2. 3." 14 | and p2 = Point3d.of_string Units.Angstrom "-2. 1. 1.5" in 15 | Printf.printf "%f\n" (Point3d.distance p1 p2) 16 | ;; 17 | 18 | test_point3d_1 (); 19 | test_point3d (); 20 | -------------------------------------------------------------------------------- /ocaml/test_pseudo.ml: -------------------------------------------------------------------------------- 1 | open Core 2 | open Qputils 3 | open Qptypes 4 | 5 | let test_module () = 6 | 7 | let pseudo_channel = 8 | let b = "BFD" in 9 | In_channel.create (Qpackage.root^"/data/pseudo/"^(String.lowercase b)) 10 | in 11 | 12 | let pseudo = 13 | Pseudo.read_element pseudo_channel (Element.of_string "Cu") 14 | in 15 | 16 | print_endline (Pseudo.to_string pseudo); 17 | ;; 18 | 19 | test_module (); 20 | -------------------------------------------------------------------------------- /ocaml/test_symmetry.ml: -------------------------------------------------------------------------------- 1 | open Qputils 2 | open Qptypes 3 | open Symmetry 4 | 5 | let () = 6 | "SPDFGHIJKL" 7 | |> String_ext.to_list 8 | |> List.map of_char 9 | |> List.map Xyz.of_symmetry 10 | |> List.iter (fun x -> List.iter (fun y -> Xyz.to_string y |> print_endline) x ; 11 | print_newline ();) 12 | 13 | 14 | -------------------------------------------------------------------------------- /ocaml/test_task_server.ml: -------------------------------------------------------------------------------- 1 | let () = 2 | TaskServer.run 12345 3 | 4 | -------------------------------------------------------------------------------- /plugins/All_singles/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [energy] 2 | type: double precision 3 | doc: Calculated Selected all_singles or all_1h_1p energy 4 | interface: ezfio 5 | 6 | -------------------------------------------------------------------------------- /plugins/All_singles/H_apply.irp.f: -------------------------------------------------------------------------------- 1 | use bitmasks 2 | BEGIN_SHELL [ /usr/bin/env python ] 3 | from generate_h_apply import * 4 | 5 | s = H_apply("just_1h_1p") 6 | s.set_selection_pt2("epstein_nesbet_2x2") 7 | s.filter_only_1h1p() 8 | print s 9 | 10 | 11 | s = H_apply("just_2p") 12 | s.set_selection_pt2("epstein_nesbet_2x2") 13 | s.filter_only_2p() 14 | print s 15 | 16 | 17 | s = H_apply("just_1p") 18 | s.set_selection_pt2("epstein_nesbet_2x2") 19 | s.filter_only_1p() 20 | print s 21 | 22 | 23 | 24 | s = H_apply("just_1h_1p_singles",do_double_exc=False) 25 | s.set_selection_pt2("epstein_nesbet_2x2") 26 | s.filter_only_1h1p() 27 | print s 28 | 29 | 30 | s = H_apply("just_mono",do_double_exc=False) 31 | s.set_selection_pt2("epstein_nesbet_2x2") 32 | print s 33 | 34 | END_SHELL 35 | 36 | -------------------------------------------------------------------------------- /plugins/All_singles/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Generators_restart Perturbation Properties Selectors_no_sorted Utils Davidson 2 | -------------------------------------------------------------------------------- /plugins/All_singles/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/All_singles/tree_dependency.png -------------------------------------------------------------------------------- /plugins/CAS_SD_ZMQ/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [energy] 2 | type: double precision 3 | doc: Calculated CAS-SD energy 4 | interface: ezfio 5 | 6 | [energy_pt2] 7 | type: double precision 8 | doc: Calculated selected CAS-SD energy with PT2 correction 9 | interface: ezfio 10 | 11 | [do_ddci] 12 | type: logical 13 | doc: If true, remove purely inactive double excitations 14 | interface: ezfio,provider,ocaml 15 | default: False 16 | -------------------------------------------------------------------------------- /plugins/CAS_SD_ZMQ/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Generators_CAS Perturbation Selectors_CASSD ZMQ 2 | 3 | -------------------------------------------------------------------------------- /plugins/CAS_SD_ZMQ/energy.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [ double precision, pt2_E0_denominator, (N_states) ] 2 | implicit none 3 | BEGIN_DOC 4 | ! E0 in the denominator of the PT2 5 | END_DOC 6 | pt2_E0_denominator(1:N_states) = CI_electronic_energy(1:N_states) 7 | ! pt2_E0_denominator(1:N_states) = HF_energy - nuclear_repulsion 8 | ! pt2_E0_denominator(1:N_states) = barycentric_electronic_energy(1:N_states) 9 | call write_double(6,pt2_E0_denominator(1)+nuclear_repulsion, 'PT2 Energy denominator') 10 | END_PROVIDER 11 | 12 | -------------------------------------------------------------------------------- /plugins/CAS_SD_ZMQ/selection_types.f90: -------------------------------------------------------------------------------- 1 | module selection_types 2 | type selection_buffer 3 | integer :: N, cur 4 | integer(8), allocatable :: det(:,:,:) 5 | double precision, allocatable :: val(:) 6 | double precision :: mini 7 | endtype 8 | end module 9 | 10 | -------------------------------------------------------------------------------- /plugins/CID/H_apply.irp.f: -------------------------------------------------------------------------------- 1 | ! Generates subroutine H_apply_cid 2 | ! ---------------------------------- 3 | 4 | BEGIN_SHELL [ /usr/bin/env python ] 5 | from generate_h_apply import H_apply 6 | H = H_apply("cid",do_double_exc=True,do_mono_exc=False) 7 | print H 8 | END_SHELL 9 | 10 | -------------------------------------------------------------------------------- /plugins/CID/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Selectors_full SingleRefMethod Davidson 2 | -------------------------------------------------------------------------------- /plugins/CID/cid.irp.f: -------------------------------------------------------------------------------- 1 | program cid 2 | implicit none 3 | integer :: i 4 | 5 | print *, 'HF = ', HF_energy 6 | print *, 'N_states = ', N_states 7 | N_det = 1 8 | touch psi_det psi_coef N_det 9 | call H_apply_cid 10 | print *, 'N_det = ', N_det 11 | do i = 1,N_states 12 | print *, 'energy = ',CI_energy(i) 13 | print *, 'E_corr = ',CI_electronic_energy(i) - ref_bitmask_energy 14 | enddo 15 | 16 | ! call CISD_SC2(psi_det,psi_coef,eigvalues,size(psi_coef,1),N_det,N_states,N_int) 17 | ! do i = 1, N_states 18 | ! print*,'eigvalues(i) = ',eigvalues(i) 19 | ! enddo 20 | end 21 | -------------------------------------------------------------------------------- /plugins/CID/cid_lapack.irp.f: -------------------------------------------------------------------------------- 1 | program cid 2 | implicit none 3 | integer :: i 4 | 5 | diag_algorithm = "Lapack" 6 | touch diag_algorithm 7 | print *, 'HF = ', HF_energy 8 | print *, 'N_states = ', N_states 9 | call H_apply_cid 10 | print *, 'N_det = ', N_det 11 | do i = 1,N_states 12 | print *, 'energy = ',CI_energy(i) 13 | print *, 'E_corr = ',CI_electronic_energy(i) - ref_bitmask_energy 14 | enddo 15 | 16 | end 17 | -------------------------------------------------------------------------------- /plugins/CID/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/CID/tree_dependency.png -------------------------------------------------------------------------------- /plugins/CID_SC2_selected/H_apply.irp.f: -------------------------------------------------------------------------------- 1 | use bitmasks 2 | BEGIN_SHELL [ /usr/bin/env python ] 3 | from generate_h_apply import * 4 | from perturbation import perturbations 5 | 6 | s = H_apply("PT2",SingleRef=True,do_mono_exc=False,do_double_exc=True) 7 | s.set_perturbation("epstein_nesbet_sc2_projected") 8 | print s 9 | END_SHELL 10 | 11 | -------------------------------------------------------------------------------- /plugins/CID_SC2_selected/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | CID_selected 2 | -------------------------------------------------------------------------------- /plugins/CID_SC2_selected/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/CID_SC2_selected/tree_dependency.png -------------------------------------------------------------------------------- /plugins/CID_selected/H_apply.irp.f: -------------------------------------------------------------------------------- 1 | use bitmasks 2 | BEGIN_SHELL [ /usr/bin/env python ] 3 | from generate_h_apply import * 4 | from perturbation import perturbations 5 | 6 | for perturbation in perturbations: 7 | s = H_apply("cisd_selection_"+perturbation,do_mono_exc=False) 8 | s.set_selection_pt2(perturbation) 9 | print s 10 | END_SHELL 11 | 12 | 13 | subroutine H_apply_cisd_selection(perturbation,pt2, norm_pert, H_pert_diag, N_st) 14 | implicit none 15 | character*(64), intent(in) :: perturbation 16 | integer, intent(in) :: N_st 17 | double precision, intent(inout):: pt2(N_st), norm_pert(N_st), H_pert_diag(N_st) 18 | 19 | BEGIN_SHELL [ /usr/bin/env python ] 20 | from perturbation import perturbations 21 | 22 | for perturbation in perturbations: 23 | print """ 24 | if (perturbation == '%s') then 25 | call H_apply_cisd_selection_%s(pt2, norm_pert, H_pert_diag, N_st) 26 | endif 27 | """%(perturbation,perturbation) 28 | END_SHELL 29 | 30 | 31 | end 32 | -------------------------------------------------------------------------------- /plugins/CID_selected/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Perturbation CID 2 | -------------------------------------------------------------------------------- /plugins/CID_selected/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/CID_selected/tree_dependency.png -------------------------------------------------------------------------------- /plugins/CIS/H_apply.irp.f: -------------------------------------------------------------------------------- 1 | ! Generates subroutine H_apply_cisd 2 | ! ---------------------------------- 3 | 4 | BEGIN_SHELL [ /usr/bin/env python ] 5 | from generate_h_apply import H_apply 6 | H = H_apply("cis",do_double_exc=False) 7 | print H 8 | END_SHELL 9 | 10 | -------------------------------------------------------------------------------- /plugins/CIS/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Selectors_full SingleRefMethod Davidson 2 | -------------------------------------------------------------------------------- /plugins/CIS/cis.irp.f: -------------------------------------------------------------------------------- 1 | program cis 2 | implicit none 3 | read_wf = .False. 4 | SOFT_TOUCH read_wf 5 | call run 6 | end 7 | 8 | subroutine run 9 | implicit none 10 | integer :: i 11 | 12 | call H_apply_cis 13 | print *, 'N_det = ', N_det 14 | do i = 1,N_states 15 | print *, 'energy = ',CI_energy(i) 16 | print *, 'E_corr = ',CI_electronic_energy(i) - ref_bitmask_energy 17 | enddo 18 | psi_coef = ci_eigenvectors 19 | SOFT_TOUCH psi_coef 20 | call save_wavefunction 21 | 22 | end 23 | -------------------------------------------------------------------------------- /plugins/CIS/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/CIS/tree_dependency.png -------------------------------------------------------------------------------- /plugins/CISD/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [energy] 2 | type: double precision 3 | doc: Variational CISD energy 4 | interface: ezfio 5 | 6 | [energy_pt2] 7 | type: double precision 8 | doc: Estimated CISD energy (including PT2) 9 | interface: ezfio 10 | 11 | -------------------------------------------------------------------------------- /plugins/CISD/H_apply.irp.f: -------------------------------------------------------------------------------- 1 | ! Generates subroutine H_apply_cisd 2 | ! ---------------------------------- 3 | 4 | BEGIN_SHELL [ /usr/bin/env python ] 5 | from generate_h_apply import H_apply 6 | H = H_apply("cisd") 7 | print H 8 | END_SHELL 9 | 10 | -------------------------------------------------------------------------------- /plugins/CISD/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Selectors_full SingleRefMethod Davidson 2 | -------------------------------------------------------------------------------- /plugins/CISD/cisd.irp.f: -------------------------------------------------------------------------------- 1 | program cisd 2 | implicit none 3 | integer :: i 4 | 5 | print *, 'HF = ', HF_energy 6 | print *, 'N_states = ', N_states 7 | N_det = 1 8 | touch psi_det psi_coef N_det 9 | call H_apply_cisd 10 | print *, 'N_det = ', N_det 11 | do i = 1,N_states 12 | print *, 'energy = ',CI_energy(i) 13 | print *, 'E_corr = ',CI_electronic_energy(i) - ref_bitmask_energy 14 | enddo 15 | 16 | call ezfio_set_cisd_energy(CI_energy(1)) 17 | psi_coef = ci_eigenvectors 18 | SOFT_TOUCH psi_coef 19 | call save_wavefunction 20 | end 21 | -------------------------------------------------------------------------------- /plugins/CISD/cisd_lapack.irp.f: -------------------------------------------------------------------------------- 1 | program cisd 2 | implicit none 3 | integer :: i 4 | 5 | diag_algorithm = "Lapack" 6 | touch diag_algorithm 7 | print *, 'HF = ', HF_energy 8 | print *, 'N_states = ', N_states 9 | call H_apply_cisd 10 | print *, 'N_det = ', N_det 11 | do i = 1,N_states 12 | print *, 'energy = ',CI_energy(i) 13 | print *, 'E_corr = ',CI_electronic_energy(i) - ref_bitmask_energy 14 | enddo 15 | 16 | end 17 | -------------------------------------------------------------------------------- /plugins/CISD/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/CISD/tree_dependency.png -------------------------------------------------------------------------------- /plugins/CISD_SC2_selected/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [energy] 2 | type: double precision 3 | doc: Calculated CISD_SC2 energy of ground_state 4 | interface: ezfio 5 | 6 | [energy_pt2] 7 | type: double precision 8 | doc: Calculated CISD_SC2 energy+pt2 of ground_state 9 | interface: ezfio 10 | 11 | -------------------------------------------------------------------------------- /plugins/CISD_SC2_selected/H_apply.irp.f: -------------------------------------------------------------------------------- 1 | use bitmasks 2 | BEGIN_SHELL [ /usr/bin/env python ] 3 | from generate_h_apply import * 4 | from perturbation import perturbations 5 | 6 | s = H_apply("SC2_selected",SingleRef=True) 7 | s.set_selection_pt2("epstein_nesbet_sc2_no_projected") 8 | print s 9 | 10 | s = H_apply("PT2",SingleRef=True) 11 | s.set_perturbation("epstein_nesbet_sc2_no_projected") 12 | print s 13 | 14 | s = H_apply("PT2_en_sc2",SingleRef=True) 15 | s.set_perturbation("epstein_nesbet_sc2") 16 | print s 17 | END_SHELL 18 | 19 | -------------------------------------------------------------------------------- /plugins/CISD_SC2_selected/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | CISD_selected 2 | -------------------------------------------------------------------------------- /plugins/CISD_SC2_selected/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/CISD_SC2_selected/tree_dependency.png -------------------------------------------------------------------------------- /plugins/CISD_selected/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [energy] 2 | type: double precision 3 | doc: Variational Selected CISD energy 4 | interface: ezfio 5 | 6 | [energy_pt2] 7 | type: double precision 8 | doc: Estimated CISD energy (including PT2) 9 | interface: ezfio 10 | 11 | -------------------------------------------------------------------------------- /plugins/CISD_selected/H_apply.irp.f: -------------------------------------------------------------------------------- 1 | use bitmasks 2 | BEGIN_SHELL [ /usr/bin/env python ] 3 | from generate_h_apply import * 4 | from perturbation import perturbations 5 | 6 | for perturbation in perturbations: 7 | s = H_apply("cisd_selection_"+perturbation) 8 | s.set_selection_pt2(perturbation) 9 | print s 10 | END_SHELL 11 | 12 | 13 | subroutine H_apply_cisd_selection(perturbation,pt2, norm_pert, H_pert_diag, N_st) 14 | implicit none 15 | character*(64), intent(in) :: perturbation 16 | integer, intent(in) :: N_st 17 | double precision, intent(inout):: pt2(N_st), norm_pert(N_st), H_pert_diag(N_st) 18 | 19 | BEGIN_SHELL [ /usr/bin/env python ] 20 | from perturbation import perturbations 21 | 22 | for perturbation in perturbations: 23 | print """ 24 | if (perturbation == '%s') then 25 | call H_apply_cisd_selection_%s(pt2, norm_pert, H_pert_diag, N_st) 26 | endif 27 | """%(perturbation,perturbation) 28 | END_SHELL 29 | 30 | 31 | end 32 | -------------------------------------------------------------------------------- /plugins/CISD_selected/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Perturbation CISD 2 | -------------------------------------------------------------------------------- /plugins/CISD_selected/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/CISD_selected/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Casino/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants Davidson 2 | -------------------------------------------------------------------------------- /plugins/Casino/README.rst: -------------------------------------------------------------------------------- 1 | ====== 2 | Casino 3 | ====== 4 | 5 | Documentation 6 | ============= 7 | 8 | .. Do not edit this section. It was auto-generated from the 9 | .. by the `update_README.py` script. 10 | 11 | `prog_save_casino `_ 12 | Undocumented 13 | 14 | 15 | `save_casino `_ 16 | Undocumented 17 | 18 | Needed Modules 19 | ============== 20 | 21 | .. Do not edit this section. It was auto-generated from the 22 | .. by the `update_README.py` script. 23 | 24 | .. image:: tree_dependency.png 25 | 26 | * `Determinants `_ 27 | 28 | -------------------------------------------------------------------------------- /plugins/Casino/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Casino/tree_dependency.png -------------------------------------------------------------------------------- /plugins/DFT_Utils/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [energy] 2 | type: double precision 3 | doc: Calculated energy 4 | interface: ezfio 5 | -------------------------------------------------------------------------------- /plugins/DFT_Utils/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants 2 | -------------------------------------------------------------------------------- /plugins/DFT_Utils/test_integration_3d_density.irp.f: -------------------------------------------------------------------------------- 1 | program pouet 2 | print*,'coucou' 3 | read_wf = .True. 4 | touch read_wf 5 | print*,'m_knowles = ',m_knowles 6 | call routine 7 | 8 | end 9 | subroutine routine 10 | implicit none 11 | integer :: i 12 | double precision :: accu(2) 13 | accu = 0.d0 14 | do i = 1, nucl_num 15 | accu(1) += integral_density_alpha_knowles_becke_per_atom(i) 16 | accu(2) += integral_density_beta_knowles_becke_per_atom(i) 17 | enddo 18 | print*,'accu(1) = ',accu(1) 19 | print*,'Nalpha = ',elec_alpha_num 20 | print*,'accu(2) = ',accu(2) 21 | print*,'Nalpha = ',elec_beta_num 22 | 23 | 24 | end 25 | -------------------------------------------------------------------------------- /plugins/DensityMatrix/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Bitmask -------------------------------------------------------------------------------- /plugins/Dressed_Ref_Hamiltonian/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | MRCC_Utils 2 | -------------------------------------------------------------------------------- /plugins/Dressed_Ref_Hamiltonian/README.rst: -------------------------------------------------------------------------------- 1 | ======================= 2 | Dressed_Ref_Hamiltonian 3 | ======================= 4 | The following modules proposes to build an effective Hamiltonian 5 | spanned on the reference determinants supposed to be the CAS ones. 6 | The effective matrix Hamiltonian are built using the multi parentage 7 | proposal used in the MR-CCSD formalism of Giner et. al. (JCP, 144, 064101 (2016); doi: 10.1063/1.4940781) 8 | 9 | Needed Modules 10 | ============== 11 | .. Do not edit this section It was auto-generated 12 | .. by the `update_README.py` script. 13 | Documentation 14 | ============= 15 | .. Do not edit this section It was auto-generated 16 | .. by the `update_README.py` script. 17 | -------------------------------------------------------------------------------- /plugins/FCIdump/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants Davidson 2 | -------------------------------------------------------------------------------- /plugins/FCIdump/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/FCIdump/tree_dependency.png -------------------------------------------------------------------------------- /plugins/FOBOCI/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Perturbation Selectors_no_sorted Hartree_Fock Davidson CISD 2 | -------------------------------------------------------------------------------- /plugins/FOBOCI/fobo_coupled_ci.irp.f: -------------------------------------------------------------------------------- 1 | program osoci_program 2 | implicit none 3 | call new_approach 4 | ! call save_natural_mos 5 | end 6 | -------------------------------------------------------------------------------- /plugins/FOBOCI/fobo_diff_dm.irp.f: -------------------------------------------------------------------------------- 1 | program osoci_program 2 | call debug_det(ref_bitmask,N_int) 3 | 4 | implicit none 5 | call FOBOCI_lmct_mlct_old_thr 6 | call provide_all_the_rest 7 | end 8 | subroutine provide_all_the_rest 9 | implicit none 10 | integer :: i 11 | call update_one_body_dm_mo 12 | call provide_properties 13 | call save_osoci_natural_mos 14 | call save_mos 15 | 16 | 17 | 18 | end 19 | -------------------------------------------------------------------------------- /plugins/FOBOCI/foboci_reunion.irp.f: -------------------------------------------------------------------------------- 1 | program osoci_program 2 | implicit none 3 | do_it_perturbative = .True. 4 | touch do_it_perturbative 5 | call FOBOCI_lmct_mlct_old_thr 6 | call provide_all_the_rest 7 | end 8 | subroutine provide_all_the_rest 9 | implicit none 10 | integer :: i 11 | call update_one_body_dm_mo 12 | call set_lmct_mlct_to_psi_det 13 | call diagonalize_CI 14 | call save_wavefunction 15 | 16 | 17 | end 18 | 19 | -------------------------------------------------------------------------------- /plugins/FOBOCI/save_fock_diag_inactiv_virt.irp.f: -------------------------------------------------------------------------------- 1 | program save_fock_inactiv_virt_mos 2 | implicit none 3 | call diag_inactive_virt_and_update_mos 4 | call save_mos 5 | 6 | 7 | end 8 | -------------------------------------------------------------------------------- /plugins/Full_CI/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [energy] 2 | type: double precision 3 | doc: Calculated Selected FCI energy 4 | interface: ezfio 5 | 6 | [energy_pt2] 7 | type: double precision 8 | doc: Calculated FCI energy + PT2 9 | interface: ezfio 10 | 11 | -------------------------------------------------------------------------------- /plugins/Full_CI/H_apply.irp.f: -------------------------------------------------------------------------------- 1 | use bitmasks 2 | BEGIN_SHELL [ /usr/bin/env python ] 3 | from generate_h_apply import * 4 | 5 | s = H_apply("FCI") 6 | s.set_selection_pt2("epstein_nesbet_2x2") 7 | #s.set_selection_pt2("qdpt") 8 | print s 9 | 10 | s = H_apply("FCI_PT2") 11 | s.set_perturbation("epstein_nesbet_2x2") 12 | #s.set_perturbation("qdpt") 13 | s.unset_openmp() 14 | print s 15 | 16 | s = H_apply("FCI_no_selection") 17 | s.set_selection_pt2("dummy") 18 | print s 19 | 20 | s = H_apply("FCI_mono") 21 | s.set_selection_pt2("epstein_nesbet_2x2") 22 | s.unset_double_excitations() 23 | s.unset_openmp() 24 | print s 25 | 26 | 27 | 28 | END_SHELL 29 | 30 | -------------------------------------------------------------------------------- /plugins/Full_CI/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Perturbation Selectors_full Generators_full Davidson 2 | -------------------------------------------------------------------------------- /plugins/Full_CI/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Full_CI/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Full_CI_ZMQ/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [energy] 2 | type: double precision 3 | doc: Calculated Selected FCI energy 4 | interface: ezfio 5 | 6 | [energy_pt2] 7 | type: double precision 8 | doc: Calculated FCI energy + PT2 9 | interface: ezfio 10 | 11 | [iterative_save] 12 | type: integer 13 | doc: Save data at each iteration : 1(Append) | 2(Overwrite) | 3(NoSave) 14 | interface: ezfio,ocaml 15 | default: 2 16 | 17 | [n_iter] 18 | interface: ezfio 19 | doc: number of iterations 20 | type:integer 21 | 22 | [n_det_iter] 23 | interface: ezfio 24 | doc: number of determinants at iteration 25 | type: integer 26 | size: (full_ci_zmq.n_iter) 27 | 28 | [energy_iter] 29 | interface: ezfio 30 | doc: The energy without a pt2 correction for n_det 31 | type: double precision 32 | size: (determinants.n_states,full_ci_zmq.n_iter) 33 | 34 | [pt2_iter] 35 | interface: ezfio 36 | doc: The pt2 correction for n_det 37 | type: double precision 38 | size: (determinants.n_states,full_ci_zmq.n_iter) 39 | -------------------------------------------------------------------------------- /plugins/Full_CI_ZMQ/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Perturbation Selectors_full Generators_full ZMQ FourIdx MPI 2 | -------------------------------------------------------------------------------- /plugins/Full_CI_ZMQ/energy.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [ logical, initialize_pt2_E0_denominator ] 2 | implicit none 3 | BEGIN_DOC 4 | ! If true, initialize pt2_E0_denominator 5 | END_DOC 6 | initialize_pt2_E0_denominator = .True. 7 | END_PROVIDER 8 | 9 | BEGIN_PROVIDER [ double precision, pt2_E0_denominator, (N_states) ] 10 | implicit none 11 | BEGIN_DOC 12 | ! E0 in the denominator of the PT2 13 | END_DOC 14 | if (initialize_pt2_E0_denominator) then 15 | pt2_E0_denominator(1:N_states) = psi_energy(1:N_states) 16 | ! call ezfio_get_full_ci_zmq_energy(pt2_E0_denominator(1)) 17 | ! pt2_E0_denominator(1) -= nuclear_repulsion 18 | ! pt2_E0_denominator(1:N_states) = HF_energy - nuclear_repulsion 19 | ! pt2_E0_denominator(1:N_states) = barycentric_electronic_energy(1:N_states) 20 | call write_double(6,pt2_E0_denominator(1)+nuclear_repulsion, 'PT2 Energy denominator') 21 | else 22 | pt2_E0_denominator = -huge(1.d0) 23 | endif 24 | END_PROVIDER 25 | 26 | -------------------------------------------------------------------------------- /plugins/Full_CI_ZMQ/selection_types.f90: -------------------------------------------------------------------------------- 1 | module selection_types 2 | type selection_buffer 3 | integer :: N, cur 4 | integer(8) , pointer :: det(:,:,:) 5 | double precision, pointer :: val(:) 6 | double precision :: mini 7 | endtype 8 | end module 9 | 10 | -------------------------------------------------------------------------------- /plugins/Full_CI_ZMQ/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Full_CI_ZMQ/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Full_CI_ZMQ_GPI2/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Full_CI_ZMQ GPI2 2 | -------------------------------------------------------------------------------- /plugins/Full_CI_ZMQ_GPI2/README.rst: -------------------------------------------------------------------------------- 1 | ================ 2 | Full_CI_ZMQ_GPI2 3 | ================ 4 | 5 | GPI2 Slave for Full_CI with ZMQ. There should be one instance of the slave 6 | per compute node. 7 | 8 | Needed Modules 9 | ============== 10 | .. Do not edit this section It was auto-generated 11 | .. by the `update_README.py` script. 12 | Documentation 13 | ============= 14 | .. Do not edit this section It was auto-generated 15 | .. by the `update_README.py` script. 16 | -------------------------------------------------------------------------------- /plugins/Generators_CAS/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants 2 | -------------------------------------------------------------------------------- /plugins/Generators_CAS/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Generators_CAS/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Generators_full/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants Hartree_Fock 2 | -------------------------------------------------------------------------------- /plugins/Generators_full/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Generators_full/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Generators_restart/ASSUMPTIONS.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Generators_restart/ASSUMPTIONS.rst -------------------------------------------------------------------------------- /plugins/Generators_restart/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants 2 | -------------------------------------------------------------------------------- /plugins/Generators_restart/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Generators_restart/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Hartree_Fock/Huckel_guess.irp.f: -------------------------------------------------------------------------------- 1 | program guess 2 | implicit none 3 | character*(64) :: label 4 | call huckel_guess 5 | 6 | end 7 | -------------------------------------------------------------------------------- /plugins/Hartree_Fock/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Integrals_Bielec MOGuess Bitmask 2 | -------------------------------------------------------------------------------- /plugins/Hartree_Fock/huckel.irp.f: -------------------------------------------------------------------------------- 1 | subroutine huckel_guess 2 | implicit none 3 | BEGIN_DOC 4 | ! Build the MOs using the extended Huckel model 5 | END_DOC 6 | integer :: i,j 7 | double precision :: accu 8 | double precision :: c 9 | character*(64) :: label 10 | double precision, allocatable :: A(:,:) 11 | label = "Guess" 12 | c = 0.5d0 * 1.75d0 13 | 14 | allocate (A(ao_num, ao_num)) 15 | A = 0.d0 16 | do j=1,ao_num 17 | do i=1,ao_num 18 | A(i,j) = c * ao_overlap(i,j) * (ao_mono_elec_integral_diag(i) + ao_mono_elec_integral_diag(j)) 19 | enddo 20 | A(j,j) = ao_mono_elec_integral_diag(j) + ao_bi_elec_integral_alpha(j,j) 21 | enddo 22 | 23 | Fock_matrix_ao_alpha(1:ao_num,1:ao_num) = A(1:ao_num,1:ao_num) 24 | Fock_matrix_ao_beta (1:ao_num,1:ao_num) = A(1:ao_num,1:ao_num) 25 | 26 | ! TOUCH mo_coef 27 | 28 | TOUCH Fock_matrix_ao_alpha Fock_matrix_ao_beta 29 | mo_coef = eigenvectors_fock_matrix_mo 30 | SOFT_TOUCH mo_coef 31 | call save_mos 32 | deallocate(A) 33 | 34 | end 35 | -------------------------------------------------------------------------------- /plugins/Hartree_Fock/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Hartree_Fock/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Hartree_Fock_SlaterDressed/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [slater_expo_ezfio] 2 | type: double precision 3 | doc: Exponents of the additional Slater functions 4 | size: (nuclei.nucl_num) 5 | interface: ezfio, provider 6 | 7 | [slater_coef_ezfio] 8 | type: double precision 9 | doc: Exponents of the additional Slater functions 10 | size: (nuclei.nucl_num,mo_basis.mo_tot_num) 11 | interface: ezfio, provider 12 | 13 | [projector] 14 | type: double precision 15 | doc: Orthogonal AO basis 16 | size: (ao_basis.ao_num,ao_basis.ao_num) 17 | interface: ezfio 18 | 19 | [ao_orthoSlaOverlap] 20 | type: double precision 21 | doc: Orthogonal AO basis 22 | size: (ao_basis.ao_num,nuclei.nucl_num) 23 | interface: ezfio 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /plugins/MP2/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [energy] 2 | type: double precision 3 | doc: MP2 energy 4 | interface: ezfio 5 | 6 | -------------------------------------------------------------------------------- /plugins/MP2/H_apply.irp.f: -------------------------------------------------------------------------------- 1 | use bitmasks 2 | BEGIN_SHELL [ /usr/bin/env python ] 3 | from generate_h_apply import * 4 | from perturbation import perturbations 5 | 6 | s = H_apply("mp2") 7 | s.set_perturbation("Moller_plesset") 8 | print s 9 | 10 | s = H_apply("mp2_selection") 11 | s.set_selection_pt2("Moller_Plesset") 12 | print s 13 | END_SHELL 14 | 15 | -------------------------------------------------------------------------------- /plugins/MP2/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Perturbation Selectors_full SingleRefMethod ZMQ 2 | -------------------------------------------------------------------------------- /plugins/MP2/mp2.irp.f: -------------------------------------------------------------------------------- 1 | program mp2 2 | no_vvvv_integrals = .True. 3 | SOFT_TOUCH no_vvvv_integrals 4 | call run 5 | end 6 | 7 | subroutine run 8 | implicit none 9 | double precision, allocatable :: pt2(:), norm_pert(:) 10 | double precision :: H_pert_diag, E_old 11 | integer :: N_st, iter 12 | PROVIDE Fock_matrix_diag_mo H_apply_buffer_allocated 13 | N_st = N_states 14 | allocate (pt2(N_st), norm_pert(N_st)) 15 | E_old = HF_energy 16 | call H_apply_mp2(pt2, norm_pert, H_pert_diag, N_st) 17 | print *, 'N_det = ', N_det 18 | print *, 'N_states = ', N_states 19 | print *, 'MP2 = ', pt2 20 | print *, 'E = ', E_old 21 | print *, 'E+MP2 = ', E_old+pt2 22 | deallocate(pt2,norm_pert) 23 | end 24 | -------------------------------------------------------------------------------- /plugins/MP2/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/MP2/tree_dependency.png -------------------------------------------------------------------------------- /plugins/MRCC_Utils/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [energy] 2 | type: double precision 3 | doc: Calculated MRCC energy 4 | interface: ezfio -------------------------------------------------------------------------------- /plugins/MRCC_Utils/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Perturbation Selectors_full Generators_full Psiref_Utils Psiref_CAS 2 | -------------------------------------------------------------------------------- /plugins/MRCC_Utils/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/MRCC_Utils/tree_dependency.png -------------------------------------------------------------------------------- /plugins/MRPT/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | MRPT_Utils Selectors_full Generators_full 2 | -------------------------------------------------------------------------------- /plugins/MRPT/README.rst: -------------------------------------------------------------------------------- 1 | ==== 2 | MRPT 3 | ==== 4 | 5 | Executables for Multi-reference perturbation. 6 | 7 | Needed Modules 8 | ============== 9 | .. Do not edit this section It was auto-generated 10 | .. by the `update_README.py` script. 11 | Documentation 12 | ============= 13 | .. Do not edit this section It was auto-generated 14 | .. by the `update_README.py` script. 15 | -------------------------------------------------------------------------------- /plugins/MRPT_Utils/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [do_third_order_1h1p] 2 | type: logical 3 | doc: If true, compute the third order contribution for the 1h1p 4 | interface: ezfio,provider,ocaml 5 | default: True 6 | 7 | 8 | -------------------------------------------------------------------------------- /plugins/MRPT_Utils/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants Davidson Psiref_CAS 2 | -------------------------------------------------------------------------------- /plugins/Molden/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | MO_Basis Utils 2 | -------------------------------------------------------------------------------- /plugins/Molden/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Molden/tree_dependency.png -------------------------------------------------------------------------------- /plugins/OVB/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants Psiref_CAS 2 | -------------------------------------------------------------------------------- /plugins/OVB/README.rst: -------------------------------------------------------------------------------- 1 | ======================= 2 | OVB 3 | ======================= 4 | The present module proposes an orthogonal Valence Bond analysis 5 | of the wave function, that are the printing of the various Hamiltonian 6 | matrix elements on the basis of the level of ionicity of the components 7 | of the wave function. 8 | 9 | Assumptions : it supposes that you have some orthogonal local orbitals within 10 | the active space and that you performed a CI within the active orbitals. 11 | Such CI might be complete or not, no matter. 12 | 13 | Needed Modules 14 | ============== 15 | .. Do not edit this section It was auto-generated 16 | .. by the `update_README.py` script. 17 | Documentation 18 | ============= 19 | .. Do not edit this section It was auto-generated 20 | .. by the `update_README.py` script. 21 | -------------------------------------------------------------------------------- /plugins/OVB/print_ovb.irp.f: -------------------------------------------------------------------------------- 1 | program print_OVB 2 | implicit none 3 | read_wf = .True. 4 | call provide_all 5 | 6 | end 7 | 8 | subroutine provide_all 9 | implicit none 10 | integer :: i,j,k,l,istate 11 | do istate= 1, N_states 12 | print*,'-------------------' 13 | print*,'ISTATE = ',istate 14 | print*,'-------------------' 15 | print*,'CAS MATRIX ' 16 | print*,'' 17 | do i = min_number_ionic,max_number_ionic 18 | write(*,'(I4,X,10(F8.5 ,4X))')i, H_OVB_naked(i,:,istate) 19 | enddo 20 | print*,'' 21 | print*,'-------------------' 22 | print*,'-------------------' 23 | enddo 24 | 25 | 26 | end 27 | 28 | -------------------------------------------------------------------------------- /plugins/OVB_effective_Hamiltonian/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Dressed_Ref_Hamiltonian OVB 2 | -------------------------------------------------------------------------------- /plugins/OVB_effective_Hamiltonian/README.rst: -------------------------------------------------------------------------------- 1 | ========================= 2 | OVB_effective_Hamiltonian 3 | ========================= 4 | Dressing of the OVB matrix by use of the Dressed_Ref_Hamiltonian dressing 5 | 6 | Needed Modules 7 | ============== 8 | .. Do not edit this section It was auto-generated 9 | .. by the `update_README.py` script. 10 | Documentation 11 | ============= 12 | .. Do not edit this section It was auto-generated 13 | .. by the `update_README.py` script. 14 | -------------------------------------------------------------------------------- /plugins/Orbital_Entanglement/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants 2 | -------------------------------------------------------------------------------- /plugins/Orbital_Entanglement/tree_dependency: -------------------------------------------------------------------------------- 1 | // ['Orbital_Entanglement'] 2 | digraph { 3 | Orbital_Entanglement [fontcolor=red] 4 | Orbital_Entanglement -> Determinants 5 | Determinants -> Integrals_Monoelec 6 | Integrals_Monoelec -> MO_Basis 7 | MO_Basis -> AO_Basis 8 | AO_Basis -> Nuclei 9 | Nuclei -> Ezfio_files 10 | Nuclei -> Utils 11 | MO_Basis -> Electrons 12 | Electrons -> Ezfio_files 13 | Integrals_Monoelec -> Pseudo 14 | Pseudo -> Nuclei 15 | Determinants -> Integrals_Bielec 16 | Integrals_Bielec -> Pseudo 17 | Integrals_Bielec -> Bitmask 18 | Bitmask -> MO_Basis 19 | Integrals_Bielec -> ZMQ 20 | ZMQ -> Utils 21 | } -------------------------------------------------------------------------------- /plugins/Orbital_Entanglement/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Orbital_Entanglement/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Perturbation/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants Properties Hartree_Fock Davidson MRPT_Utils 2 | -------------------------------------------------------------------------------- /plugins/Perturbation/exc_max.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [integer, max_exc_pert] 2 | implicit none 3 | max_exc_pert = 0 4 | END_PROVIDER 5 | -------------------------------------------------------------------------------- /plugins/Perturbation/pert_sc2.irp.f: -------------------------------------------------------------------------------- 1 | double precision function repeat_all_e_corr(key_in) 2 | implicit none 3 | integer(bit_kind), intent(in) :: key_in(N_int,2) 4 | integer :: i,degree 5 | double precision :: accu 6 | use bitmasks 7 | accu = 0.d0 8 | call get_excitation_degree(key_in,ref_bitmask,degree,N_int) 9 | if(degree==2)then 10 | do i = 1, N_det_selectors 11 | call get_excitation_degree(ref_bitmask,psi_selectors(1,1,i),degree,N_int) 12 | if(degree.ne.2)cycle 13 | call get_excitation_degree(key_in,psi_selectors(1,1,i),degree,N_int) 14 | if (degree<=3)cycle 15 | accu += E_corr_per_selectors(i) 16 | enddo 17 | elseif(degree==1)then 18 | do i = 1, N_det_selectors 19 | call get_excitation_degree(ref_bitmask,psi_selectors(1,1,i),degree,N_int) 20 | if(degree.ne.2)cycle 21 | call get_excitation_degree(key_in,psi_selectors(1,1,i),degree,N_int) 22 | if (degree<=2)cycle 23 | accu += E_corr_per_selectors(i) 24 | enddo 25 | endif 26 | repeat_all_e_corr = accu 27 | 28 | end 29 | 30 | -------------------------------------------------------------------------------- /plugins/Perturbation/perturbation.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_SHELL [ /usr/bin/env python ] 2 | from perturbation import perturbations 3 | import os 4 | 5 | filename = os.environ["QP_ROOT"]+"/src/Perturbation/perturbation.template.f" 6 | file = open(filename,'r') 7 | template = file.read() 8 | file.close() 9 | 10 | for p in perturbations: 11 | print template.replace("$PERT",p) 12 | 13 | END_SHELL 14 | -------------------------------------------------------------------------------- /plugins/Perturbation/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Perturbation/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Perturbation/var_pt2_ratio_provider.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [ double precision, var_pt2_ratio ] 2 | implicit none 3 | BEGIN_DOC 4 | ! The selection process stops when the energy ratio variational/(variational+PT2) 5 | ! is equal to var_pt2_ratio 6 | END_DOC 7 | 8 | var_pt2_ratio = correlation_energy_ratio_max 9 | END_PROVIDER 10 | 11 | -------------------------------------------------------------------------------- /plugins/Properties/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [z_one_point] 2 | type: double precision 3 | doc: z point on which the integrated delta rho is calculated 4 | interface: ezfio,provider,ocaml 5 | default: 3.9 6 | 7 | [threshld_two_bod_dm] 8 | type: double precision 9 | doc: threshold for the values of the alpha/beta two body dm evaluation 10 | interface: ezfio,provider,ocaml 11 | default: 0.000001 12 | 13 | -------------------------------------------------------------------------------- /plugins/Properties/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants Davidson 2 | -------------------------------------------------------------------------------- /plugins/Properties/average.irp.f: -------------------------------------------------------------------------------- 1 | subroutine get_average(array,density,average) 2 | implicit none 3 | double precision, intent(in) :: array(mo_tot_num,mo_tot_num) 4 | double precision, intent(in) :: density(mo_tot_num,mo_tot_num) 5 | double precision, intent(out):: average 6 | integer :: i,j 7 | BEGIN_DOC 8 | ! computes the average value of a pure MONO ELECTRONIC OPERATOR 9 | ! whom integrals on the MO basis are stored in "array" 10 | ! and with the density is stored in "density" 11 | END_DOC 12 | average = 0.d0 13 | 14 | !$OMP PARALLEL DO DEFAULT(none) & 15 | !$OMP PRIVATE(i,j) & 16 | !$OMP SHARED(mo_tot_num,array,density) & 17 | !$OMP REDUCTION(+:average) 18 | do i = 1, mo_tot_num 19 | do j = 1, mo_tot_num 20 | average += density(j,i) * array(j,i) 21 | enddo 22 | enddo 23 | !$OMP END PARALLEL DO 24 | 25 | end 26 | -------------------------------------------------------------------------------- /plugins/Properties/give_mos_at_r.irp.f: -------------------------------------------------------------------------------- 1 | subroutine give_all_act_mos_at_r(r,mos_array) 2 | implicit none 3 | double precision, intent(in) :: r(3) 4 | double precision, intent(out) :: mos_array(n_act_orb) 5 | double precision :: aos_array(ao_num),accu 6 | integer :: i,j,iorb 7 | !print*,'n_act_orb = ',n_act_orb 8 | call give_all_aos_at_r(r,aos_array) 9 | do i = 1, n_act_orb 10 | iorb = list_act(i) 11 | accu = 0.d0 12 | do j = 1, ao_num 13 | accu += mo_coef(j,iorb) * aos_array(j) 14 | enddo 15 | mos_array(i) = accu 16 | enddo 17 | end 18 | 19 | subroutine give_all_core_mos_at_r(r,mos_array) 20 | implicit none 21 | double precision, intent(in) :: r(3) 22 | double precision, intent(out) :: mos_array(n_core_orb) 23 | double precision :: aos_array(ao_num),accu 24 | integer :: i,j,iorb 25 | call give_all_aos_at_r(r,aos_array) 26 | do i = 1, n_core_orb 27 | iorb = list_core(i) 28 | accu = 0.d0 29 | do j = 1, ao_num 30 | accu += mo_coef(j,iorb) * aos_array(j) 31 | enddo 32 | mos_array(i) = accu 33 | enddo 34 | end 35 | 36 | -------------------------------------------------------------------------------- /plugins/Properties/print_hcc.irp.f: -------------------------------------------------------------------------------- 1 | program print_hcc_main 2 | implicit none 3 | read_wf = .True. 4 | touch read_wf 5 | ! call print_hcc 6 | call routine 7 | end 8 | 9 | 10 | subroutine routine 11 | implicit none 12 | integer :: i 13 | do i = 1, mo_tot_num 14 | write(*,'(I3,X,1000(F16.10,X))')i,one_body_dm_mo_beta(i,i,1) 15 | enddo 16 | end 17 | 18 | -------------------------------------------------------------------------------- /plugins/Properties/print_mulliken.irp.f: -------------------------------------------------------------------------------- 1 | program print_mulliken 2 | implicit none 3 | read_wf = .True. 4 | touch read_wf 5 | call print_mulliken_sd 6 | end 7 | -------------------------------------------------------------------------------- /plugins/Properties/print_spin_density.irp.f: -------------------------------------------------------------------------------- 1 | program print_sd 2 | implicit none 3 | read_wf = .True. 4 | touch read_wf 5 | call routine 6 | 7 | end 8 | 9 | subroutine routine 10 | implicit none 11 | integer :: i,j,k 12 | double precision :: z 13 | double precision :: r(3),accu,accu_alpha,accu_beta,tmp 14 | double precision, allocatable :: aos_array(:) 15 | allocate(aos_array(ao_num)) 16 | r = 0.d0 17 | r(spin_dens_coord) = z_min 18 | do i = 1, N_z_pts 19 | call give_all_aos_at_r(r,aos_array) 20 | accu = 0.d0 21 | accu_alpha = 0.d0 22 | accu_beta = 0.d0 23 | do j = 1, ao_num 24 | do k = 1, ao_num 25 | tmp = aos_array(k) * aos_array(j) 26 | accu += one_body_spin_density_ao(k,j) * tmp 27 | accu_alpha += one_body_dm_ao_alpha(k,j) * tmp 28 | accu_beta += one_body_dm_ao_beta(k,j) * tmp 29 | enddo 30 | enddo 31 | r(spin_dens_coord) += delta_z 32 | write(33,'(100(f16.10,X))')r(spin_dens_coord),accu,accu_alpha,accu_beta 33 | enddo 34 | 35 | 36 | end 37 | -------------------------------------------------------------------------------- /plugins/Properties/provide_deltarho.irp.f: -------------------------------------------------------------------------------- 1 | program pouet 2 | implicit none 3 | read_wf = .True. 4 | touch read_wf 5 | call routine 6 | end 7 | 8 | subroutine routine 9 | implicit none 10 | provide integrated_delta_rho_all_points 11 | end 12 | -------------------------------------------------------------------------------- /plugins/Properties/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Properties/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Psiref_CAS/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Psiref_Utils Davidson 2 | -------------------------------------------------------------------------------- /plugins/Psiref_CAS/overwrite_with_cas.irp.f: -------------------------------------------------------------------------------- 1 | program overwrite_w_cas 2 | read_wf = .True. 3 | TOUCH read_wf 4 | call extract_ref 5 | end 6 | -------------------------------------------------------------------------------- /plugins/Psiref_CAS/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Psiref_CAS/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Psiref_Utils/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Bitmask Determinants 2 | -------------------------------------------------------------------------------- /plugins/Psiref_Utils/extract_ref.irp.f: -------------------------------------------------------------------------------- 1 | subroutine extract_ref 2 | implicit none 3 | BEGIN_DOC 4 | ! Replaces the total wave function by the normalized projection on the reference 5 | END_DOC 6 | 7 | integer :: i,j,k 8 | do k=1,N_states 9 | do j=1,N_det_ref 10 | psi_coef(j,k) = psi_ref_coef_normalized(j,k) 11 | enddo 12 | enddo 13 | 14 | do j=1,N_det_ref 15 | do k=1,N_int 16 | psi_det(k,1,j) = psi_ref(k,1,j) 17 | psi_det(k,2,j) = psi_ref(k,2,j) 18 | enddo 19 | enddo 20 | N_det = N_det_ref 21 | 22 | call save_wavefunction 23 | 24 | end 25 | -------------------------------------------------------------------------------- /plugins/Psiref_Utils/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Psiref_Utils/tree_dependency.png -------------------------------------------------------------------------------- /plugins/QMC/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [ci_threshold] 2 | type: Threshold 3 | doc: Threshold on the CI coefficients as in QMCChem 4 | interface: ezfio,provider,ocaml 5 | default: 1.e-8 6 | 7 | -------------------------------------------------------------------------------- /plugins/QMC/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants Davidson Full_CI_ZMQ 2 | -------------------------------------------------------------------------------- /plugins/QMC/densify_coefmatrix.irp.f: -------------------------------------------------------------------------------- 1 | program densify 2 | implicit none 3 | read_wf = .True. 4 | touch read_wf 5 | call generate_all_alpha_beta_det_products() 6 | call diagonalize_ci 7 | call save_wavefunction 8 | end 9 | -------------------------------------------------------------------------------- /plugins/QMC/pseudo.irp.f: -------------------------------------------------------------------------------- 1 | subroutine write_pseudopotential 2 | implicit none 3 | BEGIN_DOC 4 | ! Write the pseudo_potential into the EZFIO file 5 | END_DOC 6 | call ezfio_set_pseudo_mo_pseudo_grid(mo_pseudo_grid) 7 | end 8 | 9 | -------------------------------------------------------------------------------- /plugins/QMC/qmc_create_wf.irp.f: -------------------------------------------------------------------------------- 1 | program create_wf 2 | read_wf = .true. 3 | SOFT_TOUCH read_wf 4 | PROVIDE H_apply_buffer_allocated 5 | call generate_all_alpha_beta_det_products 6 | call diagonalize_ci 7 | call save_wavefunction 8 | end 9 | -------------------------------------------------------------------------------- /plugins/QMC/save_for_qmcpack.irp.f: -------------------------------------------------------------------------------- 1 | program qmcpack 2 | implicit none 3 | BEGIN_DOC 4 | ! Generates a file for QMCPACK 5 | END_DOC 6 | 7 | integer :: i,j 8 | read_wf = .True. 9 | TOUCH read_wf 10 | call save_wavefunction 11 | do j=1,ao_prim_num_max 12 | do i=1,ao_num 13 | ao_coef(i,j) = ao_coef(i,j) * ao_coef_normalization_factor(i) 14 | enddo 15 | enddo 16 | call ezfio_set_ao_basis_ao_coef(ao_coef) 17 | do j=1,mo_tot_num 18 | do i=1,ao_num 19 | mo_coef(i,j) *= 1.d0/ao_coef_normalization_factor(i) 20 | enddo 21 | enddo 22 | call save_mos 23 | call system('rm '//trim(ezfio_filename)//'/mo_basis/ao_md5') 24 | call system('$QP_ROOT/src/QMC/qp_convert_qmcpack_to_ezfio.py '//trim(ezfio_filename)) 25 | 26 | end 27 | -------------------------------------------------------------------------------- /plugins/QMC/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/QMC/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Selectors_CASSD/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Selectors_Utils 2 | -------------------------------------------------------------------------------- /plugins/Selectors_CASSD/README.rst: -------------------------------------------------------------------------------- 1 | =============== 2 | Selectors_CASSD 3 | =============== 4 | 5 | Needed Modules 6 | ============== 7 | .. Do not edit this section It was auto-generated 8 | .. by the `update_README.py` script. 9 | 10 | 11 | .. image:: tree_dependency.png 12 | 13 | * `Selectors_Utils `_ 14 | 15 | Documentation 16 | ============= 17 | .. Do not edit this section It was auto-generated 18 | .. by the `update_README.py` script. 19 | 20 | 21 | `n_det_selectors `_ 22 | For Single reference wave functions, the number of selectors is 1 : the 23 | Hartree-Fock determinant 24 | 25 | 26 | `psi_selectors `_ 27 | Determinants on which we apply for perturbation. 28 | 29 | 30 | `psi_selectors_coef `_ 31 | Determinants on which we apply for perturbation. 32 | 33 | -------------------------------------------------------------------------------- /plugins/Selectors_Utils/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants 2 | -------------------------------------------------------------------------------- /plugins/Selectors_Utils/selectors.irp.f: -------------------------------------------------------------------------------- 1 | use bitmasks 2 | 3 | BEGIN_PROVIDER [ integer, psi_selectors_size ] 4 | implicit none 5 | psi_selectors_size = psi_det_size 6 | END_PROVIDER 7 | 8 | BEGIN_PROVIDER [ double precision, psi_selectors_coef_transp, (N_states,psi_selectors_size) ] 9 | implicit none 10 | BEGIN_DOC 11 | ! Transposed psi_selectors 12 | END_DOC 13 | integer :: i,k 14 | 15 | do i=1,N_det_selectors 16 | do k=1,N_states 17 | psi_selectors_coef_transp(k,i) = psi_selectors_coef(i,k) 18 | enddo 19 | enddo 20 | END_PROVIDER 21 | 22 | BEGIN_PROVIDER [ double precision, psi_selectors_diag_h_mat, (psi_selectors_size) ] 23 | implicit none 24 | BEGIN_DOC 25 | ! Diagonal elements of the H matrix for each selectors 26 | END_DOC 27 | integer :: i 28 | double precision :: diag_H_mat_elem 29 | do i = 1, N_det_selectors 30 | psi_selectors_diag_h_mat(i) = diag_H_mat_elem(psi_selectors(1,1,i),N_int) 31 | enddo 32 | END_PROVIDER 33 | 34 | 35 | -------------------------------------------------------------------------------- /plugins/Selectors_full/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants Hartree_Fock Selectors_Utils 2 | -------------------------------------------------------------------------------- /plugins/Selectors_full/README.rst: -------------------------------------------------------------------------------- 1 | ===================== 2 | Selectors_full Module 3 | ===================== 4 | 5 | Needed Modules 6 | ============== 7 | 8 | .. Do not edit this section It was auto-generated 9 | .. by the `update_README.py` script. 10 | 11 | .. image:: tree_dependency.png 12 | 13 | * `Determinants `_ 14 | * `Hartree_Fock `_ 15 | 16 | Needed Modules 17 | ============== 18 | .. Do not edit this section It was auto-generated 19 | .. by the `update_README.py` script. 20 | 21 | 22 | .. image:: tree_dependency.png 23 | 24 | * `Determinants `_ 25 | * `Hartree_Fock `_ 26 | * `Selectors_Utils `_ 27 | 28 | Documentation 29 | ============= 30 | .. Do not edit this section It was auto-generated 31 | .. by the `update_README.py` script. 32 | 33 | 34 | -------------------------------------------------------------------------------- /plugins/Selectors_full/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Selectors_full/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Selectors_no_sorted/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants Selectors_Utils 2 | -------------------------------------------------------------------------------- /plugins/Selectors_no_sorted/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/Selectors_no_sorted/tree_dependency.png -------------------------------------------------------------------------------- /plugins/SingleRefMethod/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Bitmask 2 | -------------------------------------------------------------------------------- /plugins/SingleRefMethod/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/SingleRefMethod/tree_dependency.png -------------------------------------------------------------------------------- /plugins/Symmetry/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Bitmask Nuclei Determinants 2 | -------------------------------------------------------------------------------- /plugins/Symmetry/README.rst: -------------------------------------------------------------------------------- 1 | ======== 2 | Symmetry 3 | ======== 4 | 5 | Needed Modules 6 | ============== 7 | .. Do not edit this section It was auto-generated 8 | .. by the `update_README.py` script. 9 | Documentation 10 | ============= 11 | .. Do not edit this section It was auto-generated 12 | .. by the `update_README.py` script. 13 | -------------------------------------------------------------------------------- /plugins/Symmetry/Symmetry.main.irp.f: -------------------------------------------------------------------------------- 1 | program Symmetry 2 | implicit none 3 | BEGIN_DOC 4 | ! TODO 5 | END_DOC 6 | integer :: i, j, k 7 | character*8 :: sym 8 | 9 | do k=1,n_irrep 10 | print *, sym_operation(k) 11 | do i=1,mo_tot_num 12 | print '(1000(F8.4,X))', mo_symm(i,:,k), sum(mo_symm(i,:,k)) 13 | enddo 14 | print *, '' 15 | enddo 16 | 17 | print *, 'Molecule is linear: ', molecule_is_linear 18 | print *, 'Has center of inversion: ', molecule_has_center_of_inversion 19 | print *, 'Has S2n improper rotation: ', molecule_has_improper_rotation 20 | print *, 'Symmetry rotation axis: ', sym_rotation_axis(:) 21 | print *, 'Group: '//point_group 22 | print *, 'Symmetry irreps : ', sym_irrep(1:n_irrep) 23 | print *, 'Symmetry operations : ', sym_operation(1:n_irrep) 24 | print *, 'Character table' 25 | do i=1,n_irrep 26 | print *, i, real(character_table(i,:)) 27 | enddo 28 | end 29 | -------------------------------------------------------------------------------- /plugins/analyze_wf/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants 2 | -------------------------------------------------------------------------------- /plugins/analyze_wf/README.rst: -------------------------------------------------------------------------------- 1 | ========== 2 | analyze_wf 3 | ========== 4 | 5 | Needed Modules 6 | ============== 7 | .. Do not edit this section It was auto-generated 8 | .. by the `update_README.py` script. 9 | Documentation 10 | ============= 11 | .. Do not edit this section It was auto-generated 12 | .. by the `update_README.py` script. 13 | -------------------------------------------------------------------------------- /plugins/analyze_wf/dump_nto.irp.f: -------------------------------------------------------------------------------- 1 | program dump_nto 2 | implicit none 3 | integer :: i,j, istate 4 | 5 | print *, 'Phi_S' 6 | do i=2,N_states 7 | print *, i, Phi_S(i) 8 | enddo 9 | 10 | do istate=2,N_states 11 | do j=1,mo_tot_num 12 | print *, 'MO: ', j, 'State:', istate, 'Eig:', one_body_dm_mo_diff_eigvalues(j,istate) 13 | do i=1,ao_num 14 | print *, i, transition_natorb(i,j,istate) 15 | enddo 16 | enddo 17 | enddo 18 | 19 | end 20 | -------------------------------------------------------------------------------- /plugins/analyze_wf/dump_one_body_mos.irp.f: -------------------------------------------------------------------------------- 1 | program dump_one_body_mos 2 | implicit none 3 | BEGIN_DOC 4 | ! Output density matrices of all the states 5 | END_DOC 6 | read_wf = .True. 7 | TOUCH read_wf 8 | call run() 9 | end 10 | 11 | subroutine run 12 | implicit none 13 | integer :: istate 14 | integer, parameter :: iunit = 66 15 | character*(64) :: filename, fmt 16 | integer :: i,j,k 17 | 18 | write(fmt,'(''('',I4.4,''(X,E20.14))'')') mo_tot_num 19 | do istate=1,N_states 20 | write(filename,'(''state.'',I2.2)') istate 21 | open(unit=iunit, form='formatted', file=filename) 22 | write(iunit,*) mo_tot_num 23 | do j=1,mo_tot_num 24 | write(iunit,fmt) one_body_dm_mo_alpha(1:mo_tot_num,j,istate) + one_body_dm_mo_beta(1:mo_tot_num,j,istate) 25 | enddo 26 | enddo 27 | 28 | 29 | call run2() 30 | end 31 | subroutine run2 32 | integer :: i,j, istate 33 | print *, 'Phi_S' 34 | do i=2,N_states 35 | print *, i, Phi_S(i) 36 | enddo 37 | end 38 | 39 | -------------------------------------------------------------------------------- /plugins/analyze_wf/occupation.irp.f: -------------------------------------------------------------------------------- 1 | subroutine get_occupation_from_dets(istate,occupation) 2 | implicit none 3 | double precision, intent(out) :: occupation(mo_tot_num) 4 | integer, intent(in) :: istate 5 | BEGIN_DOC 6 | ! Returns the average occupation of the MOs 7 | END_DOC 8 | integer :: i,j, ispin 9 | integer :: list(N_int*bit_kind_size,2) 10 | integer :: n_elements(2) 11 | double precision :: c 12 | ASSERT (istate > 0) 13 | ASSERT (istate <= N_states) 14 | 15 | occupation = 0.d0 16 | do i=1,N_det 17 | c = psi_coef(i,istate)*psi_coef(i,istate) 18 | call bitstring_to_list_ab(psi_det(1,1,i), list, n_elements, N_int) 19 | do ispin=1,2 20 | do j=1,n_elements(ispin) 21 | ASSERT ( list(j,ispin) < mo_tot_num ) 22 | occupation( list(j,ispin) ) += c 23 | enddo 24 | enddo 25 | enddo 26 | end 27 | -------------------------------------------------------------------------------- /plugins/loc_cele/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | MO_Basis Integrals_Bielec Bitmask 2 | -------------------------------------------------------------------------------- /plugins/loc_cele/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/loc_cele/tree_dependency.png -------------------------------------------------------------------------------- /plugins/mrcepa0/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [lambda_type] 2 | type: Positive_int 3 | doc: lambda type 4 | interface: ezfio,provider,ocaml 5 | default: 0 6 | 7 | [energy] 8 | type: double precision 9 | doc: Calculated energy 10 | interface: ezfio 11 | 12 | [energy_pt2] 13 | type: double precision 14 | doc: Calculated energy with PT2 contribution 15 | interface: ezfio 16 | 17 | [perturbative_triples] 18 | type: logical 19 | doc: Compute perturbative contribution of the Triples 20 | interface: ezfio,provider,ocaml 21 | default: false 22 | 23 | [energy] 24 | type: double precision 25 | doc: Calculated energy 26 | interface: ezfio 27 | 28 | [thresh_dressed_ci] 29 | type: Threshold 30 | doc: Threshold on the convergence of the dressed CI energy 31 | interface: ezfio,provider,ocaml 32 | default: 1.e-5 33 | 34 | [n_it_max_dressed_ci] 35 | type: Strictly_positive_int 36 | doc: Maximum number of dressed CI iterations 37 | interface: ezfio,provider,ocaml 38 | default: 10 39 | 40 | -------------------------------------------------------------------------------- /plugins/mrcepa0/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Perturbation Selectors_full Generators_full Psiref_CAS MRCC_Utils ZMQ 2 | -------------------------------------------------------------------------------- /plugins/mrcepa0/dress_types.f90: -------------------------------------------------------------------------------- 1 | module dress_types 2 | type dress_buffer 3 | double precision, pointer :: buf(:,:,:), buf0(:,:), coef(:) 4 | double precision :: N 5 | integer, pointer :: det_to_buf(:), buf_to_det(:) 6 | integer :: free_under, pos, N_slot 7 | logical :: full 8 | endtype 9 | end module 10 | 11 | -------------------------------------------------------------------------------- /plugins/mrcepa0/energy.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [ logical, initialize_mrcc_E0_denominator ] 2 | implicit none 3 | BEGIN_DOC 4 | ! If true, initialize mrcc_E0_denominator 5 | END_DOC 6 | initialize_mrcc_E0_denominator = .True. 7 | END_PROVIDER 8 | 9 | BEGIN_PROVIDER [ double precision, mrcc_E0_denominator, (N_states) ] 10 | implicit none 11 | BEGIN_DOC 12 | ! E0 in the denominator of the mrcc 13 | END_DOC 14 | if (initialize_mrcc_E0_denominator) then 15 | mrcc_E0_denominator(1:N_states) = psi_energy(1:N_states) 16 | ! mrcc_E0_denominator(1:N_states) = HF_energy - nuclear_repulsion 17 | ! mrcc_E0_denominator(1:N_states) = barycentric_electronic_energy(1:N_states) 18 | call write_double(6,mrcc_E0_denominator(1)+nuclear_repulsion, 'mrcc Energy denominator') 19 | else 20 | mrcc_E0_denominator = -huge(1.d0) 21 | endif 22 | END_PROVIDER 23 | 24 | -------------------------------------------------------------------------------- /plugins/mrcepa0/mrcc.irp.f: -------------------------------------------------------------------------------- 1 | program mrsc2sub 2 | implicit none 3 | double precision, allocatable :: energy(:) 4 | allocate (energy(N_states)) 5 | 6 | !mrmode : 1=mrcepa0, 2=mrsc2 add, 3=mrcc 7 | mrmode = 3 8 | 9 | read_wf = .True. 10 | SOFT_TOUCH read_wf 11 | call set_generators_bitmasks_as_holes_and_particles 12 | if (.True.) then 13 | integer :: i,j 14 | do j=1,N_states 15 | do i=1,N_det 16 | psi_coef(i,j) = CI_eigenvectors(i,j) 17 | enddo 18 | enddo 19 | SOFT_TOUCH psi_coef 20 | endif 21 | call run(N_states,energy) 22 | if(do_pt2)then 23 | call run_pt2(N_states,energy) 24 | endif 25 | deallocate(energy) 26 | end 27 | 28 | -------------------------------------------------------------------------------- /plugins/mrcepa0/mrcc_sto.irp.f: -------------------------------------------------------------------------------- 1 | program mrsc2sub 2 | implicit none 3 | double precision, allocatable :: energy(:) 4 | allocate (energy(N_states)) 5 | 6 | !!mrmode : 1=mrcepa0, 2=mrsc2 add, 3=mrcc 7 | mrmode = 4 8 | 9 | read_wf = .True. 10 | SOFT_TOUCH read_wf 11 | call set_generators_bitmasks_as_holes_and_particles 12 | if (.True.) then 13 | integer :: i,j 14 | do j=1,N_states 15 | do i=1,N_det 16 | psi_coef(i,j) = CI_eigenvectors(i,j) 17 | enddo 18 | enddo 19 | SOFT_TOUCH psi_coef 20 | endif 21 | call run(N_states,energy) 22 | if(do_pt2)then 23 | call run_pt2(N_states,energy) 24 | endif 25 | deallocate(energy) 26 | end 27 | 28 | -------------------------------------------------------------------------------- /plugins/mrcepa0/mrcc_zmq.irp.f: -------------------------------------------------------------------------------- 1 | program mrsc2sub 2 | implicit none 3 | double precision, allocatable :: energy(:) 4 | allocate (energy(N_states)) 5 | 6 | !mrmode : 1=mrcepa0, 2=mrsc2 add, 3=mrcc 7 | mrmode = 5 8 | 9 | read_wf = .True. 10 | SOFT_TOUCH read_wf 11 | call set_generators_bitmasks_as_holes_and_particles 12 | if (.True.) then 13 | integer :: i,j 14 | do j=1,N_states 15 | do i=1,N_det 16 | psi_coef(i,j) = CI_eigenvectors(i,j) 17 | enddo 18 | enddo 19 | SOFT_TOUCH psi_coef 20 | endif 21 | call run(N_states,energy) 22 | if(do_pt2)then 23 | call run_pt2(N_states,energy) 24 | endif 25 | deallocate(energy) 26 | end 27 | 28 | -------------------------------------------------------------------------------- /plugins/mrcepa0/mrcepa0.irp.f: -------------------------------------------------------------------------------- 1 | program mrcepa0 2 | implicit none 3 | double precision, allocatable :: energy(:) 4 | allocate (energy(N_states)) 5 | 6 | !mrmode : 1=mrcepa0, 2=mrsc2 add, 3=mrcc 7 | mrmode = 1 8 | 9 | read_wf = .True. 10 | SOFT_TOUCH read_wf 11 | call set_generators_bitmasks_as_holes_and_particles 12 | if (.True.) then 13 | integer :: i,j 14 | do j=1,N_states 15 | do i=1,N_det 16 | psi_coef(i,j) = CI_eigenvectors(i,j) 17 | enddo 18 | enddo 19 | TOUCH psi_coef 20 | endif 21 | call print_cas_coefs 22 | 23 | call run(N_states,energy) 24 | if(do_pt2)then 25 | call run_pt2(N_states,energy) 26 | endif 27 | deallocate(energy) 28 | end 29 | 30 | -------------------------------------------------------------------------------- /plugins/mrcepa0/mrsc2.irp.f: -------------------------------------------------------------------------------- 1 | program mrsc2 2 | implicit none 3 | double precision, allocatable :: energy(:) 4 | allocate (energy(N_states)) 5 | 6 | !mrmode : 1=mrcepa0, 2=mrsc2 add, 3=mrcc 7 | mrmode = 2 8 | read_wf = .True. 9 | SOFT_TOUCH read_wf 10 | call set_generators_bitmasks_as_holes_and_particles 11 | if (.True.) then 12 | integer :: i,j 13 | do j=1,N_states 14 | do i=1,N_det 15 | psi_coef(i,j) = CI_eigenvectors(i,j) 16 | enddo 17 | enddo 18 | TOUCH psi_coef 19 | endif 20 | call run(N_states,energy) 21 | if(do_pt2)then 22 | call run_pt2(N_states,energy) 23 | endif 24 | deallocate(energy) 25 | end 26 | 27 | 28 | -------------------------------------------------------------------------------- /plugins/mrcepa0/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/mrcepa0/tree_dependency.png -------------------------------------------------------------------------------- /plugins/read_integral/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Integrals_Monoelec Integrals_Bielec Hartree_Fock 2 | -------------------------------------------------------------------------------- /plugins/read_integral/README.rst: -------------------------------------------------------------------------------- 1 | ============= 2 | read_integral 3 | ============= 4 | 5 | Warning: CAN NOT CHANGE THE NUMBER OF MO ! 6 | 7 | Needed Modules 8 | ============== 9 | .. Do not edit this section It was auto-generated 10 | .. by the `update_README.py` script. 11 | 12 | 13 | .. image:: tree_dependency.png 14 | 15 | * `Integrals_Monoelec `_ 16 | * `Integrals_Bielec `_ 17 | 18 | Documentation 19 | ============= 20 | .. Do not edit this section It was auto-generated 21 | .. by the `update_README.py` script. 22 | 23 | 24 | `print_integrals `_ 25 | Undocumented 26 | 27 | 28 | `run `_ 29 | Undocumented 30 | 31 | -------------------------------------------------------------------------------- /plugins/read_integral/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/plugins/read_integral/tree_dependency.png -------------------------------------------------------------------------------- /promela/collector.pml: -------------------------------------------------------------------------------- 1 | proctype collector(byte state) { 2 | 3 | byte task; 4 | req_message msg; 5 | rep_message reply; 6 | bit loop = 1; 7 | xr pull_socket; 8 | 9 | do 10 | :: (loop == 0) -> break 11 | :: else -> 12 | pull_socket ? task; 13 | /* Handle result */ 14 | send_req(DELTASK, task); 15 | assert (reply.m == OK); 16 | loop = reply.value; 17 | od; 18 | 19 | } 20 | 21 | 22 | -------------------------------------------------------------------------------- /promela/fortran.pml: -------------------------------------------------------------------------------- 1 | active proctype fortran() { 2 | req_message msg; 3 | rep_message reply; 4 | byte state; 5 | byte count, wait; 6 | 7 | 8 | /* New parallel job */ 9 | state=1; 10 | send_req( NEWJOB, state ); 11 | assert (reply.m == OK); 12 | 13 | send_req( PUTPSI, state ); 14 | assert (reply.m == PUTPSI_REPLY); 15 | 16 | /* Add tasks */ 17 | count = 0; 18 | do 19 | :: (count == NTASKS) -> break; 20 | :: else -> 21 | count++; 22 | send_req( ADDTASK, count ); 23 | assert (reply.m == OK); 24 | od 25 | 26 | wait = _nr_pr; 27 | /* Run collector */ 28 | run collector(state); 29 | 30 | /* Run slaves */ 31 | count = 0; 32 | do 33 | :: (count == NPROC) -> break; 34 | :: else -> count++; run slave(); 35 | od 36 | 37 | /* Wait for collector and slaves to finish */ 38 | (_nr_pr == wait); 39 | 40 | send_req( ENDJOB, state ); 41 | assert (reply.m == OK); 42 | state = reply.value; 43 | 44 | send_req( TERMINATE, 0); 45 | assert (reply.m == OK); 46 | 47 | } 48 | 49 | -------------------------------------------------------------------------------- /promela/model.pml: -------------------------------------------------------------------------------- 1 | #define NPROC 3 2 | #define BUFSIZE 2 3 | #define NTASKS 4 4 | 5 | mtype = { NONE, OK, WRONG_STATE, TERMINATE, GETPSI, PUTPSI, NEWJOB, ENDJOB, SETRUNNING, 6 | SETWAITING, SETSTOPPED, CONNECT, DISCONNECT, ADDTASK, DELTASK, TASKDONE, GETTASK, 7 | PSI, TASK, PUTPSI_REPLY, WAITING, RUNNING, STOPPED 8 | } 9 | 10 | #define send_req( MESSAGE, VALUE ) atomic { msg.m=MESSAGE ; msg.value=VALUE ; msg.state=state; } ; rep_socket ! msg; msg.reply ? reply 11 | 12 | /* Request/Reply pattern */ 13 | 14 | typedef rep_message { 15 | mtype m = NONE; 16 | byte value = 0; 17 | } 18 | 19 | typedef req_message { 20 | mtype m = NONE; 21 | byte state = 0; 22 | byte value = 0; 23 | chan reply = [BUFSIZE] of { rep_message }; 24 | } 25 | 26 | /* Channels */ 27 | 28 | chan rep_socket = [NPROC] of { req_message }; 29 | chan pull_socket = [NPROC] of { byte }; 30 | 31 | 32 | #include "task_server.pml" 33 | #include "fortran.pml" 34 | #include "collector.pml" 35 | #include "slave.pml" 36 | -------------------------------------------------------------------------------- /promela/slave.pml: -------------------------------------------------------------------------------- 1 | proctype slave() { 2 | req_message msg; 3 | rep_message reply; 4 | byte task; 5 | byte state; 6 | 7 | send_req(CONNECT, 0); 8 | assert (reply.m == OK); 9 | state = reply.value; 10 | 11 | send_req(GETPSI, 0); 12 | assert (reply.m == PSI); 13 | 14 | task=255; 15 | do 16 | :: (task == 0) -> break; 17 | :: else -> 18 | send_req( GETTASK, 0); 19 | if 20 | :: (reply.m == NONE) -> task = 0; 21 | :: (reply.m == TASK) -> 22 | task = reply.value; 23 | /* Compute task */ 24 | send_req( TASKDONE, task); 25 | assert (reply.m == OK); 26 | pull_socket ! task; 27 | fi 28 | od 29 | } 30 | -------------------------------------------------------------------------------- /scripts/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.pyo 3 | docopt.py -------------------------------------------------------------------------------- /scripts/compilation/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc -------------------------------------------------------------------------------- /scripts/module/create_executables_list.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Thu Mar 26 01:27:14 CET 2015 4 | 5 | if [[ -z ${QP_ROOT} ]] 6 | then 7 | print "The QP_ROOT environment variable is not set." 8 | print "Please reload the quantum_package.rc file." 9 | exit -1 10 | fi 11 | 12 | cd ${QP_ROOT}/data 13 | rm -f executables 14 | EXES=$(find -L ${QP_ROOT}/src -maxdepth 2 -depth -executable -type f | grep -e "${QP_ROOT}/src/[^/]*/[^/]*$" |sort ) 15 | 16 | for EXE in $EXES 17 | do 18 | printf "%-30s %s\n" $(basename $EXE) $EXE | sed "s|${QP_ROOT}|\$QP_ROOT|g" >> executables 19 | done 20 | -------------------------------------------------------------------------------- /scripts/perturbation.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import os 4 | 5 | Pert_dir = os.environ["QP_ROOT"]+"/src/Perturbation/" 6 | 7 | perturbations = [] 8 | 9 | for filename in filter(lambda x: x.endswith(".irp.f"), os.listdir(Pert_dir)): 10 | 11 | filename = Pert_dir+filename 12 | file = open(filename,'r') 13 | lines = file.readlines() 14 | file.close() 15 | for line in lines: 16 | buffer = line.lower().lstrip().split() 17 | if len(buffer) > 1: 18 | if buffer[0] == "subroutine" and buffer[1].startswith("pt2_"): 19 | p = (buffer[1].split('(')[0])[4:] 20 | perturbations.append( p ) 21 | 22 | 23 | if __name__ == '__main__': 24 | print 'Perturbations:' 25 | for k in perturbations: 26 | print '* ', k 27 | -------------------------------------------------------------------------------- /scripts/pseudo/elts_num_ele.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import os 4 | 5 | QP_ROOT=os.environ["QP_ROOT"] 6 | 7 | name_to_elec = {} 8 | with open(QP_ROOT+"/data/list_element.txt","r") as f: 9 | data = f.readlines() 10 | for line in data: 11 | b = line.split() 12 | name_to_elec[b[1]] = int(b[0]) 13 | 14 | if __name__ == '__main__': 15 | print name_to_elec 16 | -------------------------------------------------------------------------------- /scripts/qp_set_frozen_core.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import os 4 | import sys 5 | 6 | sys.path = [ os.environ["QP_ROOT"]+"/install/EZFIO/Python" ] + sys.path 7 | from ezfio import ezfio 8 | 9 | ezfio.set_filename(sys.argv[1]) 10 | 11 | nb = 0 12 | for charge in ezfio.nuclei_nucl_charge: 13 | if charge < 5: 14 | pass 15 | elif charge < 13: 16 | nb += 1 17 | else: 18 | nb += 5 19 | 20 | mo_tot_num = ezfio.mo_basis_mo_tot_num 21 | 22 | if len(sys.argv)>2: 23 | if sys.argv[2] == '-q': 24 | print nb 25 | sys.exit(0) 26 | 27 | if nb == 0: 28 | os.system( """qp_set_mo_class -act "[1-%d]" %s"""%(mo_tot_num, sys.argv[1]) ) 29 | else: 30 | os.system( """qp_set_mo_class -core "[1-%d]" -act "[%d-%d]" %s"""%(nb, nb+1, mo_tot_num, sys.argv[1]) ) 31 | 32 | -------------------------------------------------------------------------------- /scripts/qp_upgrade_ocaml.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | OCAML_VERSION="4.06.0" 4 | PACKAGES="core.v0.10.0 cryptokit ocamlfind sexplib.v0.10.0 ZMQ ppx_sexp_conv ppx_deriving" 5 | 6 | if [[ -z ${QP_ROOT} ]] 7 | then 8 | print "The QP_ROOT environment variable is not set." 9 | print "Please reload the quantum_package.rc file." 10 | exit -1 11 | fi 12 | 13 | cd $QP_ROOT/ocaml 14 | opam update 15 | opam switch ${OCAML_VERSION} 16 | eval `opam config env` 17 | opam install -y ${PACKAGES} || echo "Upgrade failed. You can try running 18 | configure ; $0" 19 | 20 | -------------------------------------------------------------------------------- /scripts/save_current_mos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # This script is used by the MOs module, and should not be used by users. 3 | # It copies the EZFIO/mo_basis directory in the save/EZFIO/mo_basis/xxx 4 | # directory, where xxx is the corresponding mo_label. 5 | # Wed Apr 2 14:35:15 CEST 2014 6 | 7 | 8 | if [[ -z ${QP_ROOT} ]] 9 | then 10 | print "The QP_ROOT environment variable is not set." 11 | print "Please reload the quantum_package.rc file." 12 | exit -1 13 | fi 14 | 15 | EZFIO="$1" 16 | 17 | if [[ -z "${EZFIO}" ]] 18 | then 19 | echo "Error in $0" 20 | exit 1 21 | fi 22 | 23 | if [[ ! -f "${EZFIO}/mo_basis/mo_label" ]] 24 | then 25 | LABEL='no_label' 26 | else 27 | LABEL=$(head -1 "${EZFIO}/mo_basis/mo_label") 28 | fi 29 | 30 | DESTINATION="save/mo_basis/${LABEL}" 31 | 32 | cd "${EZFIO}" 33 | 34 | if [[ ! -d save/mo_basis ]] 35 | then 36 | mkdir -p save/mo_basis 37 | fi 38 | 39 | BACKUP="${DESTINATION}.old" 40 | if [[ -d "${BACKUP}" ]] 41 | then 42 | rm -rf "${BACKUP}" 43 | fi 44 | 45 | if [[ -d "${DESTINATION}" ]] 46 | then 47 | mv "${DESTINATION}" "${BACKUP}" 48 | fi 49 | 50 | cp -r mo_basis "${DESTINATION}" 51 | 52 | -------------------------------------------------------------------------------- /scripts/utility/decorator.py: -------------------------------------------------------------------------------- 1 | from functools import wraps 2 | 3 | def cache(func): 4 | """ 5 | A decorator for lazy evaluation off true function 6 | """ 7 | saved = {} 8 | 9 | @wraps(func) 10 | def newfunc(*args): 11 | if args in saved: 12 | return saved[args] 13 | 14 | result = func(*args) 15 | saved[args] = result 16 | return result 17 | return newfunc 18 | -------------------------------------------------------------------------------- /scripts/utility/is_master_repository.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import subprocess 4 | pipe = subprocess.Popen("git config --get remote.origin.url", \ 5 | shell=True, stdout=subprocess.PIPE) 6 | result = pipe.stdout.read() 7 | is_master_repository = "LCPQ/quantum_package" in result 8 | 9 | if __name__ == "__main__": 10 | import sys 11 | if is_master_repository: 12 | sys.exit(0) 13 | else: 14 | sys.exit(-1) 15 | -------------------------------------------------------------------------------- /scripts/utility/qp_path.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | import os 5 | import sys 6 | 7 | try: 8 | QP_ROOT = os.environ['QP_ROOT'] 9 | except: 10 | print "source quantum_package.rc" 11 | sys.exit(1) 12 | else: 13 | QP_SRC = os.path.join(QP_ROOT, "src") 14 | QP_PLUGINS = os.path.join(QP_ROOT, "plugins") 15 | QP_EZFIO = os.path.join(QP_ROOT, "install", "EZFIO") 16 | QP_OCAML = os.path.join(QP_ROOT, "ocaml") 17 | -------------------------------------------------------------------------------- /src/AO_Basis/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Nuclei 2 | -------------------------------------------------------------------------------- /src/AO_Basis/dimensions_integrals.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [ integer, n_pt_max_integrals ] 2 | &BEGIN_PROVIDER [ integer, n_pt_max_i_x] 3 | implicit none 4 | integer :: n_pt_sup 5 | integer :: prim_power_l_max 6 | include 'Utils/constants.include.F' 7 | prim_power_l_max = maxval(ao_power) 8 | n_pt_max_integrals = 24 * prim_power_l_max + 4 9 | n_pt_max_i_x = 8 * prim_power_l_max 10 | ASSERT (n_pt_max_i_x-1 <= max_dim) 11 | if (n_pt_max_i_x-1 > max_dim) then 12 | print *, 'Increase max_dim in Utils/constants.include.F to ', n_pt_max_i_x-1 13 | stop 1 14 | endif 15 | END_PROVIDER 16 | 17 | -------------------------------------------------------------------------------- /src/AO_Basis/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/AO_Basis/tree_dependency.png -------------------------------------------------------------------------------- /src/Bitmask/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | MO_Basis 2 | -------------------------------------------------------------------------------- /src/Bitmask/bitmasks.ezfio_config: -------------------------------------------------------------------------------- 1 | bitmasks 2 | N_int integer 3 | bit_kind integer 4 | N_mask_gen integer 5 | generators integer*8 (bitmasks_N_int*bitmasks_bit_kind/8,2,6,bitmasks_N_mask_gen) 6 | N_mask_cas integer 7 | cas integer*8 (bitmasks_N_int*bitmasks_bit_kind/8,2,bitmasks_N_mask_cas) 8 | 9 | -------------------------------------------------------------------------------- /src/Bitmask/bitmasks_module.f90: -------------------------------------------------------------------------------- 1 | module bitmasks 2 | integer, parameter :: bit_kind_shift = 6 ! 5: 32 bits, 6: 64 bits 3 | integer, parameter :: bit_kind_size = 64 4 | integer, parameter :: bit_kind = 8 5 | integer, parameter :: d_hole1 = 1 6 | integer, parameter :: d_part1 = 2 7 | integer, parameter :: d_hole2 = 3 8 | integer, parameter :: d_part2 = 4 9 | integer, parameter :: s_hole = 5 10 | integer, parameter :: s_part = 6 11 | end module bitmasks 12 | -------------------------------------------------------------------------------- /src/Bitmask/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/Bitmask/tree_dependency.png -------------------------------------------------------------------------------- /src/Davidson/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [threshold_davidson] 2 | type: Threshold 3 | doc: Thresholds of Davidson's algorithm 4 | interface: ezfio,provider,ocaml 5 | default: 1.e-12 6 | 7 | [n_states_diag] 8 | type: States_number 9 | doc: Number of states to consider during the Davdison diagonalization 10 | default: 4 11 | interface: ezfio,provider,ocaml 12 | 13 | [davidson_sze_max] 14 | type: Strictly_positive_int 15 | doc: Number of micro-iterations before re-contracting 16 | default: 8 17 | interface: ezfio,provider,ocaml 18 | 19 | [state_following] 20 | type: logical 21 | doc: If true, the states are re-ordered to match the input states 22 | default: False 23 | interface: ezfio,provider,ocaml 24 | 25 | [disk_based_davidson] 26 | type: logical 27 | doc: If true, disk space is used to store the vectors 28 | default: False 29 | interface: ezfio,provider,ocaml 30 | 31 | [distributed_davidson] 32 | type: logical 33 | doc: If true, use the distributed algorithm 34 | default: False 35 | interface: ezfio,provider,ocaml 36 | 37 | -------------------------------------------------------------------------------- /src/Davidson/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Determinants 2 | -------------------------------------------------------------------------------- /src/Davidson/davidson_slave.irp.f: -------------------------------------------------------------------------------- 1 | program davidson_slave 2 | use f77_zmq 3 | implicit none 4 | 5 | 6 | integer(ZMQ_PTR), external :: new_zmq_to_qp_run_socket 7 | integer(ZMQ_PTR) :: zmq_to_qp_run_socket 8 | double precision :: energy(N_states_diag) 9 | character*(64) :: state 10 | 11 | call provide_everything 12 | call switch_qp_run_to_master 13 | call omp_set_nested(.True.) 14 | 15 | zmq_context = f77_zmq_ctx_new () 16 | zmq_state = 'davidson' 17 | state = 'Waiting' 18 | 19 | zmq_to_qp_run_socket = new_zmq_to_qp_run_socket() 20 | do 21 | call wait_for_state(zmq_state,state) 22 | if(trim(state) /= "davidson") exit 23 | integer :: rc, i 24 | print *, 'Davidson slave running' 25 | call davidson_slave_tcp(i) 26 | end do 27 | end 28 | 29 | subroutine provide_everything 30 | PROVIDE mo_bielec_integrals_in_map psi_det_sorted_bit N_states_diag zmq_context ref_bitmask_energy 31 | end subroutine 32 | 33 | -------------------------------------------------------------------------------- /src/Davidson/diagonalize_restart_and_save_all_states.irp.f: -------------------------------------------------------------------------------- 1 | program diag_and_save 2 | implicit none 3 | read_wf = .True. 4 | touch read_wf 5 | call routine 6 | end 7 | 8 | subroutine routine 9 | implicit none 10 | call diagonalize_CI 11 | print*,'N_det = ',N_det 12 | call save_wavefunction_general(N_det,N_states_diag,psi_det_sorted,size(psi_coef_sorted,1),psi_coef_sorted) 13 | 14 | 15 | 16 | end 17 | -------------------------------------------------------------------------------- /src/Davidson/diagonalize_restart_and_save_lowest_state.irp.f: -------------------------------------------------------------------------------- 1 | program diag_and_save 2 | implicit none 3 | read_wf = .True. 4 | touch read_wf 5 | call routine 6 | end 7 | 8 | subroutine routine 9 | implicit none 10 | print*,'N_det = ',N_det 11 | PROVIDE H_apply_buffer_allocated 12 | if (s2_eig) then 13 | call make_s2_eigenfunction 14 | endif 15 | call diagonalize_CI 16 | integer :: igood_state 17 | igood_state=1 18 | double precision, allocatable :: psi_coef_tmp(:) 19 | allocate(psi_coef_tmp(n_det)) 20 | integer :: i 21 | do i = 1, N_det 22 | psi_coef_tmp(i) = psi_coef(i,igood_state) 23 | enddo 24 | call save_wavefunction_general(N_det,1,psi_det,n_det,psi_coef_tmp) 25 | deallocate(psi_coef_tmp) 26 | 27 | 28 | 29 | end 30 | -------------------------------------------------------------------------------- /src/Davidson/diagonalize_restart_and_save_one_state.irp.f: -------------------------------------------------------------------------------- 1 | program diag_and_save 2 | implicit none 3 | read_wf = .True. 4 | touch read_wf 5 | call routine 6 | end 7 | 8 | subroutine routine 9 | implicit none 10 | print*,'N_det = ',N_det 11 | call diagonalize_CI 12 | write(*,*)'Which state would you like to save ?' 13 | integer :: igood_state 14 | read(5,*)igood_state 15 | double precision, allocatable :: psi_coef_tmp(:) 16 | allocate(psi_coef_tmp(n_det)) 17 | integer :: i 18 | do i = 1, N_det 19 | psi_coef_tmp(i) = psi_coef(i,igood_state) 20 | enddo 21 | call save_wavefunction_general(N_det,1,psi_det,n_det,psi_coef_tmp) 22 | deallocate(psi_coef_tmp) 23 | 24 | 25 | 26 | end 27 | -------------------------------------------------------------------------------- /src/Davidson/print_energy.irp.f: -------------------------------------------------------------------------------- 1 | program print_energy 2 | implicit none 3 | read_wf = .true. 4 | touch read_wf 5 | call routine 6 | end 7 | 8 | subroutine routine 9 | implicit none 10 | integer :: i,j 11 | double precision :: accu,hij 12 | 13 | print*, 'psi_energy = ',psi_energy + nuclear_repulsion 14 | accu = 0.d0 15 | ! do i = 1,N_det 16 | ! do j = 1,N_det 17 | ! call i_H_j(psi_det(1,1,j),psi_det(1,1,i),N_int,hij) 18 | ! accu += psi_coef(i,1) * psi_coef(j,1) * hij 19 | ! enddo 20 | ! enddo 21 | ! print*, 'accu = ',accu + nuclear_repulsion 22 | end 23 | -------------------------------------------------------------------------------- /src/Determinants/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Integrals_Monoelec Integrals_Bielec 2 | -------------------------------------------------------------------------------- /src/Determinants/diagonalize_restart_and_save_two_states.irp.f: -------------------------------------------------------------------------------- 1 | program diag_and_save 2 | implicit none 3 | read_wf = .True. 4 | touch read_wf 5 | call routine 6 | end 7 | 8 | subroutine routine 9 | implicit none 10 | integer :: igood_state_1,igood_state_2 11 | double precision, allocatable :: psi_coef_tmp(:,:) 12 | integer :: i 13 | print*,'N_det = ',N_det 14 | !call diagonalize_CI 15 | write(*,*)'Which couple of states would you like to save ?' 16 | read(5,*)igood_state_1,igood_state_2 17 | allocate(psi_coef_tmp(n_det,2)) 18 | do i = 1, N_det 19 | psi_coef_tmp(i,1) = psi_coef(i,igood_state_1) 20 | psi_coef_tmp(i,2) = psi_coef(i,igood_state_2) 21 | enddo 22 | call save_wavefunction_general(N_det,2,psi_det,n_det,psi_coef_tmp) 23 | deallocate(psi_coef_tmp) 24 | 25 | 26 | 27 | end 28 | -------------------------------------------------------------------------------- /src/Determinants/excitations_utils.irp.f: -------------------------------------------------------------------------------- 1 | subroutine apply_mono(i_hole,i_particle,ispin_excit,key_in,Nint) 2 | implicit none 3 | integer, intent(in) :: i_hole,i_particle,ispin_excit,Nint 4 | integer(bit_kind), intent(inout) :: key_in(Nint,2) 5 | integer :: k,j 6 | use bitmasks 7 | ! hole 8 | k = ishft(i_hole-1,-bit_kind_shift)+1 9 | j = i_hole-ishft(k-1,bit_kind_shift)-1 10 | key_in(k,ispin_excit) = ibclr(key_in(k,ispin_excit),j) 11 | 12 | k = ishft(i_particle-1,-bit_kind_shift)+1 13 | j = i_particle-ishft(k-1,bit_kind_shift)-1 14 | key_in(k,ispin_excit) = ibset(key_in(k,ispin_excit),j) 15 | 16 | end 17 | -------------------------------------------------------------------------------- /src/Determinants/print_bitmask.irp.f: -------------------------------------------------------------------------------- 1 | program print_bitmask 2 | implicit none 3 | print*,'core' 4 | call debug_det(core_bitmask,N_int) 5 | print*,'inact' 6 | call debug_det(inact_bitmask,N_int) 7 | print*,'virt' 8 | call debug_det(virt_bitmask,N_int) 9 | 10 | 11 | end 12 | -------------------------------------------------------------------------------- /src/Determinants/print_holes_particles.irp.f: -------------------------------------------------------------------------------- 1 | program pouet 2 | implicit none 3 | read_wf = .True. 4 | touch read_wf 5 | call routine 6 | end 7 | 8 | subroutine routine 9 | implicit none 10 | integer :: i,j,number_of_holes,number_of_particles 11 | integer :: n_h,n_p 12 | do i = 1, N_det 13 | n_h = number_of_holes(psi_det(1,1,i)) 14 | n_p = number_of_particles(psi_det(1,1,i)) 15 | if(n_h == 0 .and. n_p == 0)then 16 | print*,'CAS' 17 | else if(n_h == 1 .and. n_p ==0)then 18 | print*,'1h' 19 | else if(n_h == 0 .and. n_p ==1)then 20 | print*,'1p' 21 | else if(n_h == 1 .and. n_p ==1)then 22 | print*,'1h1p' 23 | else if(n_h == 2 .and. n_p ==1)then 24 | print*,'2h1p' 25 | else if(n_h == 1 .and. n_p ==2)then 26 | print*,'1h2p' 27 | else 28 | print*,'PB !! ' 29 | call debug_det(psi_det(1,1,i), N_int) 30 | stop 31 | endif 32 | enddo 33 | 34 | 35 | 36 | end 37 | -------------------------------------------------------------------------------- /src/Determinants/save_HF_determinant.irp.f: -------------------------------------------------------------------------------- 1 | program save_HF 2 | implicit none 3 | call save_ref_determinant 4 | 5 | end 6 | -------------------------------------------------------------------------------- /src/Determinants/save_natorb.irp.f: -------------------------------------------------------------------------------- 1 | program save_natorb 2 | read_wf = .True. 3 | touch read_wf 4 | call save_natural_mos 5 | call save_ref_determinant 6 | call ezfio_set_integrals_bielec_disk_access_mo_integrals('None') 7 | call ezfio_set_integrals_monoelec_disk_access_mo_one_integrals('None') 8 | end 9 | 10 | -------------------------------------------------------------------------------- /src/Determinants/spindeterminants.ezfio_config: -------------------------------------------------------------------------------- 1 | spindeterminants 2 | n_det_alpha integer 3 | n_det_beta integer 4 | n_det integer 5 | n_int integer 6 | bit_kind integer 7 | n_states integer 8 | psi_det_alpha integer*8 (spindeterminants_n_int*spindeterminants_bit_kind/8,spindeterminants_n_det_alpha) 9 | psi_det_beta integer*8 (spindeterminants_n_int*spindeterminants_bit_kind/8,spindeterminants_n_det_beta) 10 | psi_coef_matrix_rows integer (spindeterminants_n_det) 11 | psi_coef_matrix_columns integer (spindeterminants_n_det) 12 | psi_coef_matrix_values double precision (spindeterminants_n_det,spindeterminants_n_states) 13 | n_svd_coefs integer 14 | psi_svd_alpha double precision (spindeterminants_n_det_alpha,spindeterminants_n_svd_coefs,spindeterminants_n_states) 15 | psi_svd_beta double precision (spindeterminants_n_det_beta,spindeterminants_n_svd_coefs,spindeterminants_n_states) 16 | psi_svd_coefs double precision (spindeterminants_n_svd_coefs,spindeterminants_n_states) 17 | 18 | -------------------------------------------------------------------------------- /src/Determinants/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/Determinants/tree_dependency.png -------------------------------------------------------------------------------- /src/Determinants/truncate_wf.irp.f: -------------------------------------------------------------------------------- 1 | program s2_eig_restart 2 | implicit none 3 | read_wf = .True. 4 | call routine 5 | end 6 | subroutine routine 7 | implicit none 8 | integer :: ndet_max 9 | print*, 'How many determinants would you like ?' 10 | read(5,*)ndet_max 11 | integer(bit_kind), allocatable :: psi_det_tmp(:,:,:) 12 | double precision, allocatable :: psi_coef_tmp(:,:) 13 | allocate(psi_det_tmp(N_int,2,ndet_max),psi_coef_tmp(ndet_max, N_states)) 14 | 15 | integer :: i,j 16 | double precision :: accu(N_states) 17 | accu = 0.d0 18 | do i = 1, ndet_max 19 | do j = 1, N_int 20 | psi_det_tmp(j,1,i) = psi_det_sorted(j,1,i) 21 | psi_det_tmp(j,2,i) = psi_det_sorted(j,2,i) 22 | enddo 23 | do j = 1, N_states 24 | psi_coef_tmp(i,j) = psi_coef_sorted(i,j) 25 | accu(j) += psi_coef_tmp(i,j) **2 26 | enddo 27 | enddo 28 | do j = 1, N_states 29 | accu(j) = 1.d0/dsqrt(accu(j)) 30 | enddo 31 | do j = 1, N_states 32 | do i = 1, ndet_max 33 | psi_coef_tmp(i,j) = psi_coef_tmp(i,j) * accu(j) 34 | enddo 35 | enddo 36 | 37 | call save_wavefunction_general(ndet_max,N_states,psi_det_tmp,N_det_max,psi_coef_tmp) 38 | 39 | end 40 | -------------------------------------------------------------------------------- /src/Determinants/utils.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [ double precision, H_matrix_all_dets,(N_det,N_det) ] 2 | use bitmasks 3 | implicit none 4 | BEGIN_DOC 5 | ! H matrix on the basis of the slater determinants defined by psi_det 6 | END_DOC 7 | integer :: i,j,k 8 | double precision :: hij 9 | integer :: degree(N_det),idx(0:N_det) 10 | call i_H_j(psi_det(1,1,1),psi_det(1,1,1),N_int,hij) 11 | !$OMP PARALLEL DO SCHEDULE(GUIDED) DEFAULT(NONE) PRIVATE(i,j,hij,degree,idx,k) & 12 | !$OMP SHARED (N_det, psi_det, N_int,H_matrix_all_dets) 13 | do i =1,N_det 14 | do j = i, N_det 15 | call i_H_j(psi_det(1,1,i),psi_det(1,1,j),N_int,hij) 16 | H_matrix_all_dets(i,j) = hij 17 | H_matrix_all_dets(j,i) = hij 18 | enddo 19 | enddo 20 | !$OMP END PARALLEL DO 21 | END_PROVIDER 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/Electrons/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [elec_alpha_num] 2 | type: Positive_int 3 | doc: Numbers of electrons alpha ("up") 4 | interface: ezfio, provider 5 | 6 | [elec_beta_num] 7 | type: Positive_int 8 | doc: Numbers of electrons beta ("down") 9 | interface: ezfio, provider 10 | 11 | [elec_num] 12 | type: Positive_int 13 | doc: Numbers total of electrons (alpha + beta) 14 | default: = electrons.elec_alpha_num + electrons.elec_beta_num 15 | interface: ezfio 16 | -------------------------------------------------------------------------------- /src/Electrons/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Ezfio_files 2 | -------------------------------------------------------------------------------- /src/Electrons/electrons.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [ integer, elec_num ] 2 | &BEGIN_PROVIDER [ integer, elec_num_tab, (2)] 3 | 4 | implicit none 5 | BEGIN_DOC 6 | ! Numbers of alpha ("up") , beta ("down") and total electrons 7 | END_DOC 8 | PROVIDE ezfio_filename 9 | 10 | elec_num_tab(1) = elec_alpha_num 11 | elec_num_tab(2) = elec_beta_num 12 | elec_num = elec_alpha_num+elec_beta_num 13 | 14 | END_PROVIDER 15 | 16 | -------------------------------------------------------------------------------- /src/Electrons/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/Electrons/tree_dependency.png -------------------------------------------------------------------------------- /src/Ezfio_files/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | MPI 2 | -------------------------------------------------------------------------------- /src/Ezfio_files/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/Ezfio_files/tree_dependency.png -------------------------------------------------------------------------------- /src/FourIdx/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | ZMQ 2 | -------------------------------------------------------------------------------- /src/Integrals_Bielec/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Pseudo Bitmask ZMQ FourIdx 2 | -------------------------------------------------------------------------------- /src/Integrals_Bielec/four_idx_transform.irp.f: -------------------------------------------------------------------------------- 1 | program four_idx 2 | implicit none 3 | BEGIN_DOC 4 | ! 4-index transformation from AO to MO integrals 5 | END_DOC 6 | 7 | disk_access_mo_integrals = 'Write' 8 | SOFT_TOUCH disk_access_mo_integrals 9 | if (.true.) then 10 | PROVIDE mo_bielec_integrals_in_map 11 | endif 12 | end 13 | -------------------------------------------------------------------------------- /src/Integrals_Bielec/integrals_3_index.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [double precision, big_array_coulomb_integrals, (mo_tot_num,mo_tot_num, mo_tot_num)] 2 | &BEGIN_PROVIDER [double precision, big_array_exchange_integrals,(mo_tot_num,mo_tot_num, mo_tot_num)] 3 | implicit none 4 | integer :: i,j,k,l 5 | double precision :: get_mo_bielec_integral 6 | double precision :: integral 7 | 8 | do k = 1, mo_tot_num 9 | do i = 1, mo_tot_num 10 | do j = 1, mo_tot_num 11 | l = j 12 | integral = get_mo_bielec_integral(i,j,k,l,mo_integrals_map) 13 | big_array_coulomb_integrals(j,i,k) = integral 14 | l = j 15 | integral = get_mo_bielec_integral(i,j,l,k,mo_integrals_map) 16 | big_array_exchange_integrals(j,i,k) = integral 17 | enddo 18 | enddo 19 | enddo 20 | 21 | 22 | END_PROVIDER 23 | -------------------------------------------------------------------------------- /src/Integrals_Bielec/q_package.ezfio_config: -------------------------------------------------------------------------------- 1 | work 2 | empty logical 3 | 4 | save 5 | empty logical 6 | 7 | -------------------------------------------------------------------------------- /src/Integrals_Bielec/qp_ao_ints.irp.f: -------------------------------------------------------------------------------- 1 | program qp_ao_ints 2 | use omp_lib 3 | implicit none 4 | BEGIN_DOC 5 | ! Increments a running calculation to compute AO integrals 6 | END_DOC 7 | integer :: i 8 | 9 | call switch_qp_run_to_master 10 | 11 | zmq_context = f77_zmq_ctx_new () 12 | 13 | ! Set the state of the ZMQ 14 | zmq_state = 'ao_integrals' 15 | 16 | ! Provide everything needed 17 | double precision :: integral, ao_bielec_integral 18 | integral = ao_bielec_integral(1,1,1,1) 19 | 20 | character*(64) :: state 21 | call wait_for_state(zmq_state,state) 22 | do while (state /= 'Stopped') 23 | !$OMP PARALLEL DEFAULT(PRIVATE) PRIVATE(i) 24 | i = omp_get_thread_num() 25 | call ao_bielec_integrals_in_map_slave_tcp(i) 26 | !$OMP END PARALLEL 27 | call wait_for_state(zmq_state,state) 28 | enddo 29 | 30 | print *, 'Done' 31 | end 32 | 33 | -------------------------------------------------------------------------------- /src/Integrals_Bielec/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/Integrals_Bielec/tree_dependency.png -------------------------------------------------------------------------------- /src/Integrals_Monoelec/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [disk_access_mo_one_integrals] 2 | type: Disk_access 3 | doc: Read/Write MO one-electron integrals from/to disk [ Write | Read | None ] 4 | interface: ezfio,provider,ocaml 5 | default: None 6 | 7 | [disk_access_ao_one_integrals] 8 | type: Disk_access 9 | doc: Read/Write AO one-electron integrals from/to disk [ Write | Read | None ] 10 | interface: ezfio,provider,ocaml 11 | default: None 12 | 13 | -------------------------------------------------------------------------------- /src/Integrals_Monoelec/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | MO_Basis Pseudo 2 | -------------------------------------------------------------------------------- /src/Integrals_Monoelec/ao_mono_ints.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [ double precision, ao_mono_elec_integral,(ao_num,ao_num)] 2 | &BEGIN_PROVIDER [ double precision, ao_mono_elec_integral_diag,(ao_num)] 3 | implicit none 4 | integer :: i,j,n,l 5 | BEGIN_DOC 6 | ! array of the mono electronic hamiltonian on the AOs basis 7 | ! : sum of the kinetic and nuclear electronic potential 8 | END_DOC 9 | do j = 1, ao_num 10 | do i = 1, ao_num 11 | ao_mono_elec_integral(i,j) = ao_nucl_elec_integral(i,j) + ao_kinetic_integral(i,j) + ao_pseudo_integral(i,j) 12 | enddo 13 | ao_mono_elec_integral_diag(j) = ao_mono_elec_integral(j,j) 14 | enddo 15 | END_PROVIDER 16 | 17 | -------------------------------------------------------------------------------- /src/Integrals_Monoelec/check_orthonormality.irp.f: -------------------------------------------------------------------------------- 1 | program check_ortho 2 | implicit none 3 | 4 | call do_print 5 | print *, '--' 6 | print *, '--' 7 | call orthonormalize_mos 8 | call do_print 9 | end 10 | 11 | subroutine do_print 12 | implicit none 13 | integer :: i,j 14 | double precision :: off_diag, diag 15 | 16 | off_diag = 0.d0 17 | diag = 0.d0 18 | do j=1,mo_tot_num 19 | do i=1,mo_tot_num 20 | off_diag += abs(mo_overlap(i,j)) 21 | enddo 22 | diag += abs(mo_overlap(j,j)) 23 | off_diag -= abs(mo_overlap(j,j)) 24 | enddo 25 | print *, 'Diag = ', abs(1.d0-diag/dble(mo_tot_num)) 26 | print *, 'Off-Diag = ', off_diag/(dble(mo_tot_num)**2-dble(mo_tot_num)) 27 | print *, '--' 28 | 29 | end 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/Integrals_Monoelec/kin_mo_ints.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [double precision, mo_kinetic_integral, (mo_tot_num,mo_tot_num)] 2 | implicit none 3 | BEGIN_DOC 4 | ! Kinetic energy integrals in the MO basis 5 | END_DOC 6 | 7 | if (read_mo_one_integrals) then 8 | call read_one_e_integrals('mo_kinetic_integral', mo_kinetic_integral,& 9 | size(mo_kinetic_integral,1), size(mo_kinetic_integral,2)) 10 | print *, 'MO kinetic integrals read from disk' 11 | else 12 | call ao_to_mo( & 13 | ao_kinetic_integral, & 14 | size(ao_kinetic_integral,1), & 15 | mo_kinetic_integral, & 16 | size(mo_kinetic_integral,1) & 17 | ) 18 | endif 19 | if (write_mo_one_integrals) then 20 | call write_one_e_integrals('mo_kinetic_integral', mo_kinetic_integral,& 21 | size(mo_kinetic_integral,1), size(mo_kinetic_integral,2)) 22 | print *, 'MO kinetic integrals written to disk' 23 | endif 24 | 25 | END_PROVIDER 26 | 27 | -------------------------------------------------------------------------------- /src/Integrals_Monoelec/mo_mono_ints.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [ double precision, mo_mono_elec_integral,(mo_tot_num,mo_tot_num)] 2 | implicit none 3 | integer :: i,j,n,l 4 | BEGIN_DOC 5 | ! array of the mono electronic hamiltonian on the MOs basis : 6 | ! sum of the kinetic and nuclear electronic potential (and pseudo potential if needed) 7 | END_DOC 8 | print*,'Providing the mono electronic integrals' 9 | 10 | IF (do_pseudo) THEN 11 | do j = 1, mo_tot_num 12 | do i = 1, mo_tot_num 13 | mo_mono_elec_integral(i,j) = mo_nucl_elec_integral(i,j) + mo_kinetic_integral(i,j) & 14 | + mo_pseudo_integral(i,j) 15 | enddo 16 | enddo 17 | 18 | ELSE 19 | do j = 1, mo_tot_num 20 | do i = 1, mo_tot_num 21 | mo_mono_elec_integral(i,j) = mo_nucl_elec_integral(i,j) + mo_kinetic_integral(i,j) 22 | enddo 23 | enddo 24 | 25 | END IF 26 | END_PROVIDER 27 | -------------------------------------------------------------------------------- /src/Integrals_Monoelec/orthonormalize.irp.f: -------------------------------------------------------------------------------- 1 | subroutine orthonormalize_mos 2 | implicit none 3 | integer :: m,p,s 4 | m = size(mo_coef,1) 5 | p = size(mo_overlap,1) 6 | call ortho_lowdin(mo_overlap,p,mo_tot_num,mo_coef,m,ao_num) 7 | mo_label = 'Orthonormalized' 8 | SOFT_TOUCH mo_coef mo_label 9 | end 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/Integrals_Monoelec/pot_mo_pseudo_ints.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [double precision, mo_pseudo_integral, (mo_tot_num,mo_tot_num)] 2 | implicit none 3 | BEGIN_DOC 4 | ! interaction nuclear electron on the MO basis 5 | END_DOC 6 | 7 | if (read_mo_one_integrals) then 8 | call read_one_e_integrals('mo_pseudo_integral', mo_pseudo_integral,& 9 | size(mo_pseudo_integral,1), size(mo_pseudo_integral,2)) 10 | print *, 'MO pseudopotential integrals read from disk' 11 | else 12 | call ao_to_mo( & 13 | ao_pseudo_integral, & 14 | size(ao_pseudo_integral,1), & 15 | mo_pseudo_integral, & 16 | size(mo_pseudo_integral,1) & 17 | ) 18 | endif 19 | if (write_mo_one_integrals) then 20 | call write_one_e_integrals('mo_pseudo_integral', mo_pseudo_integral,& 21 | size(mo_pseudo_integral,1), size(mo_pseudo_integral,2)) 22 | print *, 'MO pseudopotential integrals written to disk' 23 | endif 24 | 25 | END_PROVIDER 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/Integrals_Monoelec/save_ortho_mos.irp.f: -------------------------------------------------------------------------------- 1 | program save_ortho_mos 2 | call orthonormalize_mos 3 | call save_mos 4 | end 5 | -------------------------------------------------------------------------------- /src/Integrals_Monoelec/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/Integrals_Monoelec/tree_dependency.png -------------------------------------------------------------------------------- /src/MOGuess/H_CORE_guess.irp.f: -------------------------------------------------------------------------------- 1 | program H_CORE_guess_prog 2 | BEGIN_DOC 3 | ! Produce `H_core` MO orbital 4 | ! output: mo_basis.mo_tot_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ 5 | END_DOC 6 | implicit none 7 | character*(64) :: label 8 | call hcore_guess 9 | end 10 | -------------------------------------------------------------------------------- /src/MOGuess/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Integrals_Monoelec 2 | -------------------------------------------------------------------------------- /src/MOGuess/h_core_guess_routine.irp.f: -------------------------------------------------------------------------------- 1 | subroutine hcore_guess 2 | BEGIN_DOC 3 | ! Produce `H_core` MO orbital 4 | END_DOC 5 | implicit none 6 | character*(64) :: label 7 | label = "Guess" 8 | call mo_as_eigvectors_of_mo_matrix(mo_mono_elec_integral, & 9 | size(mo_mono_elec_integral,1), & 10 | size(mo_mono_elec_integral,2),label,1,.false.) 11 | call save_mos 12 | SOFT_TOUCH mo_coef mo_label 13 | end 14 | -------------------------------------------------------------------------------- /src/MOGuess/pot_mo_ortho_canonical_ints.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [double precision, ao_ortho_canonical_nucl_elec_integral, (mo_tot_num,mo_tot_num)] 2 | implicit none 3 | integer :: i1,j1,i,j 4 | double precision :: c_i1,c_j1 5 | 6 | ao_ortho_canonical_nucl_elec_integral = 0.d0 7 | !$OMP PARALLEL DO DEFAULT(none) & 8 | !$OMP PRIVATE(i,j,i1,j1,c_j1,c_i1) & 9 | !$OMP SHARED(mo_tot_num,ao_num,ao_ortho_canonical_coef, & 10 | !$OMP ao_ortho_canonical_nucl_elec_integral, ao_nucl_elec_integral) 11 | do i = 1, mo_tot_num 12 | do j = 1, mo_tot_num 13 | do i1 = 1,ao_num 14 | c_i1 = ao_ortho_canonical_coef(i1,i) 15 | do j1 = 1,ao_num 16 | c_j1 = c_i1*ao_ortho_canonical_coef(j1,j) 17 | ao_ortho_canonical_nucl_elec_integral(j,i) = ao_ortho_canonical_nucl_elec_integral(j,i) + & 18 | c_j1 * ao_nucl_elec_integral(j1,i1) 19 | enddo 20 | enddo 21 | enddo 22 | enddo 23 | !$OMP END PARALLEL DO 24 | END_PROVIDER 25 | 26 | -------------------------------------------------------------------------------- /src/MOGuess/pot_mo_ortho_lowdin_ints.irp.f: -------------------------------------------------------------------------------- 1 | BEGIN_PROVIDER [double precision, ao_ortho_lowdin_nucl_elec_integral, (mo_tot_num,mo_tot_num)] 2 | implicit none 3 | integer :: i1,j1,i,j 4 | double precision :: c_i1,c_j1 5 | 6 | ao_ortho_lowdin_nucl_elec_integral = 0.d0 7 | !$OMP PARALLEL DO DEFAULT(none) & 8 | !$OMP PRIVATE(i,j,i1,j1,c_j1,c_i1) & 9 | !$OMP SHARED(mo_tot_num,ao_num,ao_ortho_lowdin_coef, & 10 | !$OMP ao_ortho_lowdin_nucl_elec_integral, ao_nucl_elec_integral) 11 | do i = 1, mo_tot_num 12 | do j = 1, mo_tot_num 13 | do i1 = 1,ao_num 14 | c_i1 = ao_ortho_lowdin_coef(i1,i) 15 | do j1 = 1,ao_num 16 | c_j1 = c_i1*ao_ortho_lowdin_coef(j1,j) 17 | ao_ortho_lowdin_nucl_elec_integral(j,i) = ao_ortho_lowdin_nucl_elec_integral(j,i) + & 18 | c_j1 * ao_nucl_elec_integral(j1,i1) 19 | enddo 20 | enddo 21 | enddo 22 | enddo 23 | !$OMP END PARALLEL DO 24 | END_PROVIDER 25 | 26 | -------------------------------------------------------------------------------- /src/MOGuess/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/MOGuess/tree_dependency.png -------------------------------------------------------------------------------- /src/MO_Basis/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [mo_tot_num] 2 | type: integer 3 | doc: Total number of molecular orbitals and the size of the keys corresponding 4 | interface: ezfio 5 | 6 | [mo_coef] 7 | type: double precision 8 | doc: coefficient of the ith ao on the jth mo 9 | interface: ezfio 10 | size: (ao_basis.ao_num,mo_basis.mo_tot_num) 11 | 12 | [mo_label] 13 | type: character*(64) 14 | doc: Label characterizing the MOS (local, canonical, natural, etc) 15 | interface: ezfio 16 | 17 | [mo_occ] 18 | type: double precision 19 | doc: MO occupation numbers 20 | interface: ezfio 21 | size: (mo_basis.mo_tot_num) 22 | 23 | [mo_class] 24 | type: MO_class 25 | doc: Core|Inactive|Active|Virtual|Deleted 26 | interface: ezfio, provider 27 | size: (mo_basis.mo_tot_num) 28 | 29 | [ao_md5] 30 | type: character*(32) 31 | doc: Ao_md5 32 | interface: ezfio 33 | -------------------------------------------------------------------------------- /src/MO_Basis/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | AO_Basis Electrons 2 | -------------------------------------------------------------------------------- /src/MO_Basis/mo_overlap.irp.f: -------------------------------------------------------------------------------- 1 | 2 | BEGIN_PROVIDER [ double precision, mo_overlap,(mo_tot_num,mo_tot_num)] 3 | implicit none 4 | integer :: i,j,n,l 5 | double precision :: f 6 | integer :: lmax 7 | lmax = (ao_num/4) * 4 8 | !$OMP PARALLEL DO SCHEDULE(STATIC) DEFAULT(NONE) & 9 | !$OMP PRIVATE(i,j,n,l) & 10 | !$OMP SHARED(mo_overlap,mo_coef,ao_overlap, & 11 | !$OMP mo_tot_num,ao_num,lmax) 12 | do j=1,mo_tot_num 13 | do i= 1,mo_tot_num 14 | mo_overlap(i,j) = 0.d0 15 | do n = 1, lmax,4 16 | do l = 1, ao_num 17 | mo_overlap(i,j) = mo_overlap(i,j) + mo_coef(l,i) * & 18 | ( mo_coef(n ,j) * ao_overlap(l,n ) & 19 | + mo_coef(n+1,j) * ao_overlap(l,n+1) & 20 | + mo_coef(n+2,j) * ao_overlap(l,n+2) & 21 | + mo_coef(n+3,j) * ao_overlap(l,n+3) ) 22 | enddo 23 | enddo 24 | do n = lmax+1, ao_num 25 | do l = 1, ao_num 26 | mo_overlap(i,j) = mo_overlap(i,j) + mo_coef(n,j) * mo_coef(l,i) * ao_overlap(l,n) 27 | enddo 28 | enddo 29 | enddo 30 | enddo 31 | !$OMP END PARALLEL DO 32 | END_PROVIDER 33 | 34 | -------------------------------------------------------------------------------- /src/MO_Basis/mo_permutation.irp.f: -------------------------------------------------------------------------------- 1 | program permut_mos 2 | implicit none 3 | integer :: mo1,mo2 4 | integer :: i,j,k,l 5 | double precision :: mo_coef_tmp(ao_num,2) 6 | print*,'Which MOs would you like to change ?' 7 | read(5,*)mo1,mo2 8 | print*,'' 9 | do i= 1,ao_num 10 | mo_coef_tmp(i,1) = mo_coef(i,mo1) 11 | mo_coef_tmp(i,2) = mo_coef(i,mo2) 12 | enddo 13 | do i = 1,ao_num 14 | mo_coef(i,mo1) = mo_coef_tmp(i,2) 15 | mo_coef(i,mo2) = mo_coef_tmp(i,1) 16 | enddo 17 | touch mo_coef 18 | call save_mos 19 | 20 | end 21 | -------------------------------------------------------------------------------- /src/MO_Basis/swap_mos.irp.f: -------------------------------------------------------------------------------- 1 | program swap_mos 2 | implicit none 3 | integer :: i,j, i1, i2 4 | double precision :: x 5 | print *, 'MOs to swap?' 6 | read(*,*) i1, i2 7 | do i=1,ao_num 8 | x = mo_coef(i,i1) 9 | mo_coef(i,i1) = mo_coef(i,i2) 10 | mo_coef(i,i2) = x 11 | enddo 12 | call save_mos 13 | 14 | end 15 | -------------------------------------------------------------------------------- /src/MO_Basis/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/MO_Basis/tree_dependency.png -------------------------------------------------------------------------------- /src/MPI/.gitignore: -------------------------------------------------------------------------------- 1 | IRPF90_temp/ 2 | IRPF90_man/ 3 | irpf90.make 4 | irpf90_entities 5 | tags -------------------------------------------------------------------------------- /src/MPI/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/Nuclei/EZFIO.cfg: -------------------------------------------------------------------------------- 1 | [nucl_num] 2 | doc: Number of nuclei 3 | type: integer 4 | interface: ezfio, provider 5 | 6 | [nucl_label] 7 | doc: Nuclear labels 8 | type: character*(32) 9 | size: (nuclei.nucl_num) 10 | interface: ezfio, provider 11 | 12 | [nucl_charge] 13 | doc: Nuclear charges 14 | type:double precision 15 | size: (nuclei.nucl_num) 16 | interface: ezfio, provider 17 | 18 | [nucl_coord] 19 | doc: Nuclear coordinates in the format (:, {x,y,z}) 20 | type: double precision 21 | size: (nuclei.nucl_num,3) 22 | interface: ezfio 23 | 24 | [disk_access_nuclear_repulsion] 25 | doc: Read/Write Nuclear Repulsion from/to disk [ Write | Read | None ] 26 | type: Disk_access 27 | interface: ezfio,provider,ocaml 28 | default: None 29 | 30 | [nuclear_repulsion] 31 | doc: Nuclear repulsion (Computed automaticaly or Read in the EZFIO) 32 | type:double precision 33 | interface: ezfio 34 | -------------------------------------------------------------------------------- /src/Nuclei/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Ezfio_files Utils 2 | -------------------------------------------------------------------------------- /src/Nuclei/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/Nuclei/tree_dependency.png -------------------------------------------------------------------------------- /src/Pseudo/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Nuclei -------------------------------------------------------------------------------- /src/Pseudo/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/Pseudo/tree_dependency.png -------------------------------------------------------------------------------- /src/Utils/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/Utils/constants.include.F: -------------------------------------------------------------------------------- 1 | integer, parameter :: max_dim = 511 2 | integer, parameter :: SIMD_vector = 32 3 | integer, parameter :: N_int_max = 32 4 | 5 | double precision, parameter :: pi = dacos(-1.d0) 6 | double precision, parameter :: sqpi = dsqrt(dacos(-1.d0)) 7 | double precision, parameter :: pi_5_2 = 34.9868366552d0 8 | double precision, parameter :: dfour_pi = 4.d0*dacos(-1.d0) 9 | double precision, parameter :: dtwo_pi = 2.d0*dacos(-1.d0) 10 | double precision, parameter :: inv_sq_pi = 1.d0/dsqrt(dacos(-1.d0)) 11 | double precision, parameter :: inv_sq_pi_2 = 0.5d0/dsqrt(dacos(-1.d0)) 12 | double precision, parameter :: thresh = 1.d-15 13 | -------------------------------------------------------------------------------- /src/Utils/extrapolation.irp.f: -------------------------------------------------------------------------------- 1 | subroutine extrapolate_data(N_data, data, pt2, output) 2 | implicit none 3 | BEGIN_DOC 4 | ! Extrapolate the data to the FCI limit 5 | END_DOC 6 | integer, intent(in) :: N_data 7 | double precision, intent(in) :: data(N_data) 8 | double precision, intent(in) :: pt2(N_data) 9 | double precision, intent(out) :: output(N_data) 10 | 11 | double precision :: data_rev(N_data), pt2_rev(N_data) 12 | integer :: ifit, i,j 13 | double precision :: ab(2), x(N_data,2), x_inv(2,N_data), y(N_data) 14 | 15 | do i=1,N_data 16 | data_rev(N_data+1-i) = data(i) 17 | pt2_rev(N_data+1-i) = pt2(i) 18 | enddo 19 | 20 | do i=1,N_data 21 | y(i) = data_rev(i) 22 | x(i,1) = 1.d0 23 | x(i,2) = pt2_rev(i) 24 | enddo 25 | do ifit=2,N_data 26 | call get_pseudo_inverse(x,size(x,1),ifit,2,x_inv,size(x_inv,1)) 27 | ab = matmul(x_inv(1:2,1:ifit),y(1:ifit)) 28 | output(ifit) = ab(1) 29 | enddo 30 | 31 | end 32 | -------------------------------------------------------------------------------- /src/Utils/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/Utils/tree_dependency.png -------------------------------------------------------------------------------- /src/ZMQ/NEEDED_CHILDREN_MODULES: -------------------------------------------------------------------------------- 1 | Utils 2 | -------------------------------------------------------------------------------- /src/ZMQ/f77_zmq_module.f90: -------------------------------------------------------------------------------- 1 | module f77_zmq 2 | include 'f77_zmq.h' 3 | end module 4 | 5 | -------------------------------------------------------------------------------- /src/ZMQ/tree_dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LCPQ/quantum_package/edd9add59ff4547c41a99f129d34b52efa79bcf4/src/ZMQ/tree_dependency.png -------------------------------------------------------------------------------- /tests/bats/cassd.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | source $QP_ROOT/tests/bats/common.bats.sh 4 | 5 | @test "CAS_SD H2O cc-pVDZ" { 6 | test_exe cassd_zmq || skip 7 | INPUT=h2o.ezfio 8 | rm -rf work/h2o.ezfio/determinants/ 9 | qp_edit -c $INPUT 10 | ezfio set_file $INPUT 11 | ezfio set perturbation do_pt2 True 12 | ezfio set determinants n_det_max 16384 13 | qp_set_mo_class $INPUT -core "[1]" -inact "[2,5]" -act "[3,4,6,7]" -virt "[8-24]" 14 | qp_run cassd_zmq $INPUT 15 | energy="$(ezfio get cas_sd_zmq energy_pt2)" 16 | eq $energy -76.231248286858 5.E-5 17 | 18 | ezfio set determinants n_det_max 1024 19 | ezfio set determinants read_wf True 20 | ezfio set perturbation do_pt2 True 21 | qp_run cassd_zmq $INPUT 22 | ezfio set determinants read_wf False 23 | energy="$(ezfio get cas_sd_zmq energy)" 24 | eq $energy -76.2225678834779 2.E-5 25 | } 26 | 27 | -------------------------------------------------------------------------------- /tests/bats/convert.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | source $QP_ROOT/tests/bats/common.bats.sh 4 | 5 | #=== Convert 6 | @test "gamess convert HBO.out" { 7 | cp ${QP_ROOT}/tests/input/HBO.out . 8 | qp_convert_output_to_ezfio.py HBO.out 9 | qp_edit -c HBO.out.ezfio 10 | ezfio set_file HBO.out.ezfio 11 | qp_run SCF HBO.out.ezfio 12 | # Check energy 13 | energy="$(ezfio get hartree_fock energy)" 14 | eq $energy -100.0185822590964 1.e-10 15 | } 16 | 17 | @test "g09 convert H2O.log" { 18 | cp ${QP_ROOT}/tests/input/h2o.log . 19 | qp_convert_output_to_ezfio.py h2o.log 20 | qp_edit -c h2o.log.ezfio 21 | ezfio set_file h2o.log.ezfio 22 | qp_run SCF h2o.log.ezfio 23 | # Check energy 24 | energy="$(ezfio get hartree_fock energy)" 25 | eq $energy -76.0270218704265 1E-10 26 | } 27 | 28 | -------------------------------------------------------------------------------- /tests/bats/foboci.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | source $QP_ROOT/tests/bats/common.bats.sh 4 | 5 | function run_all_1h_1p() { 6 | thresh=1.e-6 7 | test_exe all_1h_1p || skip 8 | qp_edit -c $1 9 | ezfio set_file $1 10 | ezfio set determinants n_det_max $2 11 | ezfio set perturbation pt2_max $3 12 | ezfio set davidson threshold_davidson 1.e-10 13 | 14 | qp_run all_1h_1p $1 | tee $1.F1h1p.out 15 | energy="$(ezfio get all_singles energy)" 16 | eq $energy $4 $thresh 17 | } 18 | 19 | 20 | #=== DHNO 21 | 22 | @test "all_1h_1p DHNO chipman-dzp" { 23 | qp_set_mo_class -inact "[1-8]" -act "[9]" -virt "[10-64]" dhno.ezfio 24 | run_all_1h_1p dhno.ezfio 10000 0.0000000001 -130.4466283766202 25 | } 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/bats/hf.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | source $QP_ROOT/tests/bats/common.bats.sh 4 | 5 | function run_init() { 6 | cp "${QP_ROOT}/tests/input/$1" . 7 | qp_create_ezfio_from_xyz $1 -o $3 $2 8 | qp_edit -c $3 9 | } 10 | 11 | 12 | function run_HF() { 13 | thresh=1.e-7 14 | test_exe SCF || skip 15 | qp_edit -c $1 16 | ezfio set_file $1 17 | ezfio set hartree_fock thresh_scf 2.e-8 18 | qp_run SCF $1 19 | energy="$(ezfio get hartree_fock energy)" 20 | eq $energy $2 $thresh 21 | } 22 | 23 | 24 | 25 | #=== DHNO 26 | @test "init DHNO chipman-dzp" { 27 | run_init dhno.xyz "-b chipman-dzp -m 2" dhno.ezfio 28 | } 29 | 30 | @test "SCF DHNO chipman-dzp" { 31 | run_HF dhno.ezfio -130.4278777822 32 | } 33 | 34 | #=== HBO 35 | @test "init HBO STO-3G" { 36 | run_init HBO.xyz "-b STO-3G" hbo.ezfio 37 | } 38 | 39 | @test "SCF HBO STO-3G" { 40 | run_HF hbo.ezfio -98.8251985678084 41 | } 42 | 43 | 44 | #=== H2O 45 | @test "init H2O cc-pVDZ" { 46 | run_init h2o.xyz "-b cc-pvdz" h2o.ezfio 47 | } 48 | 49 | @test "SCF H2O cc-pVDZ" { 50 | run_HF h2o.ezfio -0.760270218692179E+02 51 | } 52 | 53 | -------------------------------------------------------------------------------- /tests/bats_to_sh.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sys 4 | 5 | with open(sys.argv[1],'r') as f: 6 | raw_data = f.read() 7 | 8 | output = [] 9 | inside = False 10 | level = 0 11 | for i in raw_data: 12 | new_i = i 13 | if i == "@": 14 | inside = True 15 | elif i == "{" and inside and level == 0: 16 | new_i = "" 17 | elif i == "}" and inside and level == 1: 18 | inside = False 19 | new_i = "" 20 | if i == "{": 21 | level += 1 22 | elif i == "}": 23 | level -= 1 24 | output.append(new_i) 25 | 26 | print "".join(output).replace("@test","echo").replace("|| skip","|| return") 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /tests/input/HBO.xyz: -------------------------------------------------------------------------------- 1 | 3 2 | HBO Geo: Experiment Mult: 1 symmetry: 14 3 | B 0.0 0.0 1.166 4 | H 0.0 0.0 0.0 5 | O 0.0 0.0 2.366 6 | -------------------------------------------------------------------------------- /tests/input/dhno.xyz: -------------------------------------------------------------------------------- 1 | 4 2 | XYZ file: coordinates in Angstrom 3 | H -0.877367 -1.047049 0.000000 4 | N 0.000000 -0.544985 0.000000 5 | O 0.000000 0.738624 0.000000 6 | H 0.877367 -1.047049 0.000000 7 | 8 | -------------------------------------------------------------------------------- /tests/input/h2o.xyz: -------------------------------------------------------------------------------- 1 | 3 2 | XYZ file: coordinates in Angstrom 3 | H 0.7510000000 0.1940000000 0.0000000000 4 | O 0.0000000000 -0.3880000000 0.0000000000 5 | H -0.7510000000 0.1940000000 0.0000000000 6 | 7 | -------------------------------------------------------------------------------- /tests/run_tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | LIST=" 4 | convert.bats 5 | hf.bats 6 | fci.bats 7 | cassd.bats 8 | mrcepa0.bats 9 | pseudo.bats 10 | " 11 | #foboci.bats 12 | 13 | 14 | export QP_PREFIX="timeout -s 9 600" 15 | #export QP_TASK_DEBUG=1 16 | 17 | rm -rf work output 18 | 19 | 20 | for BATS_FILE in $LIST 21 | do 22 | echo 23 | echo "-~-~-~-~-~-~" 24 | echo 25 | echo "Running tests for ${BATS_FILE%.bats}" 26 | echo 27 | BATS_FILE=bats/$BATS_FILE 28 | if [[ "$1" == "-v" ]] 29 | then 30 | echo "Verbose mode" 31 | ./bats_to_sh.py $BATS_FILE | bash 32 | else 33 | bats $BATS_FILE 34 | fi 35 | done 36 | 37 | --------------------------------------------------------------------------------