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.
A collection of StorageContainers to store per-structure and per-atom data.
This is the highest level data storage object in the code and usually
what is used in the workflows. It is designed to store information about
the structures and atoms in a whole dataset.
The hierarchy looks like this:
- DatasetStorage
- structure | StorageContainer
- int | PropertyListInt
- props(:) | FlatDataInt
- data(:, :) | integer
- real | PropertyListReal
- props(:) | FlatDataReal
- data(:, :) | real(DP)
The storage of the data itself is handled by the attached
StorageContainer objects. Please look at those types for further
documentation.
This object mostly implements wrapper routines that delegate tasks to the
storage containers (initialize, collect, add, rewind).
One routine that is distinct to this class is sort. This sorts all
structures and atoms based on their stored global IDs. Only the
DatasetStorage has access to the integer IDs and the real-valued properties
that will be sorted, so this routine can only be implemented at this level.
Components
label :
character– Name of this object.
structure :
type(StorageContainer)– Container for storing per-structure data.
atom :
type(StorageContainer)– Container for storing per-atom data.
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.
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.
This routine mostly delegates to the initialize calls of the
PropertyList objects of the StorageContainers. Please look there for
more detailed information.
structure_storage_size_root :
integer [in]– The number of per-structure entries that need to be stored across
all MPI processes. On the MPI process with rank 0, the `data` arrays
will be made large enough to accomodate all of these values.
structure_storage_size :
integer [in]– The maximum number of per-structure entries that need to be stored on
all MPI process with rank > 0.
atom_storage_size_root :
integer [in]– The number of per-atom entries that need to be stored across
all MPI processes. On the MPI process with rank 0, the `data` arrays
will be made large enough to accomodate all of these values.
atom_storage_size :
integer [in]– The maximum number of per-atom entries that need to be stored on
all MPI process with rank > 0.
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.
This routine only delegates to the prepare_initialization calls of the
PropertyList objects of the StorageContainers. Please look there for
more detailed information.
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.
Retrieve the data from all MPI processes to the process with rank 0.
This routine only delegates to the collect calls of the
PropertyList objects of the StorageContainers. Please look there for
more detailed information.
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.
sort_ids_structure :
integer (dim: (:)) [in]– If present, this will be used as the sorting index for the structures.
sort_ids_atom :
integer (dim: (:)) [in]– If present, this will be used as the sorting index for the atoms.
unsort_ids_structure :
integer (dim: (:)) [out]– If present, this will be filled with the "inverse" permutation, i.e.
the index that restores the sorted array to its original state.
This array contains the unsorting index for the structure indices.
unsort_ids_atom :
integer (dim: (:)) [out]– If present, this will be filled with the "inverse" permutation, i.e.
the index that restores the sorted array to its original state.
This array contains the unsorting index for the atom indices.
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.