Skip to content

mod_abstract_property_model

Lines: 334 | Visibility: private

Implementation of an abstract base class for all models that predict chemical properties. author: Alexander Knoll, Moritz Schäfer

Dependencies

Uses

module~~mod_abstract_property_model~~UsesGraph module~mod_abstract_property_model mod_abstract_property_model module~mod_array_helpers mod_array_helpers module~mod_abstract_property_model->module~mod_array_helpers module~mod_initialize_array mod_initialize_array module~mod_abstract_property_model->module~mod_initialize_array module~mod_io mod_io module~mod_abstract_property_model->module~mod_io module~mod_precision mod_precision module~mod_abstract_property_model->module~mod_precision module~mod_random mod_random module~mod_abstract_property_model->module~mod_random module~mod_settings mod_settings module~mod_abstract_property_model->module~mod_settings module~mod_throw mod_throw module~mod_abstract_property_model->module~mod_throw module~mod_array_helpers->module~mod_precision module~mod_array_helpers->module~mod_throw module~mod_initialize_array->module~mod_io module~mod_initialize_array->module~mod_precision module~mod_initialize_array->module~mod_random module~mod_initialize_array->module~mod_throw module~mod_mpi mod_mpi module~mod_initialize_array->module~mod_mpi module~mod_parameter_file mod_parameter_file module~mod_initialize_array->module~mod_parameter_file module~mod_io->module~mod_precision iso_fortran_env iso_fortran_env module~mod_io->iso_fortran_env module~mod_optional_args mod_optional_args module~mod_io->module~mod_optional_args iso_c_binding iso_c_binding module~mod_precision->iso_c_binding module~mod_precision->iso_fortran_env module~mod_random->module~mod_precision module~mod_constants mod_constants module~mod_random->module~mod_constants module~mod_settings->module~mod_io module~mod_settings->module~mod_precision module~mod_settings->module~mod_throw module~mod_settings->module~mod_constants module~mod_cpu_vendor mod_cpu_vendor module~mod_settings->module~mod_cpu_vendor module~mod_periodic_table mod_periodic_table module~mod_settings->module~mod_periodic_table module~mod_throw->module~mod_io module~mod_throw->module~mod_precision module~mod_throw->iso_c_binding module~mod_throw->iso_fortran_env module~mod_throw->module~mod_mpi module~mod_sort mod_sort module~mod_throw->module~mod_sort module~mod_constants->module~mod_precision module~mod_constants->iso_c_binding module~mod_cpu_vendor->iso_c_binding module~mod_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 module~mod_parameter_file->module~mod_io module~mod_parameter_file->module~mod_precision module~mod_parameter_file->module~mod_throw module~mod_abstract_broadcast_file mod_abstract_broadcast_file module~mod_parameter_file->module~mod_abstract_broadcast_file module~mod_nan_check mod_nan_check module~mod_parameter_file->module~mod_nan_check module~mod_periodic_table->module~mod_array_helpers module~mod_periodic_table->module~mod_io module~mod_periodic_table->module~mod_precision module~mod_periodic_table->module~mod_throw module~mod_periodic_table->module~mod_constants module~mod_sort->module~mod_precision module~mod_abstract_broadcast_file->module~mod_io module~mod_abstract_broadcast_file->module~mod_throw module~mod_abstract_broadcast_file->module~mod_mpi module~mod_genericfile mod_genericfile module~mod_abstract_broadcast_file->module~mod_genericfile module~mod_sanitize mod_sanitize module~mod_abstract_broadcast_file->module~mod_sanitize module~mod_nan_check->module~mod_io module~mod_nan_check->module~mod_precision module~mod_nan_check->module~mod_throw ieee_arithmetic ieee_arithmetic module~mod_nan_check->ieee_arithmetic module~mod_genericfile->module~mod_io module~mod_genericfile->module~mod_throw module~mod_genericfile->module~mod_mpi module~mod_sanitize->module~mod_throw

Used By

