derexc_blk Subroutine

public subroutine derexc_blk(basis, molGrid, da, db, dedft, totele, totkin, mxAngMom, nbf, dft_threshold, urohf, infos)

Uses

  • proc~~derexc_blk~~UsesGraph proc~derexc_blk derexc_blk module~basis_tools basis_tools proc~derexc_blk->module~basis_tools module~mod_dft_gridint mod_dft_gridint proc~derexc_blk->module~mod_dft_gridint module~mod_dft_molgrid mod_dft_molgrid proc~derexc_blk->module~mod_dft_molgrid module~types types proc~derexc_blk->module~types iso_fortran_env iso_fortran_env module~basis_tools->iso_fortran_env module~atomic_structure_m atomic_structure_m module~basis_tools->module~atomic_structure_m module~constants constants module~basis_tools->module~constants module~io_constants io_constants module~basis_tools->module~io_constants module~parallel parallel module~basis_tools->module~parallel module~precision precision module~basis_tools->module~precision module~mod_dft_gridint->module~basis_tools module~mod_dft_gridint->module~mod_dft_molgrid module~functionals functionals module~mod_dft_gridint->module~functionals module~mod_dft_gridint->module~io_constants module~mod_dft_xc_libxc mod_dft_xc_libxc module~mod_dft_gridint->module~mod_dft_xc_libxc module~oqp_linalg oqp_linalg module~mod_dft_gridint->module~oqp_linalg module~mod_dft_gridint->module~parallel module~mod_dft_gridint->module~precision module~bragg_slater_radii bragg_slater_radii module~mod_dft_molgrid->module~bragg_slater_radii module~lebedev lebedev module~mod_dft_molgrid->module~lebedev module~mod_grid_storage mod_grid_storage module~mod_dft_molgrid->module~mod_grid_storage module~mod_dft_molgrid->module~precision module~types->module~basis_tools iso_c_binding iso_c_binding module~types->iso_c_binding module~types->module~atomic_structure_m module~types->module~functionals module~types->module~parallel module~types->module~precision tagarray tagarray module~types->tagarray module~atomic_structure_m->iso_c_binding module~bragg_slater_radii->module~precision module~constants->module~precision module~functionals->iso_c_binding module~functionals->module~precision xc_f03_lib_m xc_f03_lib_m module~functionals->xc_f03_lib_m module~lebedev->module~precision module~mod_dft_xc_libxc->module~precision module~mod_dft_xclib mod_dft_xclib module~mod_dft_xc_libxc->module~mod_dft_xclib module~mod_grid_storage->module~precision module~blas_wrap blas_wrap module~oqp_linalg->module~blas_wrap module~lapack_wrap lapack_wrap module~oqp_linalg->module~lapack_wrap module~parallel->iso_c_binding module~parallel->iso_fortran_env module~parallel->module~precision mpi mpi module~parallel->mpi module~precision->iso_fortran_env module~blas_wrap->module~precision module~mathlib_types mathlib_types module~blas_wrap->module~mathlib_types module~messages messages module~blas_wrap->module~messages module~lapack_wrap->module~precision module~lapack_wrap->module~mathlib_types module~lapack_wrap->module~messages module~mod_dft_xclib->module~functionals module~mod_dft_xclib->module~precision module~messages->module~io_constants module~messages->module~precision comm_IOFILE comm_IOFILE module~messages->comm_IOFILE comm_PAR comm_PAR module~messages->comm_PAR

@brief Compute grid XC contribution to the nuclear gradient

Note

Weight derivatives are not applied here. The gradient seems to be good enough even using fairly poor grids. However, I do not recomment to use it for numerical Hessian calculation until weight derivatives are implemented @param[in] da density matrix, alpha-spin @param[in] db density matrix, beta-spin @param[inout] dedft nuclear gradient @param[out] totele electronic denisty integral @param[out] totkin kinetic energy integral @param[in] mxAngMom max. needed ang. mom. value (incl. derivatives) @param[in] nbf basis set size @param[in] isGGA .TRUE. if GGA/mGGA functional used @param[in] urohf .TRUE. if open-shell calculation @author Vladimir Mironov

Arguments

Type IntentOptional Attributes Name
type(basis_set) :: basis
type(dft_grid_t), intent(in), target :: molGrid
real(kind=fp), intent(inout) :: da(nbf,*)
real(kind=fp), intent(inout) :: db(nbf,*)
real(kind=fp), intent(inout) :: dedft(:,:)
real(kind=fp), intent(inout) :: totele
real(kind=fp), intent(inout) :: totkin
integer, intent(in) :: mxAngMom
integer, intent(in) :: nbf
real(kind=fp), intent(in) :: dft_threshold
logical, intent(in) :: urohf
type(information), intent(in), target :: infos

