STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::structure::SynthesisCacheMap Class Reference

Encode a map between the systems of a snythesis and those of a SystemCache. The synthesis is expected to replicate the systems present in the cache, perhaps in a different order, perhaps to varying degrees for each system. More...

#include <synthesis_cache_map.h>

Public Member Functions

int getCacheSystemCount () const
 Get the number of systems in the associated cache.
 
int getSynthesisSystemCount () const
 Get the number of systems in the associated synthesis.
 
int getCacheLabelCount () const
 Get the number of labels in the associated cache.
 
int getCacheTopologyCount () const
 Get the number of unique topologies in the associated cache.
 
int getSynthesisTopologyCount () const
 Get the number of (unique) topologies in the associated synthesis. This will check the coordinate synthesis pointer, then the topology synthesis pointer, and return the number of unique topologies based on the first valid pointer it encounters.
 
std::vector< int > getSourceGroup (int query_index) const
 Get a list of all system indices in the synthesis derived from a particular -sys keyword entry (a single system within the cache).
 
std::vector< int > getLabelGroup (const std::string &query_label) const
 Get a list of all system indices in the synthesis derived from systems in the cache matching a particular label.
 
int getSystemCacheIndex (int synthesis_index) const
 Get the system cache index of a system from the synthesis.
 
int getTopologyCacheIndex (int synthesis_index) const
 Get the index of a topology in the cache guiding a system in the synthesis. This might not be the same as the unique topology index for the system referenced in the synthesis itself, if the synthesis uses a subset of the cache's topologies.
 
int getLabelCacheIndex (int synthesis_index) const
 Get the system label index of a system from the synthesis.
 
int getPartitionCount (SystemGrouping organization) const
 Get the number of partitions that the synthesis should be divided into under any of the methods for grouping systems.
 
const SystemCachegetCachePointer () const
 Get a const pointer to the system cache referenced by this map.
 
const AtomGraphSynthesisgetTopologySynthesisPointer () const
 Get a const pointer to the coordinate synthesis referenced by this map.
 
const PhaseSpaceSynthesisgetCoordinateSynthesisPointer () const
 Get a const pointer to the coordinate synthesis referenced by this map.
 
const SynthesisCacheMapgetSelfPointer () const
 Get a const pointer to the object itself (useful when the object has been passed by const reference).
 
const SynthesisMapReader data (HybridTargetLevel tier=HybridTargetLevel::HOST) const
 Get an abstract of this map.
 
 SynthesisCacheMap ()
 The constructor can work with a coordinate or topology synthesis, but in either case requires a pairwise map between the synthesis and the cache. If a synthesis is provided, it will be used to check the correspondence.
 
 SynthesisCacheMap (const std::vector< int > &cache_origins_in, const SystemCache *sc_in, const AtomGraphSynthesis *poly_ag_in=nullptr, const PhaseSpaceSynthesis *poly_ps_in=nullptr)
 
 SynthesisCacheMap (const std::vector< int > &cache_origins_in, const SystemCache &sc_in, const AtomGraphSynthesis &poly_ag_in, const PhaseSpaceSynthesis &poly_ps_in)
 
 SynthesisCacheMap (const std::vector< int > &cache_origins_in, const SystemCache &sc_in, const AtomGraphSynthesis &poly_ag_in)
 
 SynthesisCacheMap (const std::vector< int > &cache_origins_in, const SystemCache &sc_in, const PhaseSpaceSynthesis &poly_ps_in)
 
 SynthesisCacheMap (const SynthesisCacheMap &original)
 The copy and move constructors, as well as assignment operators, must be explicitly defined to handle repair of POINTER-kind Hybrid objects.
 
 SynthesisCacheMap (SynthesisCacheMap &&original)
 
SynthesisCacheMapoperator= (const SynthesisCacheMap &original)
 
SynthesisCacheMapoperator= (SynthesisCacheMap &&original)
 
std::vector< int > getTopologyGroup (const AtomGraph *query_ag) const
 Get a list of all system indices in the synthesis derived from systems in the cache matching a particular topology.
 
std::vector< int > getTopologyGroup (const AtomGraph &query_ag) const
 
int getTotalProjection (int query_index, SystemGrouping organization) const
 Get the number of systems in the synthesis associated with a particular system, label, or topology in the cache. If the index is invalid, this function will return zero.
 
int getTotalProjection (const AtomGraph *query_ag) const
 
int getTotalProjection (const AtomGraph &query_ag) const
 
int getTotalProjection (const std::string &query_label) const
 
void setCache (const std::vector< int > &cache_origins_in, const SystemCache *sc_in)
 Set the systems cache along with a list of correspondences.
 
void setCache (const std::vector< int > &cache_origins_in, const SystemCache &sc_in)
 
void setSynthesis (const AtomGraphSynthesis *poly_ag_in)
 Set the PhaseSpaceSynthesis or AtomGraphSynthesis pointers. This will be useful if the map is used to retrieve lists of conformations or coordinate sets from the synthesis.
 
