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

Collect instructions for one or more systems (intend to work with any coordinate object, including the PhaseSpaceSynthesis) More...

#include <rmsd_plan.h>

Public Member Functions

int getPlanCount () const
 Get the number of plans kept within this object.
 
int getPlanIndex (int index, SystemGrouping organization) const
 Get the plan index applicable to a specific grouping of systems (this assumes that all systems in the group have a valid interpretation by a single plan, and if that is not the case the result will be undefined).
 
RMSDMethod getGeneralStrategy () const
 Get the general, prescribed strategy for computing RMSDs.
 
double getRequiredMassFraction () const
 Get the mass fraction required to test symmetry-related atom arrangements without specific alignments.
 
const AtomGraphgetTopologyPointer (int plan_index) const
 Get one of the topology pointers used by the RMSD plan.
 
RMSDAlignmentProtocol getAlignmentProtocol (int plan_index) const
 Get one of the alignment protocols.
 
const RMSDPlanReader< double > dpData (HybridTargetLevel tier=HybridTargetLevel::HOST) const
 Get the read-only abstract of the system in double precision. The masses of particles are the only templated type.
 
const RMSDPlanReader< float > spData (HybridTargetLevel tier=HybridTargetLevel::HOST) const
 Get the read-only abstract of the system in single precision. The masses of particles are the only templated type.
 
const PhaseSpaceSynthesisgetCoordinateSynthesisPointer () const
 Get the coordinate synthesis pointer.
 
const SystemCachegetCachePointer () const
 Get the system cache pointer.
 
const SynthesisCacheMapgetSynthesisMapPointer () const
 Get a pointer to the map between the cache and the coordinate synthesis.
 
 RMSDPlan (RMSDMethod strategy_in=RMSDMethod::ALIGN_MASS, double rmf_in=default_required_mass_fraction, const PhaseSpaceSynthesis *poly_ps_in=nullptr, const SystemCache *sc_in=nullptr, const SynthesisCacheMap *scmap_in=nullptr)
 The constructor can take any number of AtomEquivalence objects and build plans from them. Topology pointers will be harvested from these objects and, if necessary, matched to topologies in a synthesis object in order to connect each system to the appropriate instruction set.
 
 RMSDPlan (const AtomGraph &ag_in, const CoordinateFrame &cf_in, RMSDMethod strategy_in=RMSDMethod::ALIGN_MASS, double rmf_in=default_required_mass_fraction, const GpuDetails &gpu=null_gpu, int low_mol_idx=0, int high_mol_idx=-1)
 
 RMSDPlan (const AtomEquivalence &eq_in, RMSDMethod strategy_in=RMSDMethod::ALIGN_MASS, double rmf_in=default_required_mass_fraction, const GpuDetails &gpu=null_gpu)
 
 RMSDPlan (const PhaseSpaceSynthesis *poly_ps_in, RMSDMethod strategy_in=RMSDMethod::ALIGN_MASS, double rmf_in=default_required_mass_fraction, const GpuDetails &gpu=null_gpu, int low_mol_idx=0, int high_mol_idx=-1)
 
 RMSDPlan (const PhaseSpaceSynthesis *poly_ps_in, const std::vector< AtomEquivalence > &eq_list_in, RMSDMethod strategy_in=RMSDMethod::ALIGN_MASS, double rmf_in=default_required_mass_fraction, const GpuDetails &gpu=null_gpu)
 
 RMSDPlan (const PhaseSpaceSynthesis &poly_ps_in, RMSDMethod strategy_in=RMSDMethod::ALIGN_MASS, double rmf_in=default_required_mass_fraction, const GpuDetails &gpu=null_gpu, int low_mol_idx=0, int high_mol_idx=-1)
 
 RMSDPlan (const PhaseSpaceSynthesis &poly_ps_in, const std::vector< AtomEquivalence > &eq_list_in, RMSDMethod strategy_in=RMSDMethod::ALIGN_MASS, double rmf_in=default_required_mass_fraction, const GpuDetails &gpu=null_gpu)
 
 RMSDPlan (const PhaseSpaceSynthesis *poly_ps_in, const SystemCache *sc_in, const SynthesisCacheMap *scmap_in, const RMSDMethod strategy_in=RMSDMethod::ALIGN_MASS, const double rmf_in=default_required_mass_fraction, const GpuDetails &gpu=null_gpu, const int low_mol_idx=0, const int high_mol_idx=-1)
 
 RMSDPlan (const PhaseSpaceSynthesis &poly_ps_in, const SystemCache &sc_in, const SynthesisCacheMap &scmap_in, const RMSDMethod strategy_in=RMSDMethod::ALIGN_MASS, const double rmf_in=default_required_mass_fraction, const GpuDetails &gpu=null_gpu, const int low_mol_idx=0, const int high_mol_idx=-1)
 
 RMSDPlan (const RMSDPlan &original)=default
 With no POINTER-kind Hybrid or pointers to its own member variables to repair, and no const members, the RMSDPlan can make use of default copy and move constructors as well as copy and move assignment operators.
 
 RMSDPlan (RMSDPlan &&original)=default
 
