Skip to content

mod_elemental_property_model

Lines: 431 | Visibility: private

Dependencies

Uses

module~~mod_elemental_property_model~~UsesGraph module~mod_elemental_property_model mod_elemental_property_model module~mod_abstract_property_model mod_abstract_property_model module~mod_elemental_property_model->module~mod_abstract_property_model module~mod_activationfunctions mod_activationfunctions module~mod_elemental_property_model->module~mod_activationfunctions module~mod_array_helpers mod_array_helpers module~mod_elemental_property_model->module~mod_array_helpers module~mod_decorations mod_decorations module~mod_elemental_property_model->module~mod_decorations module~mod_initialize_array mod_initialize_array module~mod_elemental_property_model->module~mod_initialize_array module~mod_io mod_io module~mod_elemental_property_model->module~mod_io module~mod_periodic_table mod_periodic_table module~mod_elemental_property_model->module~mod_periodic_table module~mod_precision mod_precision module~mod_elemental_property_model->module~mod_precision module~mod_random mod_random module~mod_elemental_property_model->module~mod_random module~mod_throw mod_throw module~mod_elemental_property_model->module~mod_throw module~mod_abstract_property_model->module~mod_array_helpers module~mod_abstract_property_model->module~mod_initialize_array module~mod_abstract_property_model->module~mod_io module~mod_abstract_property_model->module~mod_precision module~mod_abstract_property_model->module~mod_random module~mod_abstract_property_model->module~mod_throw module~mod_settings mod_settings module~mod_abstract_property_model->module~mod_settings module~mod_activationfunctions->module~mod_throw module~mod_activationfunction_abstract mod_activationfunction_abstract module~mod_activationfunctions->module~mod_activationfunction_abstract module~mod_activationfunction_linear mod_activationfunction_linear module~mod_activationfunctions->module~mod_activationfunction_linear module~mod_activationfunction_relu mod_activationfunction_relu module~mod_activationfunctions->module~mod_activationfunction_relu module~mod_activationfunction_sigmoid mod_activationfunction_sigmoid module~mod_activationfunctions->module~mod_activationfunction_sigmoid module~mod_activationfunction_softplus mod_activationfunction_softplus module~mod_activationfunctions->module~mod_activationfunction_softplus module~mod_activationfunction_square mod_activationfunction_square module~mod_activationfunctions->module~mod_activationfunction_square module~mod_activationfunction_stanh mod_activationfunction_stanh module~mod_activationfunctions->module~mod_activationfunction_stanh module~mod_activationfunction_tanh mod_activationfunction_tanh module~mod_activationfunctions->module~mod_activationfunction_tanh module~mod_array_helpers->module~mod_precision module~mod_array_helpers->module~mod_throw module~mod_decorations->module~mod_io module~mod_decorations->module~mod_precision module~mod_decorations->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 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_constants mod_constants module~mod_periodic_table->module~mod_constants 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_random->module~mod_constants 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_activationfunction_linear->module~mod_precision module~mod_activationfunction_linear->module~mod_activationfunction_abstract module~mod_activationfunction_relu->module~mod_precision module~mod_activationfunction_relu->module~mod_activationfunction_abstract module~mod_activationfunction_sigmoid->module~mod_precision module~mod_activationfunction_sigmoid->module~mod_activationfunction_abstract module~mod_activationfunction_softplus->module~mod_precision module~mod_activationfunction_softplus->module~mod_activationfunction_abstract module~mod_activationfunction_square->module~mod_precision module~mod_activationfunction_square->module~mod_activationfunction_abstract module~mod_activationfunction_stanh->module~mod_precision module~mod_activationfunction_stanh->module~mod_activationfunction_abstract module~mod_activationfunction_tanh->module~mod_precision module~mod_activationfunction_tanh->module~mod_activationfunction_abstract module~mod_constants->module~mod_precision module~mod_constants->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_settings->module~mod_io module~mod_settings->module~mod_periodic_table 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_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_cpu_vendor->iso_c_binding 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_elemental_property_model~~UsedByGraph module~mod_elemental_property_model mod_elemental_property_model module~mod_initialize mod_initialize module~mod_initialize->module~mod_elemental_property_model module~mod_predict_mode mod_predict_mode module~mod_predict_mode->module~mod_initialize module~mod_write_outfiles mod_write_outfiles module~mod_predict_mode->module~mod_write_outfiles module~mod_runner_interface_bindings mod_runner_interface_bindings module~mod_runner_interface_bindings->module~mod_initialize module~mod_train_energy_multiple_structures mod_train_energy_multiple_structures module~mod_train_energy_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures mod_train_forces_multiple_structures 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 mod_train_loop_4g_charges module~mod_train_loop_4g_charges->module~mod_initialize module~mod_cost_calculator mod_cost_calculator module~mod_train_loop_4g_charges->module~mod_cost_calculator module~mod_output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges module~mod_train_loop_4g_charges->module~mod_output_files_and_cost_4g_charges module~mod_train_loop_atomic_property mod_train_loop_atomic_property module~mod_train_loop_atomic_property->module~mod_initialize module~mod_train_loop_atomic_property->module~mod_cost_calculator module~mod_output_files_and_cost mod_output_files_and_cost module~mod_train_loop_atomic_property->module~mod_output_files_and_cost module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_initialize 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_cost_calculator module~mod_train_loop_short_range->module~mod_output_files_and_cost module~mod_output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range 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_initialize 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_write_outfiles_training mod_write_outfiles_training module~mod_train_mode->module~mod_write_outfiles_training module~mod_write_outfiles->module~mod_initialize program~runner RuNNer program~runner->module~mod_initialize program~runner->module~mod_predict_mode program~runner->module~mod_train_mode module~mod_lammps_interface mod_lammps_interface module~mod_lammps_interface->module~mod_runner_interface_bindings module~mod_write_outfiles_training->module~mod_write_outfiles module~mod_cost_calculator->module~mod_write_outfiles_training module~mod_output_files_and_cost->module~mod_cost_calculator module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator module~mod_output_files_and_cost_4g_short_range->module~mod_cost_calculator