module~~mod_abstract_property_model~~UsedByGraph module~mod_abstract_property_model mod_abstract_property_model module~mod_analyse_a_prime_matrix_eigenvalues mod_analyse_a_prime_matrix_eigenvalues module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_abstract_property_model module~mod_calc_atomic_properties mod_calc_atomic_properties module~mod_calc_atomic_properties->module~mod_abstract_property_model module~mod_forward_batched mod_forward_batched module~mod_calc_atomic_properties->module~mod_forward_batched module~mod_cost_calculator mod_cost_calculator module~mod_cost_calculator->module~mod_abstract_property_model module~mod_write_outfiles_training mod_write_outfiles_training module~mod_cost_calculator->module~mod_write_outfiles_training module~mod_dataset_statistics mod_dataset_statistics module~mod_dataset_statistics->module~mod_abstract_property_model module~mod_dataset_statistics->module~mod_forward_batched module~mod_dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks module~mod_dataset_statistics_chi_all_chunks->module~mod_abstract_property_model module~mod_dataset_statistics_chi_all_chunks->module~mod_dataset_statistics module~mod_signal_handler mod_signal_handler module~mod_dataset_statistics_chi_all_chunks->module~mod_signal_handler module~mod_elemental_property_model mod_elemental_property_model module~mod_elemental_property_model->module~mod_abstract_property_model module~mod_enforce_reading mod_enforce_reading module~mod_enforce_reading->module~mod_abstract_property_model module~mod_feature_map_scaling_all_chunks mod_feature_map_scaling_all_chunks module~mod_feature_map_scaling_all_chunks->module~mod_abstract_property_model module~mod_prediction_statistics mod_prediction_statistics module~mod_feature_map_scaling_all_chunks->module~mod_prediction_statistics module~mod_structure_batch_iterator mod_structure_batch_iterator module~mod_feature_map_scaling_all_chunks->module~mod_structure_batch_iterator module~mod_feature_map_scaling_all_chunks->module~mod_signal_handler module~mod_forward_backward_batched mod_forward_backward_batched module~mod_forward_backward_batched->module~mod_abstract_property_model module~mod_forward_backward_gradient_batched mod_forward_backward_gradient_batched module~mod_forward_backward_gradient_batched->module~mod_abstract_property_model module~mod_forward_batched->module~mod_abstract_property_model module~mod_forward_gradient_batched mod_forward_gradient_batched module~mod_forward_gradient_batched->module~mod_abstract_property_model module~mod_get_max_num_output_properties mod_get_max_num_output_properties module~mod_get_max_num_output_properties->module~mod_abstract_property_model module~mod_hdnn mod_hdnn module~mod_hdnn->module~mod_abstract_property_model module~mod_initialize mod_initialize module~mod_initialize->module~mod_abstract_property_model module~mod_initialize->module~mod_elemental_property_model module~mod_initialize->module~mod_hdnn module~mod_write_headers mod_write_headers module~mod_initialize->module~mod_write_headers module~mod_output_files_and_cost mod_output_files_and_cost module~mod_output_files_and_cost->module~mod_abstract_property_model module~mod_output_files_and_cost->module~mod_cost_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_4g_charges mod_output_files_and_cost_4g_charges module~mod_output_files_and_cost_4g_charges->module~mod_abstract_property_model module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator module~mod_predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_charges->module~mod_predict_4g_charges_training_qeq_multiple_structures 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_abstract_property_model module~mod_output_files_and_cost_4g_short_range->module~mod_cost_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_post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_abstract_property_model module~mod_post_processing_wrapper_single_structure->module~mod_calc_atomic_properties module~mod_precalc_coulomb_matrix_all_chunks mod_precalc_coulomb_matrix_all_chunks module~mod_precalc_coulomb_matrix_all_chunks->module~mod_abstract_property_model module~mod_precalc_coulomb_matrix_all_chunks->module~mod_forward_batched module~mod_precalc_coulomb_matrix_all_chunks->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_precompute_global_features_all_chunks mod_precompute_global_features_all_chunks module~mod_precompute_global_features_all_chunks->module~mod_abstract_property_model module~mod_precompute_global_features_all_chunks->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks->module~mod_signal_handler module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_abstract_property_model module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_structure_batch_iterator 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_abstract_property_model module~mod_predict_4g_no_force_trick_single_structure->module~mod_calc_atomic_properties module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_abstract_property_model module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_all_chunks mod_predict_all_chunks module~mod_predict_all_chunks->module~mod_abstract_property_model module~mod_predict_all_chunks->module~mod_predict_multiple_structures module~mod_predict_all_chunks->module~mod_signal_handler module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_abstract_property_model module~mod_predict_mode->module~mod_enforce_reading module~mod_predict_mode->module~mod_initialize module~mod_predict_mode->module~mod_predict_multiple_structures module~mod_predict_mode->module~mod_signal_handler module~mod_write_outfiles mod_write_outfiles module~mod_predict_mode->module~mod_write_outfiles module~mod_predict_multiple_structures->module~mod_abstract_property_model module~mod_predict_multiple_structures->module~mod_post_processing_wrapper_single_structure module~mod_predict_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_abstract_property_model module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_single_structure mod_predict_single_structure module~mod_predict_single_structure->module~mod_abstract_property_model module~mod_predict_single_structure->module~mod_calc_atomic_properties module~mod_predict_single_structure->module~mod_get_max_num_output_properties module~mod_predict_single_structure->module~mod_post_processing_wrapper_single_structure module~mod_prediction_statistics->module~mod_abstract_property_model module~mod_prediction_statistics->module~mod_calc_atomic_properties module~mod_prediction_statistics->module~mod_get_max_num_output_properties module~mod_runner_interface mod_runner_interface module~mod_runner_interface->module~mod_abstract_property_model module~mod_structure_batch_iterator->module~mod_abstract_property_model module~mod_structure_batch_iterator->module~mod_calc_atomic_properties module~mod_structure_batch_iterator->module~mod_get_max_num_output_properties module~mod_train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch module~mod_train_4g_atomic_charges_structure_batch->module~mod_abstract_property_model module~mod_train_4g_atomic_charges_structure_batch->module~mod_forward_backward_batched module~mod_train_4g_atomic_charges_structure_batch->module~mod_forward_batched module~mod_train_4g_atomic_charges_structure_batch->module~mod_get_max_num_output_properties module~mod_train_helpers mod_train_helpers module~mod_train_4g_atomic_charges_structure_batch->module~mod_train_helpers module~mod_train_atomic_property_multiple_atoms mod_train_atomic_property_multiple_atoms module~mod_train_atomic_property_multiple_atoms->module~mod_abstract_property_model module~mod_train_atomic_property_multiple_atoms->module~mod_forward_backward_batched module~mod_train_atomic_property_multiple_atoms->module~mod_forward_batched module~mod_train_atomic_property_multiple_atoms->module~mod_train_helpers module~mod_train_energy_multiple_structures mod_train_energy_multiple_structures module~mod_train_energy_multiple_structures->module~mod_abstract_property_model module~mod_train_energy_multiple_structures->module~mod_forward_backward_batched module~mod_train_energy_multiple_structures->module~mod_forward_batched module~mod_train_energy_multiple_structures->module~mod_get_max_num_output_properties module~mod_train_energy_multiple_structures->module~mod_initialize module~mod_train_energy_multiple_structures->module~mod_train_helpers module~mod_train_forces_multiple_structures mod_train_forces_multiple_structures module~mod_train_forces_multiple_structures->module~mod_abstract_property_model module~mod_train_forces_multiple_structures->module~mod_forward_backward_gradient_batched module~mod_train_forces_multiple_structures->module~mod_forward_gradient_batched module~mod_train_forces_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures->module~mod_train_energy_multiple_structures module~mod_train_forces_multiple_structures->module~mod_train_helpers module~mod_train_helpers->module~mod_abstract_property_model module~mod_train_loop_4g_charges mod_train_loop_4g_charges module~mod_train_loop_4g_charges->module~mod_abstract_property_model module~mod_train_loop_4g_charges->module~mod_cost_calculator 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_train_4g_atomic_charges_structure_batch module~mod_train_loop_4g_charges->module~mod_train_helpers module~mod_train_loop_4g_charges->module~mod_signal_handler module~mod_train_loop_atomic_property mod_train_loop_atomic_property module~mod_train_loop_atomic_property->module~mod_abstract_property_model module~mod_train_loop_atomic_property->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_train_atomic_property_multiple_atoms module~mod_train_loop_atomic_property->module~mod_train_helpers module~mod_train_loop_atomic_property->module~mod_signal_handler module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_abstract_property_model module~mod_train_loop_short_range->module~mod_cost_calculator module~mod_train_loop_short_range->module~mod_get_max_num_output_properties module~mod_train_loop_short_range->module~mod_initialize module~mod_train_loop_short_range->module~mod_output_files_and_cost module~mod_train_loop_short_range->module~mod_output_files_and_cost_4g_short_range module~mod_train_loop_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_train_energy_multiple_structures module~mod_train_loop_short_range->module~mod_train_forces_multiple_structures module~mod_train_loop_short_range->module~mod_train_helpers module~mod_train_loop_short_range->module~mod_signal_handler module~mod_train_mode mod_train_mode module~mod_train_mode->module~mod_abstract_property_model module~mod_train_mode->module~mod_dataset_statistics module~mod_train_mode->module~mod_dataset_statistics_chi_all_chunks module~mod_train_mode->module~mod_feature_map_scaling_all_chunks module~mod_train_mode->module~mod_initialize module~mod_train_mode->module~mod_precalc_coulomb_matrix_all_chunks module~mod_train_mode->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_train_mode->module~mod_predict_all_chunks module~mod_train_mode->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_mode->module~mod_train_loop_4g_charges module~mod_train_mode->module~mod_train_loop_atomic_property module~mod_train_mode->module~mod_train_loop_short_range module~mod_train_mode->module~mod_write_outfiles_training module~mod_write_headers->module~mod_abstract_property_model module~mod_write_outfiles_training->module~mod_abstract_property_model module~mod_write_outfiles_training->module~mod_write_outfiles program~runner RuNNer program~runner->module~mod_abstract_property_model program~runner->module~mod_initialize program~runner->module~mod_precompute_global_features_all_chunks program~runner->module~mod_predict_mode program~runner->module~mod_train_mode program~runner->module~mod_write_headers program~runner->module~mod_signal_handler module~mod_calculate_coulomb_matrix mod_calculate_coulomb_matrix program~runner->module~mod_calculate_coulomb_matrix module~mod_precompute_features_all_chunks mod_precompute_features_all_chunks program~runner->module~mod_precompute_features_all_chunks 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_runner_interface_bindings mod_runner_interface_bindings module~mod_lammps_interface->module~mod_runner_interface_bindings module~mod_runner_interface_bindings->module~mod_calc_atomic_properties module~mod_runner_interface_bindings->module~mod_enforce_reading module~mod_runner_interface_bindings->module~mod_get_max_num_output_properties module~mod_runner_interface_bindings->module~mod_initialize module~mod_runner_interface_bindings->module~mod_runner_interface module~mod_signal_handler->module~mod_write_headers module~mod_write_outfiles->module~mod_initialize module~mod_calculate_coulomb_matrix->module~mod_signal_handler module~mod_precompute_features_all_chunks->module~mod_signal_handler

