Skip to content

mod_inputnn

Lines: 68 | Visibility: private

Read the user settings in the input.nn file format into the Settings type. author: Knut Nikolas Lausch, Emir Kocer, Moritz R. Schaefer, Alexander Knoll

Dependencies

Uses

module~~mod_inputnn~~UsesGraph module~mod_inputnn mod_inputnn module~mod_abstract_broadcast_file mod_abstract_broadcast_file module~mod_inputnn->module~mod_abstract_broadcast_file module~mod_io mod_io module~mod_inputnn->module~mod_io module~mod_mpi mod_mpi module~mod_inputnn->module~mod_mpi module~mod_throw mod_throw module~mod_inputnn->module~mod_throw module~mod_abstract_broadcast_file->module~mod_io module~mod_abstract_broadcast_file->module~mod_mpi module~mod_abstract_broadcast_file->module~mod_throw 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 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_precision mod_precision module~mod_io->module~mod_precision module~mod_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 module~mod_throw->module~mod_io module~mod_throw->module~mod_mpi iso_c_binding iso_c_binding module~mod_throw->iso_c_binding module~mod_throw->iso_fortran_env module~mod_throw->module~mod_precision module~mod_sort mod_sort module~mod_throw->module~mod_sort module~mod_genericfile->module~mod_io module~mod_genericfile->module~mod_mpi module~mod_genericfile->module~mod_throw module~mod_precision->iso_c_binding module~mod_precision->iso_fortran_env module~mod_sanitize->module~mod_throw module~mod_sort->module~mod_precision

Used By

module~~mod_inputnn~~UsedByGraph module~mod_inputnn mod_inputnn module~mod_ee4g_feature_calculator mod_ee4g_feature_calculator module~mod_ee4g_feature_calculator->module~mod_inputnn module~mod_initialize mod_initialize module~mod_initialize->module~mod_inputnn module~mod_initialize->module~mod_ee4g_feature_calculator module~mod_qeq_feature_calculator mod_qeq_feature_calculator module~mod_initialize->module~mod_qeq_feature_calculator module~mod_qeq_feature_calculator->module~mod_inputnn module~mod_runner_interface_bindings mod_runner_interface_bindings module~mod_runner_interface_bindings->module~mod_inputnn module~mod_runner_interface_bindings->module~mod_initialize module~mod_runner_interface_bindings->module~mod_qeq_feature_calculator module~mod_evaluate_4g_single_structure mod_evaluate_4g_single_structure module~mod_runner_interface_bindings->module~mod_evaluate_4g_single_structure module~mod_runner_interface mod_runner_interface module~mod_runner_interface_bindings->module~mod_runner_interface module~smod_initialize_from_file smod_initialize_from_file module~smod_initialize_from_file->module~mod_inputnn module~mod_evaluate_4g_single_structure->module~mod_ee4g_feature_calculator module~mod_feature_map_scaling_all_chunks mod_feature_map_scaling_all_chunks module~mod_feature_map_scaling_all_chunks->module~mod_ee4g_feature_calculator module~mod_feature_map_scaling_all_chunks->module~mod_qeq_feature_calculator module~mod_lammps_interface mod_lammps_interface module~mod_lammps_interface->module~mod_runner_interface_bindings module~mod_lammps_interface->module~mod_runner_interface module~mod_output_files_and_cost mod_output_files_and_cost 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_cost_calculator mod_cost_calculator 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_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_predict_ee4g_feature_calculator_multiple_structures mod_predict_ee4g_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks->module~mod_predict_ee4g_feature_calculator_multiple_structures module~mod_predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures module~mod_precompute_global_features_all_chunks->module~mod_predict_qeq_feature_calculator_multiple_structures 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_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_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_initialize module~mod_predict_mode->module~mod_qeq_feature_calculator 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_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_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->module~mod_ee4g_feature_calculator 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_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_output_files_and_cost module~mod_train_loop_atomic_property->module~mod_cost_calculator module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_ee4g_feature_calculator module~mod_train_loop_short_range->module~mod_initialize module~mod_train_loop_short_range->module~mod_qeq_feature_calculator module~mod_train_loop_short_range->module~mod_output_files_and_cost 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_loop_short_range->module~mod_train_energy_multiple_structures module~mod_train_loop_short_range->module~mod_train_forces_multiple_structures 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_loop_short_range->module~mod_cost_calculator module~mod_train_mode mod_train_mode module~mod_train_mode->module~mod_ee4g_feature_calculator module~mod_train_mode->module~mod_initialize module~mod_train_mode->module~mod_qeq_feature_calculator module~mod_train_mode->module~mod_feature_map_scaling_all_chunks 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_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_predict_all_chunks mod_predict_all_chunks module~mod_train_mode->module~mod_predict_all_chunks 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_ee4g_feature_calculator program~runner->module~mod_initialize program~runner->module~mod_qeq_feature_calculator program~runner->module~mod_precompute_global_features_all_chunks program~runner->module~mod_predict_mode program~runner->module~mod_train_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_output_files_and_cost_4g_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_cost_calculator module~mod_predict_all_chunks->module~mod_predict_multiple_structures module~mod_write_outfiles_training->module~mod_write_outfiles module~mod_cost_calculator->module~mod_write_outfiles_training module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator

Derived Types Summary

Name Description
InputNN

Procedures Summary

Name Type Description
constructor Function Sores the whole content of input.nn in self%contents and fills element_lits In contrast to...
keyword_in_file Function Check if a keyword is present in a file. This function loops over all lines. If you need to...
count_keyword Function Count the number of occurences of a given keyword in lines. We only parse the first word on...
get_line_with_keyord Function Get the last line in the file that contains a keyword. This function loops over all lines. If...

Derived Types Details

type InputNN

Components

  • name : character– The name of the file. – Inherited from GenericFile
  • path : character– The relative or absolute path to the file. – Inherited from GenericFile
  • iomsg : character– Inherited from GenericFile
  • fileunit : integer– Fortran file unit ID. -1 is the (invalid) default and has to be changed to an actual fileunit, preferably using new_unit in the intrinsic open() routine. – Inherited from GenericFile
  • ios : integer– I/O status. 0 is the default and indicates that no error has occurred. Any other value indicates an error. – Inherited from GenericFile
  • num_lines : integer– Inherited from AbstractBroadcastFile
  • content : character (dim: (:))– Inherited from AbstractBroadcastFile

Type-Bound Procedures

Name Attributes Binding
open public ⇒ open_abstract_file
close public ⇒ close_abstract_file
check_ios public ⇒ check_ios
init public ⇒ init_parent
read_and_broadcast public ⇒ read_and_broadcast
discard_content public ⇒ discard_content_abstract_broadcast_file

Inherits

type~~inputnn~~InheritsGraph type~inputnn InputNN type~abstractbroadcastfile AbstractBroadcastFile type~inputnn->type~abstractbroadcastfile type~genericfile GenericFile type~abstractbroadcastfile->type~genericfile

Interface Details

interface InputNN


Procedure Details

function constructor

function constructor( &
    filename, &
    path &
)

Sores the whole content of input.nn in self%contents and fills element_lits

In contrast to other files input.nn is quite small but difficult to parse if you want to use mpi. We hence only read it once and broadcast it's content so that each thread can do its own parsing.

Arguments

  • filename : character [in]– The name of the file.
  • path : character [in]– The relative path to the file on disk.

Called By

proc~~constructor~5~~CalledByGraph proc~constructor~5 mod_inputnn::constructor interface~inputnn mod_inputnn::InputNN interface~inputnn->proc~constructor~5

function keyword_in_file

function keyword_in_file( &
    lines, &
    keyword &
)

Check if a keyword is present in a file.

This function loops over all lines. If you need to read many keywords from file, it is probably more efficient to check each line agains all keywords at once.

Arguments

  • lines : character (dim: (:)) [in]
  • keyword : character [in]

Called By

proc~~keyword_in_file~~CalledByGraph proc~keyword_in_file mod_inputnn::keyword_in_file proc~constructor_from_file mod_ee4g_feature_calculator::constructor_from_file proc~constructor_from_file->proc~keyword_in_file proc~constructor_from_file~2 mod_qeq_feature_calculator::constructor_from_file proc~constructor_from_file~2->proc~keyword_in_file interface~ee4gfeaturecalculator mod_ee4g_feature_calculator::EE4GFeatureCalculator interface~ee4gfeaturecalculator->proc~constructor_from_file interface~qeqfeaturecalculator mod_qeq_feature_calculator::QEqFeatureCalculator interface~qeqfeaturecalculator->proc~constructor_from_file~2

function count_keyword

function count_keyword( &
    lines, &
    keyword &
)

Count the number of occurences of a given keyword in lines.

We only parse the first word on each line and check whether they match the given keyword. Therefore, we only count a single occurences per line.

Arguments

  • lines : character (dim: (:)) [in]
  • keyword : character [in]

Called By

proc~~count_keyword~~CalledByGraph proc~count_keyword mod_inputnn::count_keyword proc~initialize_from_file smod_initialize_from_file::initialize_from_file proc~initialize_from_file->proc~count_keyword

function get_line_with_keyord

function get_line_with_keyord( &
    lines, &
    keyword &
)

Get the last line in the file that contains a keyword.

This function loops over all lines. If you need to read many keywords from file, it is probably more efficient to check each line against all keywords at once.

Arguments

  • lines : character (dim: (:)) [in]
  • keyword : character [in]

Called By

proc~~get_line_with_keyord~~CalledByGraph proc~get_line_with_keyord mod_inputnn::get_line_with_keyord proc~constructor_from_file mod_ee4g_feature_calculator::constructor_from_file proc~constructor_from_file->proc~get_line_with_keyord interface~ee4gfeaturecalculator mod_ee4g_feature_calculator::EE4GFeatureCalculator interface~ee4gfeaturecalculator->proc~constructor_from_file