Skip to content

mod_global_atomic_descriptor

Lines: 43 | Visibility: private

A module providing the GlobalAtomicDescriptor type. author: Moritz R. Schaefer

Dependencies

Uses

module~~mod_global_atomic_descriptor~~UsesGraph module~mod_global_atomic_descriptor mod_global_atomic_descriptor module~mod_optional_args mod_optional_args module~mod_global_atomic_descriptor->module~mod_optional_args module~mod_precision mod_precision module~mod_global_atomic_descriptor->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_global_atomic_descriptor~~UsedByGraph module~mod_global_atomic_descriptor mod_global_atomic_descriptor module~mod_global_feature_calculator mod_global_feature_calculator module~mod_global_feature_calculator->module~mod_global_atomic_descriptor module~mod_ee4g_feature_calculator mod_ee4g_feature_calculator module~mod_ee4g_feature_calculator->module~mod_global_feature_calculator module~mod_enforce_reading mod_enforce_reading module~mod_enforce_reading->module~mod_global_feature_calculator module~mod_feature_map_scaling_all_chunks mod_feature_map_scaling_all_chunks module~mod_feature_map_scaling_all_chunks->module~mod_global_feature_calculator module~mod_feature_map_scaling_all_chunks->module~mod_ee4g_feature_calculator module~mod_qeq_feature_calculator mod_qeq_feature_calculator module~mod_feature_map_scaling_all_chunks->module~mod_qeq_feature_calculator module~mod_structure_batch_iterator mod_structure_batch_iterator module~mod_feature_map_scaling_all_chunks->module~mod_structure_batch_iterator module~mod_global_features_helper mod_global_features_helper module~mod_global_features_helper->module~mod_global_feature_calculator 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_global_feature_calculator module~mod_predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_cost_calculator mod_cost_calculator module~mod_output_files_and_cost_4g_short_range->module~mod_cost_calculator 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_global_feature_calculator module~mod_predict_4g_no_force_trick_single_structure->module~mod_global_features_helper module~mod_predict_4g_short_range_training_qeq_single_structure mod_predict_4g_short_range_training_qeq_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_qeq_feature_calculator module~mod_predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_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->module~mod_global_feature_calculator module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_global_features_helper module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_predict_4g_short_range_training_qeq_single_structure module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_4g_short_range_training_qeq_single_structure->module~mod_global_feature_calculator module~mod_qeq_feature_calculator->module~mod_global_feature_calculator module~mod_structure_batch_iterator->module~mod_global_feature_calculator module~mod_structure_batch_iterator->module~mod_global_features_helper module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_global_feature_calculator module~mod_train_loop_short_range->module~mod_ee4g_feature_calculator module~mod_train_loop_short_range->module~mod_global_features_helper module~mod_train_loop_short_range->module~mod_output_files_and_cost_4g_short_range module~mod_train_loop_short_range->module~mod_qeq_feature_calculator module~mod_initialize mod_initialize module~mod_train_loop_short_range->module~mod_initialize module~mod_output_files_and_cost mod_output_files_and_cost module~mod_train_loop_short_range->module~mod_output_files_and_cost module~mod_predict_ee4g_feature_calculator_multiple_structures mod_predict_ee4g_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_energy_multiple_structures mod_train_energy_multiple_structures module~mod_train_loop_short_range->module~mod_train_energy_multiple_structures module~mod_train_forces_multiple_structures mod_train_forces_multiple_structures module~mod_train_loop_short_range->module~mod_train_forces_multiple_structures module~mod_train_loop_short_range->module~mod_cost_calculator module~mod_train_mode mod_train_mode module~mod_train_mode->module~mod_global_feature_calculator module~mod_train_mode->module~mod_ee4g_feature_calculator module~mod_train_mode->module~mod_feature_map_scaling_all_chunks module~mod_train_mode->module~mod_qeq_feature_calculator module~mod_train_mode->module~mod_train_loop_short_range module~mod_train_mode->module~mod_initialize module~mod_predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures module~mod_train_mode->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_train_mode->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_train_mode->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_precalc_coulomb_matrix_all_chunks mod_precalc_coulomb_matrix_all_chunks module~mod_train_mode->module~mod_precalc_coulomb_matrix_all_chunks module~mod_predict_all_chunks mod_predict_all_chunks module~mod_train_mode->module~mod_predict_all_chunks module~mod_train_loop_4g_charges mod_train_loop_4g_charges module~mod_train_mode->module~mod_train_loop_4g_charges module~mod_train_loop_atomic_property mod_train_loop_atomic_property module~mod_train_mode->module~mod_train_loop_atomic_property module~mod_write_outfiles_training mod_write_outfiles_training module~mod_train_mode->module~mod_write_outfiles_training module~mod_evaluate_4g_single_structure mod_evaluate_4g_single_structure module~mod_evaluate_4g_single_structure->module~mod_ee4g_feature_calculator module~mod_initialize->module~mod_ee4g_feature_calculator module~mod_initialize->module~mod_qeq_feature_calculator module~mod_output_files_and_cost->module~mod_ee4g_feature_calculator module~mod_predict_multiple_structures mod_predict_multiple_structures module~mod_output_files_and_cost->module~mod_predict_multiple_structures module~mod_output_files_and_cost->module~mod_cost_calculator module~mod_post_processing_4g_single_structure mod_post_processing_4g_single_structure module~mod_post_processing_4g_single_structure->module~mod_ee4g_feature_calculator module~mod_post_processing_4g_single_structure->module~mod_evaluate_4g_single_structure module~mod_post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_ee4g_feature_calculator module~mod_post_processing_wrapper_single_structure->module~mod_global_features_helper module~mod_post_processing_wrapper_single_structure->module~mod_evaluate_4g_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_post_processing_4g_single_structure module~mod_precompute_global_features_all_chunks mod_precompute_global_features_all_chunks module~mod_precompute_global_features_all_chunks->module~mod_ee4g_feature_calculator module~mod_precompute_global_features_all_chunks->module~mod_qeq_feature_calculator module~mod_precompute_global_features_all_chunks->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_ee4g_feature_calculator module~mod_predict_ee4g_feature_calculator_multiple_structures->module~mod_qeq_feature_calculator module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_ee4g_feature_calculator module~mod_predict_mode->module~mod_enforce_reading module~mod_predict_mode->module~mod_qeq_feature_calculator module~mod_predict_mode->module~mod_initialize module~mod_predict_mode->module~mod_predict_multiple_structures module~mod_write_outfiles mod_write_outfiles module~mod_predict_mode->module~mod_write_outfiles module~mod_predict_multiple_structures->module~mod_ee4g_feature_calculator module~mod_predict_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_multiple_structures->module~mod_post_processing_wrapper_single_structure module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_qeq_feature_calculator module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_predict_qeq_feature_calculator_single_structure module~mod_predict_qeq_feature_calculator_single_structure->module~mod_qeq_feature_calculator module~mod_predict_single_structure mod_predict_single_structure module~mod_predict_single_structure->module~mod_ee4g_feature_calculator module~mod_predict_single_structure->module~mod_post_processing_wrapper_single_structure module~mod_runner_interface mod_runner_interface module~mod_runner_interface->module~mod_ee4g_feature_calculator module~mod_runner_interface_bindings mod_runner_interface_bindings module~mod_runner_interface_bindings->module~mod_enforce_reading module~mod_runner_interface_bindings->module~mod_global_features_helper module~mod_runner_interface_bindings->module~mod_qeq_feature_calculator module~mod_runner_interface_bindings->module~mod_evaluate_4g_single_structure module~mod_runner_interface_bindings->module~mod_initialize module~mod_runner_interface_bindings->module~mod_runner_interface program~runner RuNNer program~runner->module~mod_ee4g_feature_calculator program~runner->module~mod_qeq_feature_calculator program~runner->module~mod_train_mode program~runner->module~mod_initialize program~runner->module~mod_precompute_global_features_all_chunks program~runner->module~mod_predict_mode module~mod_feature_calc_interface mod_feature_calc_interface module~mod_feature_calc_interface->module~mod_runner_interface module~mod_generic_interface mod_generic_interface module~mod_feature_calc_interface->module~mod_generic_interface module~mod_generic_interface->module~mod_predict_single_structure module~mod_generic_interface->module~mod_runner_interface module~mod_lammps_interface mod_lammps_interface module~mod_lammps_interface->module~mod_runner_interface module~mod_lammps_interface->module~mod_runner_interface_bindings module~mod_output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges module~mod_output_files_and_cost_4g_charges->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator module~mod_precalc_coulomb_matrix_all_chunks->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_predict_all_chunks->module~mod_predict_multiple_structures module~mod_train_energy_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures->module~mod_train_energy_multiple_structures module~mod_train_loop_4g_charges->module~mod_initialize module~mod_train_loop_4g_charges->module~mod_output_files_and_cost_4g_charges module~mod_train_loop_4g_charges->module~mod_cost_calculator module~mod_train_loop_atomic_property->module~mod_initialize module~mod_train_loop_atomic_property->module~mod_output_files_and_cost module~mod_train_loop_atomic_property->module~mod_cost_calculator module~mod_write_outfiles->module~mod_initialize module~mod_write_outfiles_training->module~mod_write_outfiles module~mod_cost_calculator->module~mod_write_outfiles_training