Module Variables

  • BATCHSIZE : integer (dim: (MAX_ELEM_NUM))
  • GENERIC_KEYWORDS_ELEMENTAL : character (dim: (*))

Derived Types Summary

Name Description
NonEnvironmentDependentElementalPropertyModel A general feed-forward neural network with an arbitrary number of input nodes, hidden layers,...

Procedures Summary

Name Type Description
constructor_elemental_property_model Function
get_num_parameters_elemental_property_model Function
initialize_elemental_property_model Subroutine
set_optimizer_elemental_property_model Subroutine Set the optimizer_idx on this NonEnvironmentDependentElementalPropertyModel. Must be called...
initialize_from_file_elemental_property_model Subroutine
reallocate_elemental_property_model Subroutine
reset_elemental_property_model Subroutine Reset the information stored from the previous forward and backward passes.
reset_prediction_elemental_property_model Subroutine Reset the internal arrays that store the gradient information from the previous forward pass....
print_elemental_property_model Subroutine Display information about the object and its members.
read_parameters_from_file_elemental_property_model Subroutine
write_parameters_to_file_elemental_property_model Subroutine
get_parameters_elemental_property_model Subroutine Get all property values for the given atomic numbers which are updated by the given optimizer in...
set_parameters_elemental_property_model Subroutine Set all property values for the given atomic numbers which are updated by the given optimizer...
get_gradients_wrt_parameters_elemental_property_model Subroutine Get all gradients d_loss/d_property values for the given atomic numbers which are updated by the...
forward_elemental_property_model Subroutine Calculate the output of the model.
forward_gradient_elemental_property_model Subroutine Calculate the output of the model for the given featuers. As the model is explicitely...
backward_elemental_property_model Subroutine Store the given d_loss/d_property gradient on the object.
backward_gradient_elemental_property_model Subroutine Store the given d_loss/d_property gradient on the object.
calc_jacobian_elemental_property_model Subroutine
precondition_parameters_elemental_property_model Subroutine
init_params_from_property_elemental_property_model Subroutine
get_opt_ids_and_targets_elemental_property_model Subroutine Returns the atomic numbers composing the model in the targets array. The opt_indices array...

Derived Types Details

type NonEnvironmentDependentElementalPropertyModel

A general feed-forward neural network with an arbitrary number of input nodes, hidden layers, and output nodes.

Components

Type-Bound Procedures