Module Variables

  • OPT_KEYWORD : character (dim: (1))– This is the keyword that is parsed from input files to set the optimizer of an `AbstractPropertyModel`.

Derived Types Summary

Name Description
AbstractPropertyModel Parent class for all models that predicted physical properties. In RuNNer, we define a model as...
ModelPtr Generic, polymorphic, wrapper-pointer for all calculator objects. All models in RuNNer derive...

Procedures Summary

Name Type Description
get_num_backward_passes_abstract_property_model Function
get_num_forward_passes_abstract_property_model Function
initialize_abstract_property_model Subroutine Set the internal state of an AbstractPropertyModel from given parameters.
process_param_keyword Subroutine Private helper routine to parse a keyword-value pair.
initialize_from_file_abstract_property_model Subroutine
reset_results Subroutine Reset the results containers on the model.
read_parameters_from_file_abstract_property_model Subroutine
write_parameters_to_file_abstract_property_model Subroutine Delegate parameter writing

Derived Types Details

type AbstractPropertyModel

Parent class for all models that predicted physical properties.

In RuNNer, we define a model as any object with parameters that can be learned from data. Typical examples of a property model are therefore an HDNN or an ElementalPropertyModel.

Components

  • keyword_suffix : character– Inherited from AbstractPropertyModel
  • num_output_properties : integer– How many properties this model predicts.
  • max_num_features : integer– Inherited from AbstractPropertyModel
  • name : character– Inherited from AbstractPropertyModel
  • parameter_file_prefix : character– Prefix of the file from which parameters will be read/written.
  • file_path : character– Path to the directory where parameters are stored and output files will be written.
  • num_parameters : integer– Inherited from AbstractPropertyModel
  • num_parameters_mask : integer– The total number of free parameters in the model. This should always be set by the `constructor` procedure of the derived type.
  • batchsize : integer– Inherited from AbstractPropertyModel
  • num_forward_passes : integer– Inherited from AbstractPropertyModel
  • num_backward_passes : integer– Inherited from AbstractPropertyModel
  • optimizer_idx : integer– Inherited from AbstractPropertyModel
  • featcalc_index : integer– Inherited from AbstractPropertyModel
  • comm_idx : integer– To which committee member this model belongs.
  • output : real(DP) (dim: (:,:))– The output of the model. Dimension (batchsize x num_output_values)
  • jacobian : real(DP) (dim: (:,:,:))– The gradients of the output property with respect to input features. Dimension (max_num_features x batchsize x num_output_values).
  • mask : logical (dim: (:))– A logical array specifying, for each free parameter, whether it should be optimized or not.
  • initialization_method : character– Inherited from AbstractPropertyModel
  • lset_initialization_method : logical– Inherited from AbstractPropertyModel
  • precondition_method : character– Inherited from AbstractPropertyModel
  • lset_precondition_method : logical– Inherited from AbstractPropertyModel
  • parameter_min : real(DP)– Inherited from AbstractPropertyModel
  • parameter_max : real(DP)– Inherited from AbstractPropertyModel
  • lparameter_min : logical– Inherited from AbstractPropertyModel
  • lparameter_max : logical– Inherited from AbstractPropertyModel

