Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Type to hold the global features (and their derivatives) of a structure.
This is meant to hold features that depend on each atom in the structure.
examples are the charge neuron in a 4G-HDNNP or the local electrostatic
potential of a ee4G-HDNNP (which still depend via the charge on all atoms
in the structure). Note that this type does not provide an evaluate
routine since the way a global feature is calculated might very a lot
between different models. This type should hence only be used as container
which can scale, read and write the global features computed by a
child class or a subroutine which fills it.
Components
feat_name :
character– Name of the global feature map that is handled by this
`GlobalFeatureCalculator`.
read_feature :
logical– Flag to indicate whether the global features should be read from
disk instead of being computed. Handled by the `evaluate` routine.
read_feature_derivative :
logical– Flag to indicate whether the global feature derivatives should be read
from disk instead of being computed. Handled by the `evaluate` routine.
computed_feature :
logical– Flag to indicate whether the global features have been computed/read
from disk. This is set to `.true.` after the `evaluate` routine has
been called and the global features have been computed or read from
disk.
computed_feature_derivative :
logical– Flag to indicate whether the global feature derivatives have been
computed/read from disk. This is set to `.true.` after the `evaluate`
routine has been called and the global feature derivatives have been
computed or read from disk.
atomic_numbers_set :
logical– Flag to indicate whether the atomic numbers have been set.
use_old_scaling :
logical– Flag to indicate whether the old scaling method should be used.
desc :
type(GlobalAtomicDescriptor) (dim: (:))– Type which stores the global/extra features and their derivatives
for each structure.
Dimensions(num_global_feature_maps, num_structures).
num_features :
integer– The number of global features per atom that at are stored/computed/read
by this type.
statistics :
type(GlobalFeatureStatistics)– Type holding the scaling_factor and centering_subtrahend. It also
provides the necessary routines to compute, store, readn and write
the statistics.
num_structures :
integer
file_path :
character– Path under which the features, feature derivatives, and statistics
file will be written/read.
filename_feature :
character– Name of the file containing feature values. Also see file_path.
filename_feature_derivative :
character– Name of the file containing feature derivative values. Also see
file_path.
filename_statistics :
character– Name of the file containing feature scaling information. Also see
file_path.
Nodes of different colours represent the following:
Solid arrows point from a derived type to the parent type which it
extends. Dashed arrows point from a derived type to the other
types it contains as a components, with a label listing the name(s) of
said component(s).
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a derived type to the parent type which it
extends. Dashed arrows point from a derived type to the other
types it contains as a components, with a label listing the name(s) of
said component(s).
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
ptr :
class(GlobalFeatureCalculator) (dim: (:))– Pointer to a committee of `GlobalFeatureCalculator`s. This is used to
pass polymorphic calculators around without copying them.
Nodes of different colours represent the following:
Solid arrows point from a derived type to the parent type which it
extends. Dashed arrows point from a derived type to the other
types it contains as a components, with a label listing the name(s) of
said component(s).
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
num_structures :
integer [in]– The number of structures for which the global features should be
stored. Normally the number of structures on one process across
chunks.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Free all memory on this object and the underlying TrainingChargeEquilibrator.
This sets the calculator back into the original state before any call
to evaluate. The routine should be called if memory is insufficient
to store q or feature_derivative.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
max_arrays :
integer [in]– Number of arrays that the data container should store in total not necessary
the number of arrays that will be written here.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
max_arrays :
integer [in]– Number of arrays that the data container should store in total not necessary
the number of arrays that will be written here.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
subroutinefree_feature_derivatives( & self, & force & )
Free the feature derivatives of all structures.
This is used to free the memory of the feature derivatives. If the
force argument is not present or .false., the routine only frees
the feature derivatives if they have not been precomputed.
TODO: only free for calcualted structures (similiar to commented loop below)
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Prepare the evaluation of the global features and their derivatives
This routine can be called before the evaluate routine (implemented
by a child class) to determine whether the features and their
derivatives need to be computed or if they can be read from
disk. It also allocates the necessary arrays in the desc array.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.