STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::structure::BackgroundMeshComposition< T > Class Template Reference

A class to hold the details of multiple BackgroundMesh objects taking the same molecular basis. It is termed a composition, not a synthesis, as it deals with multiple aspects of a single system (or multiple aspects of many snapshots of the same system), not a series of many systems. More...

#include <background_mesh_composition.h>

Public Member Functions

void setRulers ()
 Refresh the rulers for the A, B, and C axes of the underlying meshes. This must be called explicitly if manipulating the measurements via a pointer to the measurements member variable. This will be called implicity if submitting an entire new MeshParameters object to reset measurements. The internal measurements will be referenced when setting tick_marks.
 
void setForceField (const AtomGraphSynthesis &poly_ag)
 Set the object's non-bonded model based on a series of topologies, a particular combining rule, and a specific interpolation scheme. If provided, record the specific mesh indices referenced by each atom type. This is also the means to set the type of representation: for occlusion meshes, provide the list of specific probe radii (all atoms will access the mesh index most appropriate for their Lennard-Jones sigma self interactions). If modeling a nonbonded field, electrostatics will implicitly be calculated as part of the model.
 
 BackgroundMeshComposition (const MeshFoundation &basis_in, const MeshParameters &measurements_in, const MeshRulers &tick_marks, const GridDetail purpose_in, const std::vector< double > probe_radii, VdwCombiningRule lj_rule_in, double clash_forgiveness, const std::vector< PairLJInteraction > &edits)
 The constructor takes various components (composition in the C++ sense of the word) and will immediately allocate. If the developer wishes to modify any of the components post-facto, the meshes will likely need to be re-allocated but this is a valid way to construct the composition of meshes and the defaults do not imply a large amount of memory to allocate. All of the constructors will build the nonbonded model based on information provided in submitted topologies or other arrays, although it remains possible to build the nonbonded_model member variable by direct developer intervention after the initial construction. The calculation each mesh in the composition will not happen until the evaluate() member function is called.
 
 BackgroundMeshComposition (const MeshFoundation &basis_in, const MeshParameters &measurements_in, const MeshRulers &tick_marks, GridDetail purpose_in, const AtomGraph &ag_other, VdwCombiningRule lj_rule_in, double clash_ratio_in, double clash_distance_in, const std::vector< PairLJInteraction > &edits)
 
 BackgroundMeshComposition (const MeshFoundation &basis_in, const MeshParameters &measurements_in, const MeshRulers &tick_marks, GridDetail purpose_in, const AtomGraphSynthesis &poly_ag_other, VdwCombiningRule lj_rule_in, double clash_ratio_in, double clash_distance_in, const std::vector< PairLJInteraction > &edits)
 
 BackgroundMeshComposition (const BackgroundMeshComposition &original)=default
 With no POINTER-kind Hybrid objects or other pointers to repair, the default copy and move constructors are valid. With no const member variables, the default copy and move assignment operators are valid.
 
 BackgroundMeshComposition (BackgroundMeshComposition &&original)=default
 
BackgroundMeshCompositionoperator= (const BackgroundMeshComposition &original)=default
 
BackgroundMeshCompositionoperator= (BackgroundMeshComposition &&original)=default
 
const MeshFoundationgetMolecularBasis () const
 Get the molecular basis of the meshes.
 
MeshFoundationgetMolecularBasis ()
 
const MeshParametersgetDimensions () const
 Get the dimensions, boundaries, and other settings for all of the meshes contained within this object.
 
MeshParametersgetDimensions ()
 
void setMeasurements ()
 Set the dimensions, boundaries, and other details common to all meshes contained within this object. This will automatically refresh the rulers (tick_marks member variable).
 
void setMeasurements (const MeshParameters &measurements_in)
 

Detailed Description

template<typename T>
class stormm::structure::BackgroundMeshComposition< T >

A class to hold the details of multiple BackgroundMesh objects taking the same molecular basis. It is termed a composition, not a synthesis, as it deals with multiple aspects of a single system (or multiple aspects of many snapshots of the same system), not a series of many systems.

Constructor & Destructor Documentation

◆ BackgroundMeshComposition() [1/2]