Type-Bound Procedures

Name Attributes Binding
forward public ⇒ forward
backward public ⇒ backward
forward_gradient public ⇒ forward_gradient
backward_gradient public ⇒ backward_gradient
calc_jacobian public ⇒ calc_jacobian
initialize public ⇒ initialize
initialize_from_file public ⇒ initialize_from_file
precondition_parameters public ⇒ precondition_parameters
initialize_parameters public ⇒ initialize_parameters
set_optimizer public ⇒ set_optimizer
get_parameters public ⇒ get_parameters
set_parameters public ⇒ set_parameters
get_gradients_wrt_parameters public ⇒ get_gradients_wrt_parameters
get_num_parameters public ⇒ get_num_parameters
reset public ⇒ reset
reset_prediction public ⇒ reset_prediction
print public ⇒ print
reallocate public ⇒ reallocate
get_opt_ids_and_targets public ⇒ get_opt_ids_and_targets
initialize_parent public ⇒ initialize_abstract_property_model
initialize_from_file_parent public ⇒ initialize_from_file_abstract_property_model
reset_results public ⇒ reset_results
read_parameters_from_file public ⇒ read_parameters_from_file_abstract_property_model
write_parameters_to_file public ⇒ write_parameters_to_file_abstract_property_model
get_num_forward_passes public ⇒ get_num_forward_passes_abstract_property_model
get_num_backward_passes public ⇒ get_num_backward_passes_abstract_property_model