Derived Types Summary

Name Description
GlobalAtomicDescriptor A type that stores global features and their derivatives. In constrast to AtomicDescriptor,...

Procedures Summary

Name Type Description
init Subroutine Initialize the global atomic descriptor. This allocates the arrays for the features and their...
reset Subroutine Reset the underlying arrays of the global atomic descriptor.

Derived Types Details

type GlobalAtomicDescriptor

A type that stores global features and their derivatives.

In constrast to AtomicDescriptor, this does not store the features of an individual atom, but the features of all atoms in a structure. This makes sense for descriptors that are not atom-centered, or do not only depend on the local environment of an atom, but on the entire structure.

Components

  • nat : integer– The number of atoms in the structure for which the features are computed.
  • atomic_numbers : integer (dim: (:))– Atomic numbers of the atoms in the structure. I.e. 6 for carbon.
  • features : real(DP) (dim: (:,:))– Features of the atomic descriptor. Dimension(num_features, num_atoms_in_structure)
  • features_first_derivative : real(DP) (dim: (:,:,:,:))– First derivative of the features with respect to the Cartesian coordinates of all other atoms in the structure. Dimension(3, num_features, num_atoms_in_structure, num_atoms_in_structure)
  • features_second_derivative : real(DP) (dim: (:,:,:,:,:))– Second derivative of the features with respect to the Cartesian coordinates of all other atoms in the structure. Dimension(3, 3, num_features, num_atoms_in_structure, num_atoms_in_structure)

