mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-08-26 22:21:49 +02:00
|
||
---|---|---|
.. | ||
ao_basis | ||
ao_many_one_e_ints | ||
ao_one_e_ints | ||
ao_tc_eff_map | ||
ao_two_e_erf_ints | ||
ao_two_e_ints | ||
aux_quantities | ||
basis | ||
basis_correction | ||
becke_numerical_grid | ||
bi_ort_ints | ||
bi_ortho_mos | ||
bitmask | ||
cas_based_on_top | ||
ccsd | ||
cipsi | ||
cipsi_tc_bi_ortho | ||
cis | ||
cisd | ||
csf | ||
dav_general_mat | ||
davidson | ||
davidson_dressed | ||
davidson_keywords | ||
davidson_undressed | ||
density_for_dft | ||
determinants | ||
dft_keywords | ||
dft_one_e | ||
dft_utils_func | ||
dft_utils_in_r | ||
dressing | ||
dummy | ||
electrons | ||
ezfio_files | ||
fci | ||
fci_tc_bi | ||
functionals | ||
generators_cas | ||
generators_full | ||
hartree_fock | ||
iterations | ||
iterations_tc | ||
kohn_sham | ||
kohn_sham_rs | ||
mo_basis | ||
mo_guess | ||
mo_one_e_ints | ||
mo_two_e_erf_ints | ||
mo_two_e_ints | ||
mol_properties | ||
mpi | ||
mu_of_r | ||
non_h_ints_mu | ||
non_hermit_dav | ||
nuclei | ||
ortho_three_e_ints | ||
perturbation | ||
pseudo | ||
psiref_cas | ||
psiref_utils | ||
scf_utils | ||
selectors_cassd | ||
selectors_full | ||
selectors_utils | ||
single_ref_method | ||
tc_bi_ortho | ||
tc_keywords | ||
tc_scf | ||
tools | ||
two_body_rdm | ||
two_rdm_routines | ||
utils | ||
utils_cc | ||
utils_periodic | ||
utils_trust_region | ||
zmq | ||
.gitignore | ||
README.rst |
========================== The core modules of the QP ========================== *** How are handled the DFT functionals in QP2 ? ================================================ The Exchange and Correlation energies/potentials can be accessed by the following providers energy_x energy_c potential_x_alpha_ao potential_c_alpha_ao potential_x_beta_ao potential_c_beta_ao These providers are automatically linked to the providers of the actual exchange/correlation energies of a given functional through the character keywords "exchange_functional" "correlation_functional" All the providers for the available functionals are in the folder "functionals", with one file "my_functional.irp.f" per functional. Ex : if "exchange_functional" == "sr_pbe", then energy_x will contain the exchange correlation functional defined in "functiona/sr_pbe.irp.f", which corresponds to the short-range PBE functional (at the value mu_erf for the range separation parameter) *** How to add a new functional in QP2 ====================================== Creating a new functional and propagating it through the whole QP2 programs is easy as all dependencies are handled by a script. To do so, let us assume that the name of your functional is "my_func". Then you just have to create the file "my_func.irp.f" in the folder "functional" which shoud contain +) if you're adding an exchange functional, then create the provider "energy_x_my_func" +) if you're adding a correlation functional, create the provider "energy_c_my_func" +) if you want to add the echange potentials, create the providers "potential_x_alpha_ao_my_func", "potential_x_beta_ao_my_func" which are the exchange potentials on the AO basis for the alpha/beta electrons +) if you want to add the correlation potentials, create the providers "potential_c_alpha_ao_my_func", "potential_c_beta_ao_my_func" which are the correlation potentials on the AO basis for the alpha/beta electrons That's all :) Then, when running whatever DFT calculation or accessing/using the providers: energy_x energy_c potential_x_alpha_ao potential_c_alpha_ao potential_x_beta_ao potential_c_beta_ao if exchange_functional = mu_func, then you will automatically have access to what you need, such as kohn sham orbital optimization and so on ...