RMSDPlanoperator= (const RMSDPlan &original)=default
 
RMSDPlanoperator= (RMSDPlan &&original)=default
 
void addSystemCache (const SystemCache *sc, const SynthesisCacheMap *scmap)
 Attach a SystemCache and map between the cache and the synthesis to the object.
 
void addSystemCache (const SystemCache &sc, const SynthesisCacheMap &scmap)
 

Detailed Description

Collect instructions for one or more systems (intend to work with any coordinate object, including the PhaseSpaceSynthesis)

Constructor & Destructor Documentation

◆ RMSDPlan() [1/2]

stormm::structure::RMSDPlan::RMSDPlan ( RMSDMethod strategy_in = RMSDMethod::ALIGN_MASS,
double rmf_in = default_required_mass_fraction,
const PhaseSpaceSynthesis * poly_ps_in = nullptr,
const SystemCache * sc_in = nullptr,
const SynthesisCacheMap * scmap_in = nullptr )

The constructor can take any number of AtomEquivalence objects and build plans from them. Topology pointers will be harvested from these objects and, if necessary, matched to topologies in a synthesis object in order to connect each system to the appropriate instruction set.

Parameters
strategy_inThe type of RMSD calculations that this plan will guide
rmf_inThe required mass fraction that constitutes enough of the molecule to perform placement of small symmetric atom groups without further alignment calculations
ag_inTopology for which to draw a positional RMSD computation plan
cf_inInput coordinates (used for making the necessary AtomEquivalence objects if they are not supplied explicitly)
eq_inPre-computed breakdown of all symmetry-related atoms
poly_ps_inPhaseSpaceSynthesis object for which to draw plans covering all systems. Topology pointers will be harvested from the object.
eq_list_inList of symmetry-related atom breakdowns for all systems in poly_ps_in
gpuDetails of the GPU that will be used in computing RMSD values
low_mol_idxLower limit of molecules from the topology to assess for symmetry groups (this, and high_mol_idx, are only used if a single topology is provided for automatic deduction of symmetry groups)
high_mol_idxUpper limit of molecules from the topology to assess for symmetry groups. The default of -1 indicates that only one molecule, indicated by the lower index, should be assessed.

◆ RMSDPlan() [2/2]

stormm::structure::RMSDPlan::RMSDPlan ( const RMSDPlan & original)
default

With no POINTER-kind Hybrid or pointers to its own member variables to repair, and no const members, the RMSDPlan can make use of default copy and move constructors as well as copy and move assignment operators.

Parameters
originalAnother object to copy or move in constructing this one
otherThe right-hand side object of an assignment

Member Function Documentation

◆ addSystemCache()

void stormm::structure::RMSDPlan::addSystemCache ( const SystemCache * sc,
const SynthesisCacheMap * scmap )

Attach a SystemCache and map between the cache and the synthesis to the object.

Overloaded:

  • Specify the cache and map by const pointer
  • Specify the cache and map by const reference
Parameters
scThe system cache, reflecting user specified input coordinates and topologies
scmapThe map between the synthesis and the system cache

◆ dpData()

const RMSDPlanReader< double > stormm::structure::RMSDPlan::dpData ( HybridTargetLevel tier = HybridTargetLevel::HOST) const

Get the read-only abstract of the system in double precision. The masses of particles are the only templated type.

Parameters
tierGet pointers at the level of the CPU host or GPU device

◆ getAlignmentProtocol()

RMSDAlignmentProtocol stormm::structure::RMSDPlan::getAlignmentProtocol ( int plan_index) const

Get one of the alignment protocols.

Parameters
plan_indexThe system / plan of interest

◆ getPlanIndex()

int stormm::structure::RMSDPlan::getPlanIndex ( int index,
SystemGrouping organization ) const

Get the plan index applicable to a specific grouping of systems (this assumes that all systems in the group have a valid interpretation by a single plan, and if that is not the case the result will be undefined).

Parameters
indexIndex of the grouping from one of the internal lists
organizationThe manner in which systems are grouped

◆ getTopologyPointer()

const AtomGraph * stormm::structure::RMSDPlan::getTopologyPointer ( int plan_index) const

Get one of the topology pointers used by the RMSD plan.

Parameters
plan_indexThe system / plan of interest

◆ spData()

const RMSDPlanReader< float > stormm::structure::RMSDPlan::spData ( HybridTargetLevel tier = HybridTargetLevel::HOST) const

Get the read-only abstract of the system in single precision. The masses of particles are the only templated type.

Parameters
tierGet pointers at the level of the CPU host or GPU device

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