Type-Bound Procedures

Name Attributes Binding
init public ⇒ init
reset public ⇒ reset

Inherited By

type~~globalatomicdescriptor~~InheritedByGraph type~globalatomicdescriptor GlobalAtomicDescriptor type~globalfeaturecalculator GlobalFeatureCalculator type~globalfeaturecalculator->type~globalatomicdescriptor desc type~ee4gfeaturecalculator EE4GFeatureCalculator type~ee4gfeaturecalculator->type~globalfeaturecalculator type~globalfeaturecalculatorptr GlobalFeatureCalculatorPtr type~globalfeaturecalculatorptr->type~globalfeaturecalculator ptr type~qeqfeaturecalculator QEqFeatureCalculator type~qeqfeaturecalculator->type~globalfeaturecalculator type~runnerinterface RuNNerInterface type~runnerinterface->type~ee4gfeaturecalculator ee4g_calc

Procedure Details

subroutine init

subroutine init( &
    self, &
    num_features, &
    num_atoms_in_structure, &
    latomic_number, &
    lfeature, &
    lderiv1, &
    lderiv2 &
)

Initialize the global atomic descriptor.

This allocates the arrays for the features and their derivatives. The structure pointer must be set before calling this routine.

Arguments

  • self : class(GlobalAtomicDescriptor) [inout]
  • num_features : integer [in]– Number of features to be computed for the structure.
  • num_atoms_in_structure : integer [in]– Number of atoms in the structure for which the features are computed.
  • latomic_number : logical [in]– Whether to allocate the atomic numbers array.
  • lfeature : logical [in]– Whether to allocate the features array.
  • lderiv1 : logical [in]– Whether to allocate the first derivative array.
  • lderiv2 : logical [in]– Whether to allocate the second derivative array.

Called By

proc~~init~~CalledByGraph proc~init mod_global_atomic_descriptor::GlobalAtomicDescriptor%init proc~eval_qeq_feature_calculator mod_qeq_feature_calculator::QEqFeatureCalculator%eval_qeq_feature_calculator proc~eval_qeq_feature_calculator->proc~init proc~prepare_evaluate_parent mod_global_feature_calculator::GlobalFeatureCalculator%prepare_evaluate_parent proc~eval_qeq_feature_calculator->proc~prepare_evaluate_parent proc~prepare_evaluate_parent->proc~init proc~read_global_features_all_chunks mod_train_mode::read_global_features_all_chunks proc~read_global_features_all_chunks->proc~init proc~eval_ee4g_feature_calculator mod_ee4g_feature_calculator::EE4GFeatureCalculator%eval_ee4g_feature_calculator proc~eval_ee4g_feature_calculator->proc~prepare_evaluate_parent proc~evaluate_qeq_extra_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::evaluate_qeq_extra_feature_calculator_single_structure proc~evaluate_qeq_extra_feature_calculator_single_structure->proc~eval_qeq_feature_calculator proc~prepare_global_feature_derivatives_for_structure mod_predict_4g_short_range_training_qeq_multiple_structures::prepare_global_feature_derivatives_for_structure proc~prepare_global_feature_derivatives_for_structure->proc~prepare_evaluate_parent proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~read_global_features_all_chunks proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks mod_predict_ee4g_feature_calculator_multiple_structures::predict_ee4g_feature_calculator_multiple_structures_all_chunks proc~train_mode->proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks proc~predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures::predict_qeq_feature_calculator_multiple_structures proc~train_mode->proc~predict_qeq_feature_calculator_multiple_structures proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_mode->proc~train_loop_short_range 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~prepare_global_feature_derivatives_for_structure proc~predict_ee4g_feature_calculator_multiple_structures mod_predict_ee4g_feature_calculator_multiple_structures::predict_ee4g_feature_calculator_multiple_structures proc~predict_ee4g_feature_calculator_multiple_structures->proc~eval_ee4g_feature_calculator proc~predict_qeq_feature_calculator_single_structure mod_predict_qeq_feature_calculator_single_structure::predict_qeq_feature_calculator_single_structure proc~predict_qeq_feature_calculator_single_structure->proc~evaluate_qeq_extra_feature_calculator_single_structure program~runner RuNNer program~runner->proc~train_mode proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks program~runner->proc~precompute_global_features_all_chunks 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~precompute_global_features_all_chunks->proc~predict_ee4g_feature_calculator_multiple_structures proc~precompute_global_features_all_chunks->proc~predict_qeq_feature_calculator_multiple_structures 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_qeq_feature_calculator_single_structure proc~predict_ee4g_feature_calculator_multiple_structures_all_chunks->proc~predict_ee4g_feature_calculator_multiple_structures proc~predict_qeq_feature_calculator_multiple_structures->proc~predict_qeq_feature_calculator_single_structure proc~train_loop_short_range->proc~predict_ee4g_feature_calculator_multiple_structures 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

subroutine reset

subroutine reset( &
    self, &
    latomic_number, &
    lfeature, &
    lderiv1, &
    lderiv2 &
)

Reset the underlying arrays of the global atomic descriptor.

Arguments

  • self : class(GlobalAtomicDescriptor) [inout]
  • latomic_number : logical [in]– Whether to reset the atomic numbers array.
  • lfeature : logical [in]– Whether to reset the features array.
  • lderiv1 : logical [in]– Whether to reset the first derivative array.
  • lderiv2 : logical [in]– Whether to reset the second derivative array.

Called By

proc~~reset~~CalledByGraph proc~reset mod_global_atomic_descriptor::GlobalAtomicDescriptor%reset proc~free_feature_derivatives mod_global_feature_calculator::GlobalFeatureCalculator%free_feature_derivatives proc~free_feature_derivatives->proc~reset proc~free_global_feature_derivatives mod_predict_4g_short_range_training_qeq_multiple_structures::free_global_feature_derivatives proc~free_global_feature_derivatives->proc~free_feature_derivatives 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~free_feature_derivatives proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~free_feature_derivatives proc~train_loop_short_range->proc~predict_qeq_feature_calculator_multiple_structures proc~output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range::output_files_and_cost_4g_short_range proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range 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~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~free_global_feature_derivatives 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 proc~output_files_and_cost_4g_short_range->proc~predict_4g_short_range_training_qeq_multiple_structures program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode