Skip to content

mod_chain

Lines: 29 | Visibility: private

A module to store functions that calculate chain derivatives. author: Alexander Knoll, Moritz R. Schäfer

Dependencies

Uses

module~~mod_chain~~UsesGraph module~mod_chain mod_chain module~mod_precision mod_precision module~mod_chain->module~mod_precision iso_c_binding iso_c_binding module~mod_precision->iso_c_binding iso_fortran_env iso_fortran_env module~mod_precision->iso_fortran_env

Used By

module~~mod_chain~~UsedByGraph module~mod_chain mod_chain module~mod_predict_4g_short_range_training_qeq_single_structure mod_predict_4g_short_range_training_qeq_single_structure module~mod_predict_4g_short_range_training_qeq_single_structure->module~mod_chain module~mod_predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure module~mod_predict_qeq_feature_calculator_single_structure->module~mod_chain module~mod_predict_4g_no_force_trick_single_structure mod_predict_4g_no_force_trick_single_structure module~mod_predict_4g_no_force_trick_single_structure->module~mod_predict_4g_short_range_training_qeq_single_structure module~mod_predict_4g_no_force_trick_single_structure->module~mod_predict_qeq_feature_calculator_single_structure module~mod_predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_predict_4g_short_range_training_qeq_single_structure module~mod_predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_predict_qeq_feature_calculator_single_structure module~mod_output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range module~mod_output_files_and_cost_4g_short_range->module~mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks mod_precompute_global_features_all_chunks module~mod_precompute_global_features_all_chunks->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_output_files_and_cost_4g_short_range module~mod_train_mode mod_train_mode module~mod_train_mode->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_mode->module~mod_train_loop_short_range program~runner RuNNer program~runner->module~mod_precompute_global_features_all_chunks program~runner->module~mod_train_mode

Procedures Summary

Name Type Description
chain_rule_outprod Subroutine Calculate the outer product of a chain derivative For a given property x(z, y(z)), with given...

Procedure Details

subroutine chain_rule_outprod

subroutine chain_rule_outprod( &
    dx_dy, &
    dy_dz, &
    dx_dz, &
    lnegative &
)

Calculate the outer product of a chain derivative

For a given property x(z, y(z)), with given full derivative dx/dz = dl_x_dl_z + dl_x_dl_y dl_y_dl_z where dl denotes the partial derivative \(\dell\), this procedure calculates the second sum in the expression which is the outer product of the chain rule. The elements vectors which are derived are the first dimension of the dx_dz array.

Arguments

  • dx_dy : real(DP) (dim: (:)) [in]– The partial derivative of x with respect to (a vector) y.
  • dy_dz : real(DP) (dim: (size(dx_dz,1),size(dx_dz,2),size(dx_dy))) [in]– The partial derivative of (the vector) y with respect to (the matrix) z.
  • dx_dz : real(DP) (dim: (:,:)) [inout]– On input, the partial derivative of x with respect to (a matrix) z. On output, the full derivative of x with respect to z.
  • lnegative : logical [in]– if true, subtract the outer product, else add it.

Called By

proc~~chain_rule_outprod~~CalledByGraph proc~chain_rule_outprod mod_chain::chain_rule_outprod proc~calc_electrostatic_contributions_single_structure mod_predict_qeq_feature_calculator_single_structure::calc_electrostatic_contributions_single_structure proc~calc_electrostatic_contributions_single_structure->proc~chain_rule_outprod proc~predict_4g_short_range_training_qeq_single_structure mod_predict_4g_short_range_training_qeq_single_structure::predict_4g_short_range_training_qeq_single_structure proc~predict_4g_short_range_training_qeq_single_structure->proc~chain_rule_outprod proc~calc_electrostatic_contributions_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::calc_electrostatic_contributions_multiple_structures proc~calc_electrostatic_contributions_multiple_structures->proc~calc_electrostatic_contributions_single_structure proc~predict_4g_no_force_trick_single_structure mod_predict_4g_no_force_trick_single_structure::predict_4g_no_force_trick_single_structure proc~predict_4g_no_force_trick_single_structure->proc~predict_4g_short_range_training_qeq_single_structure proc~predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::predict_qeq_feature_calculator_single_structure proc~predict_4g_no_force_trick_single_structure->proc~predict_qeq_feature_calculator_single_structure proc~predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures::predict_4g_short_range_training_qeq_multiple_structures proc~predict_4g_short_range_training_qeq_multiple_structures->proc~predict_4g_short_range_training_qeq_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~calc_electrostatic_contributions_single_structure proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_qeq_feature_calculator_single_structure proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode