CP2K 2.4 (Revision 12889)
Classes | Functions | Variables

xc_derivative_types Namespace Reference

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'

Detailed Description

Provides types for the management of the xc-functionals and their derivatives.


Function Documentation

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

Parameters:
derivativethe object to create
descthe derivative description
cr3d_ptr : the data array (the ownership of it passes to the derivative type), the array is not zeroed
errorvariable 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

Parameters:
derivthederivative you whant information about
desca string that describes the derivative (empty string for the function itself, otherwise a string of the form "(rho)(rho)(norm_drhoa)")
split_descthe 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"/)
orderthe order of the derivative
deriv_datathe 3d real array with the derivative
accept_null_dataif deriv_data can be unassociated (defaults to no)
errorvariable 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

Parameters:
derivativethe object to create
pw_poolif given gives back the cr3d array deriv_data back to it instead of deallocating it
errorvariable 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)

Parameters:
derivthe object you want to retain
errorvariable to control error logging, stopping,... see module cp_error_handling
History
11.2003 created [fawzi]
Author:
fawzi

Definition at line 107 of file xc_derivative_types.f90.

References CPPreconditionNoFail.


Variable Documentation

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.