Inherited By

type~~abstractpropertymodel~~InheritedByGraph type~abstractpropertymodel AbstractPropertyModel type~hdnn HDNN type~hdnn->type~abstractpropertymodel type~modelptr ModelPtr type~modelptr->type~abstractpropertymodel ptr type~nonenvironmentdependentelementalpropertymodel NonEnvironmentDependentElementalPropertyModel type~nonenvironmentdependentelementalpropertymodel->type~abstractpropertymodel type~runnerinterface RuNNerInterface type~runnerinterface->type~modelptr models

type ModelPtr

Generic, polymorphic, wrapper-pointer for all calculator objects.

All models in RuNNer derive from the abstract base class AbstractPropertyModel. As we cannot instantialize a list of polymorphic type in Fortran, we have created the wrapper type ModelPtr, with the class attribute %ptr being an allocated non-polymorphic instance of a specifc AbstractPropertyModel child (like HDNN).

Components

  • ptr : class(AbstractPropertyModel)– Raw pointer to an instance of AbstractPropertyModel or a child class

Inherits

type~~modelptr~~InheritsGraph type~modelptr ModelPtr type~abstractpropertymodel AbstractPropertyModel type~modelptr->type~abstractpropertymodel ptr

Inherited By

type~~modelptr~~InheritedByGraph type~modelptr ModelPtr type~runnerinterface RuNNerInterface type~runnerinterface->type~modelptr models

Procedure Details

function get_num_backward_passes_abstract_property_model

function get_num_backward_passes_abstract_property_model( &
    self, &
    optimizer_idx, &
    atomic_numbers &
)

Arguments

  • self : class(AbstractPropertyModel) [in]
  • optimizer_idx : integer [in]
  • atomic_numbers : integer (dim: (:)) [in]

Called By

proc~~get_num_backward_passes_abstract_property_model~~CalledByGraph proc~get_num_backward_passes_abstract_property_model mod_abstract_property_model::AbstractPropertyModel%get_num_backward_passes_abstract_property_model proc~update_optimizers_multiple_models mod_train_helpers::update_optimizers_multiple_models proc~update_optimizers_multiple_models->proc~get_num_backward_passes_abstract_property_model proc~update_optimizers_single_model mod_train_helpers::update_optimizers_single_model proc~update_optimizers_single_model->proc~get_num_backward_passes_abstract_property_model interface~update_optimizers mod_train_helpers::update_optimizers interface~update_optimizers->proc~update_optimizers_multiple_models interface~update_optimizers->proc~update_optimizers_single_model proc~train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch::train_4g_atomic_charges_structure_batch proc~train_4g_atomic_charges_structure_batch->interface~update_optimizers proc~train_atomic_property_multiple_atoms mod_train_atomic_property_multiple_atoms::train_atomic_property_multiple_atoms proc~train_atomic_property_multiple_atoms->interface~update_optimizers proc~train_energy_multiple_structures mod_train_energy_multiple_structures::train_energy_multiple_structures proc~train_energy_multiple_structures->interface~update_optimizers proc~train_forces_multiple_structures mod_train_forces_multiple_structures::train_forces_multiple_structures proc~train_forces_multiple_structures->interface~update_optimizers proc~train_forces_multiple_structures->proc~train_energy_multiple_structures proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~train_4g_atomic_charges_structure_batch proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~train_atomic_property_multiple_atoms proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~train_energy_multiple_structures proc~train_loop_short_range->proc~train_forces_multiple_structures proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~train_mode

function get_num_forward_passes_abstract_property_model

function get_num_forward_passes_abstract_property_model( &
    self, &
    optimizer_idx, &
    atomic_numbers &
)

Arguments

  • self : class(AbstractPropertyModel) [in]
  • optimizer_idx : integer [in]
  • atomic_numbers : integer (dim: (:)) [in]

subroutine initialize_abstract_property_model

subroutine initialize_abstract_property_model( &
    self, &
    file_path, &
    initialization_method, &
    precondition_method, &
    parameter_min, &
    parameter_max &
)

Set the internal state of an AbstractPropertyModel from given parameters.

Arguments

  • self : class(AbstractPropertyModel) [inout]
  • file_path : character [in]– Path to the directory where the parameters are stored.
  • initialization_method : character [in]– How the parameters of the model are initialized. For details, see the `AbstractMLMode` class.
  • precondition_method : character [in]– How the parameters of the model are preconditioned. For details, see the `AbstractMLModel` class.
  • parameter_min : real(DP) [in]– When initializing parameters, the minimum value each parameter can take.
  • parameter_max : real(DP) [in]– When initializing parameters, the maximum value each parameter can take.

Called By

proc~~initialize_abstract_property_model~~CalledByGraph proc~initialize_abstract_property_model mod_abstract_property_model::AbstractPropertyModel%initialize_abstract_property_model proc~initialize_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%initialize_elemental_property_model proc~initialize_elemental_property_model->proc~initialize_abstract_property_model proc~initialize_from_file_abstract_property_model mod_abstract_property_model::AbstractPropertyModel%initialize_from_file_abstract_property_model proc~initialize_from_file_abstract_property_model->proc~initialize_abstract_property_model proc~initialize_hdnn mod_hdnn::HDNN%initialize_hdnn proc~initialize_hdnn->proc~initialize_abstract_property_model proc~initialize_from_file_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%initialize_from_file_elemental_property_model proc~initialize_from_file_elemental_property_model->proc~initialize_from_file_abstract_property_model proc~initialize_from_file_hdnn mod_hdnn::HDNN%initialize_from_file_hdnn proc~initialize_from_file_hdnn->proc~initialize_from_file_abstract_property_model proc~initialize_from_architecture mod_hdnn::HDNN%initialize_from_architecture proc~initialize_from_file_hdnn->proc~initialize_from_architecture proc~initialize_from_nns mod_hdnn::HDNN%initialize_from_nns proc~initialize_from_nns->proc~initialize_hdnn proc~initialize_from_architecture->proc~initialize_from_nns

subroutine process_param_keyword

subroutine process_param_keyword( &
    line_no, &
    line, &
    method, &
    lmethod_set &
)

Private helper routine to parse a keyword-value pair.

Arguments

  • line_no : integer [in]
  • line : character [in]
  • method : character [out]
  • lmethod_set : logical [inout]

Called By

proc~~process_param_keyword~~CalledByGraph proc~process_param_keyword mod_abstract_property_model::process_param_keyword proc~initialize_from_file_abstract_property_model mod_abstract_property_model::AbstractPropertyModel%initialize_from_file_abstract_property_model proc~initialize_from_file_abstract_property_model->proc~process_param_keyword proc~initialize_from_file_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%initialize_from_file_elemental_property_model proc~initialize_from_file_elemental_property_model->proc~initialize_from_file_abstract_property_model proc~initialize_from_file_hdnn mod_hdnn::HDNN%initialize_from_file_hdnn proc~initialize_from_file_hdnn->proc~initialize_from_file_abstract_property_model

subroutine initialize_from_file_abstract_property_model

subroutine initialize_from_file_abstract_property_model( &
    self, &
    file_path, &
    lines &
)

Arguments

  • self : class(AbstractPropertyModel) [inout]
  • file_path : character [in]
  • lines : character (dim: (:)) [in]– Individual lines from input.nn

Called By

proc~~initialize_from_file_abstract_property_model~~CalledByGraph proc~initialize_from_file_abstract_property_model mod_abstract_property_model::AbstractPropertyModel%initialize_from_file_abstract_property_model proc~initialize_from_file_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%initialize_from_file_elemental_property_model proc~initialize_from_file_elemental_property_model->proc~initialize_from_file_abstract_property_model proc~initialize_from_file_hdnn mod_hdnn::HDNN%initialize_from_file_hdnn proc~initialize_from_file_hdnn->proc~initialize_from_file_abstract_property_model

subroutine reset_results

subroutine reset_results( &
    self &
)

Reset the results containers on the model.

Arguments


subroutine read_parameters_from_file_abstract_property_model

subroutine read_parameters_from_file_abstract_property_model( &
    self, &
    iteration, &
    prefix, &
    idx, &
    suffix &
)

Arguments

  • self : class(AbstractPropertyModel) [inout]
  • iteration : integer [in]
  • prefix : character [in]
  • idx : integer [in]
  • suffix : character [in]

Called By

proc~~read_parameters_from_file_abstract_property_model~~CalledByGraph proc~read_parameters_from_file_abstract_property_model mod_abstract_property_model::AbstractPropertyModel%read_parameters_from_file_abstract_property_model proc~precompute_global_features_all_chunks mod_precompute_global_features_all_chunks::precompute_global_features_all_chunks proc~precompute_global_features_all_chunks->proc~read_parameters_from_file_abstract_property_model proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~read_parameters_from_file_abstract_property_model program~runner RuNNer program~runner->proc~precompute_global_features_all_chunks program~runner->proc~train_mode

subroutine write_parameters_to_file_abstract_property_model

subroutine write_parameters_to_file_abstract_property_model( &
    self, &
    iteration, &
    prefix, &
    idx, &
    suffix &
)

Delegate parameter writing

Arguments

  • self : class(AbstractPropertyModel) [in]
  • iteration : integer [in]
  • prefix : character [in]
  • idx : integer [in]
  • suffix : character [in]

Called By

proc~~write_parameters_to_file_abstract_property_model~~CalledByGraph proc~write_parameters_to_file_abstract_property_model mod_abstract_property_model::AbstractPropertyModel%write_parameters_to_file_abstract_property_model proc~write_outfiles_training_single_committee_member mod_write_outfiles_training::write_outfiles_training_single_committee_member proc~write_outfiles_training_single_committee_member->proc~write_parameters_to_file_abstract_property_model proc~write_outfiles_all_models mod_cost_calculator::CostCalculator%write_outfiles_all_models proc~write_outfiles_all_models->proc~write_outfiles_training_single_committee_member proc~report_cost_epoch mod_cost_calculator::CostCalculator%report_cost_epoch proc~report_cost_epoch->proc~write_outfiles_all_models proc~output_files_and_cost mod_output_files_and_cost::output_files_and_cost proc~output_files_and_cost->proc~report_cost_epoch proc~output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges::output_files_and_cost_4g_charges proc~output_files_and_cost_4g_charges->proc~report_cost_epoch 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~report_cost_epoch proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~output_files_and_cost_4g_charges proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~output_files_and_cost proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~output_files_and_cost proc~train_loop_short_range->proc~output_files_and_cost_4g_short_range proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~train_mode