Calls

proc~~derexc_blk~~CallsGraph proc~derexc_blk derexc_blk none~clean~19 xc_consumer_grad_t%clean proc~derexc_blk->none~clean~19 none~init~14 par_env_t%init proc~derexc_blk->none~init~14 proc~run_xc run_xc proc~derexc_blk->proc~run_xc mpi_comm_rank mpi_comm_rank none~init~14->mpi_comm_rank mpi_comm_size mpi_comm_size none~init~14->mpi_comm_size none~allreduce par_env_t%allreduce proc~run_xc->none~allreduce none~compaos xc_engine_t%compAOs proc~run_xc->none~compaos none~compxc xc_engine_t%compXC proc~run_xc->none~compxc none~getslicenonzero dft_grid_t%getSliceNonZero proc~run_xc->none~getslicenonzero none~getstats xc_engine_t%getStats proc~run_xc->none~getstats none~init~18 xc_engine_t%init proc~run_xc->none~init~18 none~pruneaos xc_engine_t%pruneAOs proc~run_xc->none~pruneaos none~resetpointers xc_engine_t%resetPointers proc~run_xc->none~resetpointers parallel_start parallel_start proc~run_xc->parallel_start parallel_stop parallel_stop proc~run_xc->parallel_stop postUpdate postUpdate proc~run_xc->postUpdate update update proc~run_xc->update none~par_env_t_allreduce_byte par_env_t%par_env_t_allreduce_byte none~allreduce->none~par_env_t_allreduce_byte none~par_env_t_allreduce_c_bool par_env_t%par_env_t_allreduce_c_bool none~allreduce->none~par_env_t_allreduce_c_bool none~par_env_t_allreduce_dp_1d par_env_t%par_env_t_allreduce_dp_1d none~allreduce->none~par_env_t_allreduce_dp_1d none~par_env_t_allreduce_dp_2d par_env_t%par_env_t_allreduce_dp_2d none~allreduce->none~par_env_t_allreduce_dp_2d none~par_env_t_allreduce_dp_3d par_env_t%par_env_t_allreduce_dp_3d none~allreduce->none~par_env_t_allreduce_dp_3d none~par_env_t_allreduce_dp_4d par_env_t%par_env_t_allreduce_dp_4d none~allreduce->none~par_env_t_allreduce_dp_4d none~par_env_t_allreduce_dp_scalar par_env_t%par_env_t_allreduce_dp_scalar none~allreduce->none~par_env_t_allreduce_dp_scalar none~par_env_t_allreduce_int32_1d par_env_t%par_env_t_allreduce_int32_1d none~allreduce->none~par_env_t_allreduce_int32_1d none~par_env_t_allreduce_int32_scalar par_env_t%par_env_t_allreduce_int32_scalar none~allreduce->none~par_env_t_allreduce_int32_scalar none~par_env_t_allreduce_int64_1d par_env_t%par_env_t_allreduce_int64_1d none~allreduce->none~par_env_t_allreduce_int64_1d none~par_env_t_allreduce_int64_scalar par_env_t%par_env_t_allreduce_int64_scalar none~allreduce->none~par_env_t_allreduce_int64_scalar none~aoval basis_set%aoval none~compaos->none~aoval none~compmos xc_engine_t%compMOs none~compxc->none~compmos none~comprhoall xc_engine_t%compRhoAll none~compxc->none~comprhoall proc~compute~2 xc_libxc_t%compute none~compxc->proc~compute~2 none~getbyid list_grid_3d_t%getByID none~getslicenonzero->none~getbyid none~getenergy xc_lib_t%getEnergy none~getstats->none~getenergy proc~init xc_libxc_t%init none~init~18->proc~init none~resetprunedpointers xc_engine_t%resetPrunedPointers none~pruneaos->none~resetprunedpointers none~resetorbpointers~2 xc_engine_t%resetOrbPointers none~resetpointers->none~resetorbpointers~2 none~resetxcpointers xc_engine_t%resetXCPointers none~resetpointers->none~resetxcpointers proc~setpts xc_libxc_t%setPts none~resetpointers->proc~setpts none~compaov basis_set%compAOv none~aoval->none~compaov none~compaovg basis_set%compAOvg none~aoval->none~compaovg none~compaovgg basis_set%compAOvgg none~aoval->none~compaovgg proc~mo_tran_gemm_ mo_tran_gemm_ none~compmos->proc~mo_tran_gemm_ proc~mo_tran_symm_ mo_tran_symm_ none~compmos->proc~mo_tran_symm_ mpi_allreduce mpi_allreduce none~par_env_t_allreduce_byte->mpi_allreduce none~par_env_t_allreduce_c_bool->mpi_allreduce none~par_env_t_allreduce_dp_1d->mpi_allreduce none~par_env_t_allreduce_dp_2d->mpi_allreduce none~par_env_t_allreduce_dp_3d->mpi_allreduce none~par_env_t_allreduce_dp_4d->mpi_allreduce none~par_env_t_allreduce_dp_scalar->mpi_allreduce none~par_env_t_allreduce_int32_1d->mpi_allreduce none~par_env_t_allreduce_int32_scalar->mpi_allreduce none~par_env_t_allreduce_int64_1d->mpi_allreduce none~par_env_t_allreduce_int64_scalar->mpi_allreduce none~calc_evfxc functional_t%calc_evfxc proc~compute~2->none~calc_evfxc none~calc_evxc functional_t%calc_evxc proc~compute~2->none~calc_evxc none~calc_xc functional_t%calc_xc proc~compute~2->none~calc_xc none~scalexc xc_lib_t%scalexc proc~compute~2->none~scalexc none~clean~13 xc_lib_t%clean proc~init->none~clean~13 none~resetenergy xc_lib_t%resetEnergy proc~init->none~resetenergy interface~show_message show_message none~calc_evfxc->interface~show_message xc_f03_func_info_get_family xc_f03_func_info_get_family none~calc_evfxc->xc_f03_func_info_get_family xc_f03_func_info_get_kind xc_f03_func_info_get_kind none~calc_evfxc->xc_f03_func_info_get_kind xc_f03_func_info_get_name xc_f03_func_info_get_name none~calc_evfxc->xc_f03_func_info_get_name xc_f03_gga_exc_vxc_fxc xc_f03_gga_exc_vxc_fxc none~calc_evfxc->xc_f03_gga_exc_vxc_fxc xc_f03_lda_exc_vxc_fxc xc_f03_lda_exc_vxc_fxc none~calc_evfxc->xc_f03_lda_exc_vxc_fxc xc_f03_mgga_exc_vxc_fxc xc_f03_mgga_exc_vxc_fxc none~calc_evfxc->xc_f03_mgga_exc_vxc_fxc none~calc_evxc->interface~show_message none~calc_evxc->xc_f03_func_info_get_family none~calc_evxc->xc_f03_func_info_get_kind none~calc_evxc->xc_f03_func_info_get_name xc_f03_gga_exc_vxc xc_f03_gga_exc_vxc none~calc_evxc->xc_f03_gga_exc_vxc xc_f03_lda_exc_vxc xc_f03_lda_exc_vxc none~calc_evxc->xc_f03_lda_exc_vxc xc_f03_mgga_exc_vxc xc_f03_mgga_exc_vxc none~calc_evxc->xc_f03_mgga_exc_vxc none~calc_xc->interface~show_message none~calc_xc->xc_f03_func_info_get_family none~calc_xc->xc_f03_func_info_get_kind none~calc_xc->xc_f03_func_info_get_name xc_f03_gga_exc_vxc_fxc_kxc xc_f03_gga_exc_vxc_fxc_kxc none~calc_xc->xc_f03_gga_exc_vxc_fxc_kxc xc_f03_lda_exc_vxc_fxc_kxc xc_f03_lda_exc_vxc_fxc_kxc none~calc_xc->xc_f03_lda_exc_vxc_fxc_kxc xc_f03_mgga_exc_vxc_fxc_kxc xc_f03_mgga_exc_vxc_fxc_kxc none~calc_xc->xc_f03_mgga_exc_vxc_fxc_kxc proc~oqp_dgemm_i64 oqp_dgemm_i64 proc~mo_tran_gemm_->proc~oqp_dgemm_i64 proc~oqp_dsymm_i64 oqp_dsymm_i64 proc~mo_tran_symm_->proc~oqp_dsymm_i64 proc~oqp_dgemm_i64->interface~show_message dgemm dgemm proc~oqp_dgemm_i64->dgemm proc~oqp_dsymm_i64->interface~show_message dsymm dsymm proc~oqp_dsymm_i64->dsymm

Called by

proc~~derexc_blk~~CalledByGraph proc~derexc_blk derexc_blk proc~dftder dftder proc~dftder->proc~derexc_blk proc~hf_gradient hf_gradient proc~hf_gradient->proc~dftder