Name Attributes Binding
initialize_parent public ⇒ initialize_abstract_property_model
initialize_from_file_parent public ⇒ initialize_from_file_abstract_property_model
reset_results public ⇒ reset_results
get_num_forward_passes public ⇒ get_num_forward_passes_abstract_property_model
get_num_backward_passes public ⇒ get_num_backward_passes_abstract_property_model
reallocate public ⇒ reallocate_elemental_property_model
reset public ⇒ reset_elemental_property_model
reset_prediction public ⇒ reset_prediction_elemental_property_model
print public ⇒ print_elemental_property_model
get_num_parameters public ⇒ get_num_parameters_elemental_property_model
get_parameters public ⇒ get_parameters_elemental_property_model
set_parameters public ⇒ set_parameters_elemental_property_model
get_gradients_wrt_parameters public ⇒ get_gradients_wrt_parameters_elemental_property_model
get_opt_ids_and_targets public ⇒ get_opt_ids_and_targets_elemental_property_model
forward public ⇒ forward_elemental_property_model
forward_gradient public ⇒ forward_gradient_elemental_property_model
backward public ⇒ backward_elemental_property_model
backward_gradient public ⇒ backward_gradient_elemental_property_model
calc_jacobian public ⇒ calc_jacobian_elemental_property_model
read_parameters_from_file public ⇒ read_parameters_from_file_elemental_property_model
write_parameters_to_file public ⇒ write_parameters_to_file_elemental_property_model
initialize public ⇒ initialize_elemental_property_model
initialize_from_file public ⇒ initialize_from_file_elemental_property_model
precondition_parameters public ⇒ precondition_parameters_elemental_property_model
initialize_parameters public ⇒ init_params_from_property_elemental_property_model
set_optimizer public ⇒ set_optimizer_elemental_property_model

Inherits

type~~nonenvironmentdependentelementalpropertymodel~~InheritsGraph type~nonenvironmentdependentelementalpropertymodel NonEnvironmentDependentElementalPropertyModel type~abstractactivationfunction AbstractActivationFunction type~nonenvironmentdependentelementalpropertymodel->type~abstractactivationfunction activation type~abstractpropertymodel AbstractPropertyModel type~nonenvironmentdependentelementalpropertymodel->type~abstractpropertymodel

Interface Details

interface NonEnvironmentDependentElementalPropertyModel


Procedure Details

function constructor_elemental_property_model

function constructor_elemental_property_model( &
    name, &
    atomic_numbers, &
    keyword_suffix, &
    parameter_file_prefix, &
    comm_idx &
)

Arguments

  • name : character [in]
  • atomic_numbers : integer (dim: (:)) [in]
  • keyword_suffix : character [in]
  • parameter_file_prefix : character [in]
  • comm_idx : integer [in]

Called By

proc~~constructor_elemental_property_model~~CalledByGraph proc~constructor_elemental_property_model mod_elemental_property_model::constructor_elemental_property_model interface~nonenvironmentdependentelementalpropertymodel mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel interface~nonenvironmentdependentelementalpropertymodel->proc~constructor_elemental_property_model

function get_num_parameters_elemental_property_model

function get_num_parameters_elemental_property_model( &
    self, &
    luse_mask, &
    optimizer_idx, &
    atomic_numbers &
)

Arguments


subroutine initialize_elemental_property_model

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

Arguments

  • self : class(NonEnvironmentDependentElementalPropertyModel) [inout]
  • file_path : character [in]
  • initialization_method : character [in]
  • precondition_method : character [in]
  • parameter_min : real(DP) [in]
  • parameter_max : real(DP) [in]

subroutine set_optimizer_elemental_property_model

subroutine set_optimizer_elemental_property_model( &
    self, &
    lines, &
    num_parameters_per_optimizer &
)

Set the optimizer_idx on this NonEnvironmentDependentElementalPropertyModel. Must be called after initialization.

Arguments


subroutine initialize_from_file_elemental_property_model

subroutine initialize_from_file_elemental_property_model( &
    self, &
    file_path, &
    lines, &
    atomic_numbers, &
    num_input_features_per_element, &
    num_output_properties, &
    batchsize_per_element, &
    lsaturation_check &
)

Arguments

  • self : class(NonEnvironmentDependentElementalPropertyModel) [inout]
  • file_path : character [in]– Path to the directory where the parameters are stored.
  • lines : character (dim: (:)) [in]– Individual lines from input.nn
  • atomic_numbers : integer (dim: (:)) [in]– The atomic numbers for which the elemental models are constructed.
  • num_input_features_per_element : integer (dim: (:)) [in]
  • num_output_properties : integer [in]
  • batchsize_per_element : integer (dim: (:)) [in]
  • lsaturation_check : logical [in]

subroutine reallocate_elemental_property_model

subroutine reallocate_elemental_property_model( &
    self, &
    batchsize &
)

Arguments

Called By

proc~~reallocate_elemental_property_model~~CalledByGraph proc~reallocate_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%reallocate_elemental_property_model proc~constructor_elemental_property_model mod_elemental_property_model::constructor_elemental_property_model proc~constructor_elemental_property_model->proc~reallocate_elemental_property_model proc~initialize_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%initialize_elemental_property_model proc~initialize_elemental_property_model->proc~reallocate_elemental_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~reallocate_elemental_property_model interface~nonenvironmentdependentelementalpropertymodel mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel interface~nonenvironmentdependentelementalpropertymodel->proc~constructor_elemental_property_model

subroutine reset_elemental_property_model

subroutine reset_elemental_property_model( &
    self &
)

Reset the information stored from the previous forward and backward passes.

Arguments

Called By

proc~~reset_elemental_property_model~~CalledByGraph proc~reset_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%reset_elemental_property_model proc~reallocate_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%reallocate_elemental_property_model proc~reallocate_elemental_property_model->proc~reset_elemental_property_model proc~constructor_elemental_property_model mod_elemental_property_model::constructor_elemental_property_model proc~constructor_elemental_property_model->proc~reallocate_elemental_property_model proc~initialize_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%initialize_elemental_property_model proc~initialize_elemental_property_model->proc~reallocate_elemental_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~reallocate_elemental_property_model interface~nonenvironmentdependentelementalpropertymodel mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel interface~nonenvironmentdependentelementalpropertymodel->proc~constructor_elemental_property_model

subroutine reset_prediction_elemental_property_model

subroutine reset_prediction_elemental_property_model( &
    self &
)

Reset the internal arrays that store the gradient information from the previous forward pass. This should be called before every forward pass.

Arguments

Called By

proc~~reset_prediction_elemental_property_model~~CalledByGraph proc~reset_prediction_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%reset_prediction_elemental_property_model proc~reset_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%reset_elemental_property_model proc~reset_elemental_property_model->proc~reset_prediction_elemental_property_model proc~reallocate_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%reallocate_elemental_property_model proc~reallocate_elemental_property_model->proc~reset_elemental_property_model proc~constructor_elemental_property_model mod_elemental_property_model::constructor_elemental_property_model proc~constructor_elemental_property_model->proc~reallocate_elemental_property_model proc~initialize_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%initialize_elemental_property_model proc~initialize_elemental_property_model->proc~reallocate_elemental_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~reallocate_elemental_property_model interface~nonenvironmentdependentelementalpropertymodel mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel interface~nonenvironmentdependentelementalpropertymodel->proc~constructor_elemental_property_model

subroutine print_elemental_property_model

subroutine print_elemental_property_model( &
    self &
)

Display information about the object and its members.

Arguments


subroutine read_parameters_from_file_elemental_property_model

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

Arguments

Called By

proc~~read_parameters_from_file_elemental_property_model~~CalledByGraph proc~read_parameters_from_file_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%read_parameters_from_file_elemental_property_model proc~init_params_from_property_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%init_params_from_property_elemental_property_model proc~init_params_from_property_elemental_property_model->proc~read_parameters_from_file_elemental_property_model

subroutine write_parameters_to_file_elemental_property_model

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

Arguments


subroutine get_parameters_elemental_property_model

subroutine get_parameters_elemental_property_model( &
    self, &
    parameters, &
    luse_mask, &
    optimizer_idx &
)

Get all property values for the given atomic numbers which are updated by the given optimizer in a flat array.

Arguments

  • self : class(NonEnvironmentDependentElementalPropertyModel) [in]
  • parameters : real(DP) (dim: (:)) [inout]– Empty array to which free parameters will be cast.
  • luse_mask : logical [in]– Only retrieve those parameters for which `self%mask` is `.true.`.
  • optimizer_idx : integer [in]– Only retrieve parameters for those parts of the model which are updated by the optimizer with this index.

Called By

proc~~get_parameters_elemental_property_model~~CalledByGraph proc~get_parameters_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%get_parameters_elemental_property_model proc~write_parameters_to_file_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%write_parameters_to_file_elemental_property_model proc~write_parameters_to_file_elemental_property_model->proc~get_parameters_elemental_property_model

subroutine set_parameters_elemental_property_model

subroutine set_parameters_elemental_property_model( &
    self, &
    parameters, &
    luse_mask, &
    optimizer_idx &
)

Set all property values for the given atomic numbers which are updated by the given optimizer from a flat array.

Arguments

  • self : class(NonEnvironmentDependentElementalPropertyModel) [inout]
  • parameters : real(DP) (dim: (:)) [in]– Flat array of the parameters which will be set.
  • luse_mask : logical [in]– Only set the parameters for which `self%mask` is `.true.`.
  • optimizer_idx : integer [in]– Only set parameters for those parts of the model which are updated by the optimizer with this index.