void setSynthesis (const AtomGraphSynthesis &poly_ag_in)
 
void setSynthesis (const PhaseSpaceSynthesis *poly_ps_in)
 
void setSynthesis (const PhaseSpaceSynthesis &poly_ps_in)
 

Detailed Description

Encode a map between the systems of a snythesis and those of a SystemCache. The synthesis is expected to replicate the systems present in the cache, perhaps in a different order, perhaps to varying degrees for each system.

Constructor & Destructor Documentation

◆ SynthesisCacheMap()

stormm::synthesis::SynthesisCacheMap::SynthesisCacheMap ( const SynthesisCacheMap & original)

The copy and move constructors, as well as assignment operators, must be explicitly defined to handle repair of POINTER-kind Hybrid objects.

Parameters
originalThe object to copy or move
otherAnother object to copy or move into the present one

Member Function Documentation

◆ getLabelCacheIndex()

int stormm::synthesis::SynthesisCacheMap::getLabelCacheIndex ( int synthesis_index) const

Get the system label index of a system from the synthesis.

Parameters
synthesis_indexIndex of the system of interest within the synthesis

◆ getLabelGroup()

std::vector< int > stormm::synthesis::SynthesisCacheMap::getLabelGroup ( const std::string & query_label) const

Get a list of all system indices in the synthesis derived from systems in the cache matching a particular label.

Parameters
query_labelThe label of interest

◆ getPartitionCount()

int stormm::synthesis::SynthesisCacheMap::getPartitionCount ( SystemGrouping organization) const

Get the number of partitions that the synthesis should be divided into under any of the methods for grouping systems.

Parameters
organizationThe chosen method of grouping systems

◆ getSourceGroup()

std::vector< int > stormm::synthesis::SynthesisCacheMap::getSourceGroup ( int query_index) const

Get a list of all system indices in the synthesis derived from a particular -sys keyword entry (a single system within the cache).

Parameters
query_indexThe index of the system of interest within the systems cache

◆ getSystemCacheIndex()

int stormm::synthesis::SynthesisCacheMap::getSystemCacheIndex ( int synthesis_index) const

Get the system cache index of a system from the synthesis.

Parameters
synthesis_indexIndex of the system of interest within the synthesis

◆ getTopologyCacheIndex()

int stormm::synthesis::SynthesisCacheMap::getTopologyCacheIndex ( int synthesis_index) const

Get the index of a topology in the cache guiding a system in the synthesis. This might not be the same as the unique topology index for the system referenced in the synthesis itself, if the synthesis uses a subset of the cache's topologies.

Parameters
synthesis_indexIndex of the system of interest within the synthesis

◆ getTopologyGroup()

std::vector< int > stormm::synthesis::SynthesisCacheMap::getTopologyGroup ( const AtomGraph * query_ag) const

Get a list of all system indices in the synthesis derived from systems in the cache matching a particular topology.

Overloaded:

  • Provide the topology by const pointer
  • Provide the topology by const reference
Parameters
query_agThe topology of interest

◆ getTotalProjection()

int stormm::synthesis::SynthesisCacheMap::getTotalProjection ( int query_index,
SystemGrouping organization ) const

Get the number of systems in the synthesis associated with a particular system, label, or topology in the cache. If the index is invalid, this function will return zero.

Overloaded:

  • Indicate the system, label, or topology by its index in the cache. The following enumerator will determine how the index is interpreted.
  • Indicate the topology by pointer or reference
  • Provide the label string
Parameters
query_indexIndex of the system, topology, or label within the cache
topology_indexIndex of the topology within the cache
label_indexIndex of the label within the cache
query_labelLabel string to seek out within the cache
query_agTopology pointer to seek out within the cache
oganizationThe manner in which systems are to be grouped (the setting of this enumeration will determine the interpretation of preceding integer indices and only certain settings will be compatible with preceding label strings or topology pointers)

◆ setCache()

void stormm::synthesis::SynthesisCacheMap::setCache ( const std::vector< int > & cache_origins_in,
const SystemCache * sc_in )

Set the systems cache along with a list of correspondences.

Overloaded:

  • Provide a pointer to the cache
  • Provide a reference to the cache
Parameters
cache_origins_inSystem origins in the cache for each system in some synthesis
sc_inThe cache to reference

◆ setSynthesis()

void stormm::synthesis::SynthesisCacheMap::setSynthesis ( const AtomGraphSynthesis * poly_ag_in)

Set the PhaseSpaceSynthesis or AtomGraphSynthesis pointers. This will be useful if the map is used to retrieve lists of conformations or coordinate sets from the synthesis.

Overloaded:

  • Provide the synthesis by const pointer
  • Provide the synthesis by const reference
Parameters
poly_ag_inThe topology synthesis of interest
poly_ps_inThe coordinate synthesis of interest

The documentation for this class was generated from the following files: