|
CP2K 2.4 (Revision 12889)
|
Provides types for the management of the xc-functionals and their derivatives. More...
Classes | |
| struct | xc_derivative_type |
| represent a derivative of a functional More... | |
| struct | xc_derivative_p_type |
| represent a pointer to a derivative (to have arrays of derivatives) More... | |
Functions | |
| subroutine, public | xc_derivative_create (derivative, desc, cr3d_ptr, error) |
| allocates and initializes a derivative type | |
| subroutine, public | xc_derivative_retain (deriv, error) |
| retains the given derivative (see doc/ReferenceCounting.html) | |
| subroutine, public | xc_derivative_release (derivative, pw_pool, error) |
| allocates and initializes a derivative type | |
| subroutine, public | xc_derivative_get (deriv, desc, split_desc, order, deriv_data, accept_null_data, error) |
| returns various information on the given derivative | |
Variables | |
| INTEGER, save | derivative_id_nr = 1 |
| CHARACTER(len=*), parameter, private | moduleN = 'xc_derivative_types' |
Provides types for the management of the xc-functionals and their derivatives.
| subroutine,public xc_derivative_types::xc_derivative_create | ( | TYPE(xc_derivative_type),pointer | derivative, |
| CHARACTER(len=*),intent(in) | desc, | ||
| REAL(kind=dp),dimension(:, :, :),pointer | cr3d_ptr, | ||
| TYPE(cp_error_type),intent(inout) | error | ||
| ) |
allocates and initializes a derivative type
| derivative | the object to create |
| desc | the derivative description |
| cr | 3d_ptr : the data array (the ownership of it passes to the derivative type), the array is not zeroed |
| error | variable to control error logging, stopping,... see module cp_error_handling |
Definition at line 65 of file xc_derivative_types.f90.
References CPPostcondition, derivative_id_nr, and xc_derivative_desc::MAX_DERIVATIVE_DESC_LENGTH.
Referenced by xc_derivative_set_types::xc_dset_get_derivative().
Here is the caller graph for this function:| subroutine,public xc_derivative_types::xc_derivative_get | ( | TYPE(xc_derivative_type),pointer | deriv, |
| CHARACTER (len=MAX_DERIVATIVE_DESC_LENGTH),intent(out),optional | desc, | ||
| CHARACTER(len=MAX_LABEL_LENGTH),dimension(:),optional,pointer | split_desc, | ||
| INTEGER,intent(out),optional | order, | ||
| REAL(kind=dp),dimension(:, :, :),optional,pointer | deriv_data, | ||
| LOGICAL,intent(in),optional | accept_null_data, | ||
| TYPE(cp_error_type),intent(inout) | error | ||
| ) |
returns various information on the given derivative
| deriv | thederivative you whant information about |
| desc | a string that describes the derivative (empty string for the function itself, otherwise a string of the form "(rho)(rho)(norm_drhoa)") |
| split_desc | the same as desc but with an array of strings, and a derivative coordinate in each string (the previous example would become (/"rho","rho","norm_drhoa"/) |
| order | the order of the derivative |
| deriv_data | the 3d real array with the derivative |
| accept_null_data | if deriv_data can be unassociated (defaults to no) |
| error | variable to control error logging, stopping,... see module cp_error_handling |
Definition at line 189 of file xc_derivative_types.f90.
References error, and xc_derivative_desc::MAX_DERIVATIVE_DESC_LENGTH.
Referenced by xc_pot_saop::add_saop_pot(), xc_b97::b97_lda_eval(), xc_b97::b97_lsd_eval(), atom_xc::calculate_atom_vxc_lda(), atom_xc::calculate_atom_vxc_lsd(), xc_cs1::cs1_lda_eval(), xc_cs1::cs1_lsd_eval(), xc::divide_by_norm_drho(), xc_pot_saop::gapw_add_atomic_saop_pot(), xc_hcth::hcth_lda_eval(), xc_ke_gga::ke_gga_lda_eval(), xc_ke_gga::ke_gga_lsd_eval(), xc_lyp_adiabatic::lyp_adiabatic_lda_eval(), xc_lyp_adiabatic::lyp_adiabatic_lsd_eval(), xc_lyp::lyp_lda_eval(), xc_lyp::lyp_lsd_eval(), xc_optx::optx_lda_eval(), xc_optx::optx_lsd_eval(), xc_perdew86::p86_lda_eval(), xc_pade::pade_lda_pw_eval(), xc_pade::pade_lsd_pw_eval(), xc_pbe::pbe_lda_eval(), xc_pbe::pbe_lsd_eval(), xc_perdew_wang::perdew_wang_lda_eval(), xc_perdew_wang::perdew_wang_lsd_eval(), xc_perdew_zunger::pz_lda_eval(), xc_perdew_zunger::pz_lsd_eval(), xc_tfw::tfw_lda_eval(), xc_tfw::tfw_lsd_eval(), xc_thomas_fermi::thomas_fermi_lda_eval(), xc_thomas_fermi::thomas_fermi_lsd_eval(), xc_tpss::tpss_lda_eval(), xc_tpss::tpss_lsd_eval(), xc_vwn::vwn_lda_eval(), xc_vwn::vwn_lsd_eval(), xc_atom::vxc_of_r_new(), xc_xalpha::xalpha_lda_eval(), xc_xalpha::xalpha_lsd_eval(), xc_xbecke88::xb88_lda_eval(), xc_xbecke88_lr_adiabatic::xb88_lr_adiabatic_lda_eval(), xc_xbecke88_lr_adiabatic::xb88_lr_adiabatic_lsd_eval(), xc_xbecke88_long_range::xb88_lr_lda_eval(), xc_xbecke88_long_range::xb88_lr_lsd_eval(), xc_xbecke88::xb88_lsd_eval(), xc_xbecke_roussel::xbecke_roussel_lda_eval(), xc_xbecke_roussel::xbecke_roussel_lsd_eval(), xc_xbr_pbe_lda_hole_t_c_lr::xbr_pbe_lda_hole_tc_lr_lda_eval(), xc_xbr_pbe_lda_hole_t_c_lr::xbr_pbe_lda_hole_tc_lr_lsd_eval(), xc::xc_calc_2nd_deriv(), xc::xc_exc_calc(), xc::xc_vxc_pw_create(), xc::xc_vxc_pw_create_debug(), xc::xc_vxc_pw_create_test_lsd(), xc_exchange_gga::xgga_eval(), xc_xlda_hole_t_c_lr::xlda_hole_t_c_lr_lda_eval(), xc_xlda_hole_t_c_lr::xlda_hole_t_c_lr_lsd_eval(), xc_xpbe_hole_t_c_lr::xpbe_hole_t_c_lr_lda_eval(), xc_xpbe_hole_t_c_lr::xpbe_hole_t_c_lr_lsd_eval(), xc_xwpbe::xwpbe_lda_eval(), and xc_xwpbe::xwpbe_lsd_eval().
| subroutine,public xc_derivative_types::xc_derivative_release | ( | TYPE(xc_derivative_type),pointer | derivative, |
| TYPE(pw_pool_type),optional,pointer | pw_pool, | ||
| TYPE(cp_error_type),intent(inout) | error | ||
| ) |
allocates and initializes a derivative type
| derivative | the object to create |
| pw_pool | if given gives back the cr3d array deriv_data back to it instead of deallocating it |
| error | variable to control error logging, stopping,... see module cp_error_handling |
Definition at line 133 of file xc_derivative_types.f90.
References CPPostcondition, CPPostconditionNoFail, and pw_pool_types::pw_pool_give_back_cr3d().
Here is the call graph for this function:| subroutine,public xc_derivative_types::xc_derivative_retain | ( | TYPE(xc_derivative_type),pointer | deriv, |
| TYPE(cp_error_type),intent(inout) | error | ||
| ) |
retains the given derivative (see doc/ReferenceCounting.html)
| deriv | the object you want to retain |
| error | variable to control error logging, stopping,... see module cp_error_handling |
Definition at line 107 of file xc_derivative_types.f90.
References CPPreconditionNoFail.
Definition at line 25 of file xc_derivative_types.f90.
Referenced by xc_derivative_create().
| CHARACTER(len=*),parameter,private xc_derivative_types::moduleN = 'xc_derivative_types' |
Definition at line 27 of file xc_derivative_types.f90.
1.7.3