Called By

proc~~set_parameters_elemental_property_model~~CalledByGraph proc~set_parameters_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%set_parameters_elemental_property_model proc~read_parameters_from_file_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%read_parameters_from_file_elemental_property_model proc~read_parameters_from_file_elemental_property_model->proc~set_parameters_elemental_property_model proc~init_params_from_property_elemental_property_model mod_elemental_property_model::NonEnvironmentDependentElementalPropertyModel%init_params_from_property_elemental_property_model proc~init_params_from_property_elemental_property_model->proc~read_parameters_from_file_elemental_property_model

subroutine get_gradients_wrt_parameters_elemental_property_model

subroutine get_gradients_wrt_parameters_elemental_property_model( &
    self, &
    gradients, &
    luse_mask, &
    optimizer_idx &
)

Get all gradients d_loss/d_property values for the given atomic numbers which are updated by the given optimizer in a flat array.

Arguments

  • self : class(NonEnvironmentDependentElementalPropertyModel) [inout]
  • gradients : real(DP) (dim: (:)) [inout]– Flat array of the parameters which will be set.
  • luse_mask : logical [in]– Only set the parameters for which `self%mask` is `.true.`.
  • optimizer_idx : integer [in]– Only set parameters for those parts of the model which are updated by the optimizer with this index.

subroutine forward_elemental_property_model

subroutine forward_elemental_property_model( &
    self, &
    features, &
    atomic_numbers, &
    num_features &
)

Calculate the output of the model.

Arguments

  • self : class(NonEnvironmentDependentElementalPropertyModel) [inout]
  • features : real(DP) (dim: (:,:)) [in]– Dimension (max_num_features x batchsize)
  • atomic_numbers : integer (dim: (:)) [in]– The atomic number for each entry in the batch.
  • num_features : integer (dim: (MAX_ELEM_NUM)) [in]– The number of features for each entry in the batch.

subroutine forward_gradient_elemental_property_model

subroutine forward_gradient_elemental_property_model( &
    self, &
    features, &
    feature_gradients, &
    atomic_numbers, &
    num_features &
)

Calculate the output of the model for the given featuers.

As the model is explicitely environment-independent it does not implement a forward pass.

Arguments

  • self : class(NonEnvironmentDependentElementalPropertyModel) [inout]
  • features : real(DP) (dim: (:,:)) [in]
  • feature_gradients : real(DP) (dim: (:,:)) [in]
  • atomic_numbers : integer (dim: (:)) [in]– The atomic number for each entry in the batch.
  • num_features : integer (dim: (MAX_ELEM_NUM)) [in]– The number of features for each entry in the batch.

subroutine backward_elemental_property_model

subroutine backward_elemental_property_model( &
    self, &
    atomic_numbers, &
    loss_gradients &
)

Store the given d_loss/d_property gradient on the object.

Arguments


subroutine backward_gradient_elemental_property_model

subroutine backward_gradient_elemental_property_model( &
    self, &
    atomic_numbers, &
    loss_gradients &
)

Store the given d_loss/d_property gradient on the object.

Arguments


subroutine calc_jacobian_elemental_property_model

subroutine calc_jacobian_elemental_property_model( &
    self, &
    atomic_numbers &
)

Arguments


subroutine precondition_parameters_elemental_property_model

subroutine precondition_parameters_elemental_property_model( &
    self, &
    target_mean, &
    prediction_mean, &
    target_std, &
    prediction_std &
)

Arguments

  • self : class(NonEnvironmentDependentElementalPropertyModel) [inout]
  • target_mean : real(DP) (dim: (:)) [in]
  • prediction_mean : real(DP) (dim: (:)) [in]
  • target_std : real(DP) (dim: (:)) [in]
  • prediction_std : real(DP) (dim: (:)) [in]

subroutine init_params_from_property_elemental_property_model

subroutine init_params_from_property_elemental_property_model( &
    self, &
    target_mean, &
    target_range, &
    target_std, &
    eckhoff_avg_atomic_energy, &
    rng &
)

Arguments


subroutine get_opt_ids_and_targets_elemental_property_model

subroutine get_opt_ids_and_targets_elemental_property_model( &
    self, &
    opt_ids, &
    targets &
)

Returns the atomic numbers composing the model in the targets array. The opt_indices array which is also returned contains -1, as no optimizers are attached to this model.

Arguments