template<typename T>
stormm::structure::BackgroundMeshComposition< T >::BackgroundMeshComposition ( const MeshFoundation & basis_in,
const MeshParameters & measurements_in,
const MeshRulers & tick_marks,
const GridDetail purpose_in,
const std::vector< double > probe_radii,
VdwCombiningRule lj_rule_in,
double clash_forgiveness,
const std::vector< PairLJInteraction > & edits )

The constructor takes various components (composition in the C++ sense of the word) and will immediately allocate. If the developer wishes to modify any of the components post-facto, the meshes will likely need to be re-allocated but this is a valid way to construct the composition of meshes and the defaults do not imply a large amount of memory to allocate. All of the constructors will build the nonbonded model based on information provided in submitted topologies or other arrays, although it remains possible to build the nonbonded_model member variable by direct developer intervention after the initial construction. The calculation each mesh in the composition will not happen until the evaluate() member function is called.

Parameters
purpose_inIndicate the type of representation to build in a series of meshes
probe_radii_inRadii of occlusion probes to use. The length of this list will determine the number of meshes produced.
ag_otherTopology of the system that will interact with the meshes, given when a nonbonded field is to be created
poly_ag_otherThe synthesis of topologies that will interact with the meshes, given when a nonbonded field is to be created
lj_rule_inIndicate the manner in which probe radii or Lennard-Jones parameters from supplied topologies will interact with those of atoms in the meshes' underlying topology (as specified in basis_in)
clash_forgivenessConstant ratio scaling all probe : atom interactions when creating occlusion meshes
clash_ratio_inThe ratio of sigma parameters at which the Lennard-Jones potential hands off to a softcore polynomial
clash_distance_inThe absolute distance at which electrostatic interactions transition to a softcore polynomial

◆ BackgroundMeshComposition() [2/2]

template<typename T>
stormm::structure::BackgroundMeshComposition< T >::BackgroundMeshComposition ( const BackgroundMeshComposition< T > & original)
default

With no POINTER-kind Hybrid objects or other pointers to repair, the default copy and move constructors are valid. With no const member variables, the default copy and move assignment operators are valid.

Parameters
originalThe original object to copy or move
otherAnother object placed on the right hand side of an assignment statement

Member Function Documentation

◆ getDimensions()

template<typename T>
const MeshParameters & stormm::structure::BackgroundMeshComposition< T >::getDimensions ( ) const

Get the dimensions, boundaries, and other settings for all of the meshes contained within this object.

Overloaded:

  • Return a const reference for a const object
  • Return a mutable pointer for a non-const object

◆ getMolecularBasis()

template<typename T>
const MeshFoundation & stormm::structure::BackgroundMeshComposition< T >::getMolecularBasis ( ) const

Get the molecular basis of the meshes.

Overloaded:

  • Return a const reference for a const object
  • Return a mutable pointer for a non-const object

◆ setForceField()

template<typename T>
void stormm::structure::BackgroundMeshComposition< T >::setForceField ( const AtomGraphSynthesis & poly_ag)

Set the object's non-bonded model based on a series of topologies, a particular combining rule, and a specific interpolation scheme. If provided, record the specific mesh indices referenced by each atom type. This is also the means to set the type of representation: for occlusion meshes, provide the list of specific probe radii (all atoms will access the mesh index most appropriate for their Lennard-Jones sigma self interactions). If modeling a nonbonded field, electrostatics will implicitly be calculated as part of the model.

Overloaded:

Parameters
ag
poly_ag
lj_rule
probe_radii
well_depths

◆ setMeasurements()

template<typename T>
void stormm::structure::BackgroundMeshComposition< T >::setMeasurements ( )

Set the dimensions, boundaries, and other details common to all meshes contained within this object. This will automatically refresh the rulers (tick_marks member variable).

Overloaded:

  • Compute mesh dimensions based on the underlying topology and coordinates, given the shape of a single mesh element already present in the mesh composition's internally stored MeshParameters. Only the A, B, and C axis element counts will change.
  • Set the mesh dimensions explicitly with a new MeshParameters object.
Parameters
measurements_inThe measurements to set

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