STORMM Source Documentation
Loading...
Searching...
No Matches
background_mesh_composition.h
1// -*-c++-*-
2#ifndef STORMM_BACKGROUND_MESH_COMPOSITION_H
3#define STORMM_BACKGROUND_MESH_COMPOSITION_H
4
5#include "copyright.h"
6#include "Synthesis/atomgraph_synthesis.h"
7#include "Topology/atomgraph.h"
8#include "Topology/atomgraph_abstracts.h"
9#include "Topology/combograph_ljmodel.h"
10#include "mesh_forcefield.h"
11#include "mesh_foundation.h"
12#include "mesh_parameters.h"
13#include "mesh_rulers.h"
14#include "structure_enumerators.h"
15
16namespace stormm {
17namespace structure {
18
19using topology::ComboGraphLJModel;
20using topology::PairLJInteraction;
21
26template <typename T>
28public:
29
57 BackgroundMeshComposition(const MeshFoundation &basis_in, const MeshParameters &measurements_in,
58 const MeshRulers &tick_marks, const GridDetail purpose_in,
59 const std::vector<double> probe_radii, VdwCombiningRule lj_rule_in,
60 double clash_forgiveness, const std::vector<PairLJInteraction> &edits);
61
62 BackgroundMeshComposition(const MeshFoundation &basis_in, const MeshParameters &measurements_in,
63 const MeshRulers &tick_marks, GridDetail purpose_in,
64 const AtomGraph &ag_other, VdwCombiningRule lj_rule_in,
65 double clash_ratio_in, double clash_distance_in,
66 const std::vector<PairLJInteraction> &edits);
67
68 BackgroundMeshComposition(const MeshFoundation &basis_in, const MeshParameters &measurements_in,
69 const MeshRulers &tick_marks, GridDetail purpose_in,
70 const AtomGraphSynthesis &poly_ag_other, VdwCombiningRule lj_rule_in,
71 double clash_ratio_in, double clash_distance_in,
72 const std::vector<PairLJInteraction> &edits);
74
84 BackgroundMeshComposition& operator=(const BackgroundMeshComposition &original) = default;
85 BackgroundMeshComposition& operator=(BackgroundMeshComposition &&original) = default;
87
97
108
122 void setMeasurements(const MeshParameters &measurements_in);
124
130 void setRulers();
131
149 void setForceField(const AtomGraphSynthesis &poly_ag);
150
151private:
152
153 // These components are applicable to any of the meshes contained within.
154 MeshFoundation basis;
157 MeshParameters measurements;
160 MeshRulers tick_marks;
163 MeshForceField nonbonded_model;
167
172 GridDetail purpose;
173
177 int mesh_count;
178
181 int electrostatic_mesh_index;
182
185 std::vector<NonbondedPotential> mesh_contents;
186
191 std::vector<double> probe_radii;
192
197 std::vector<double> well_depths;
198
205 Hybrid<T> coefficients.
206};
207
208} // namespace structure
209} // namespace stormm
210
211#include "background_mesh_composition.tpp"
212
213#endif
An evolution of GpuBuffer in pmemd.cuda, the Composite array has elements that are accessible from ei...
Definition hybrid.h:202
void setMeasurements()
Set the dimensions, boundaries, and other details common to all meshes contained within this object....
void setRulers()
Refresh the rulers for the A, B, and C axes of the underlying meshes. This must be called explicitly ...
const MeshParameters & getDimensions() const
Get the dimensions, boundaries, and other settings for all of the meshes contained within this object...
const MeshFoundation & getMolecularBasis() const
Get the molecular basis of the meshes.
BackgroundMeshComposition(const BackgroundMeshComposition &original)=default
With no POINTER-kind Hybrid objects or other pointers to repair, the default copy and move constructo...
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 immediat...
void setForceField(const AtomGraphSynthesis &poly_ag)
Set the object's non-bonded model based on a series of topologies, a particular combining rule,...
A class to hold the rules by which the system underlying a mesh object interacts with its surrounding...
Definition mesh_forcefield.h:98
A small object to hold the essential descriptors of the molecule.
Definition mesh_foundation.h:50
Encode the critical dimensions of a regular, rectilinear mesh. The locations of mesh points as well a...
Definition mesh_parameters.h:121
A collection of coordinate vectors describing each axis of a mesh. If the mesh axes track Cartesian a...
Definition mesh_rulers.h:75
A collection of one or more AtomGraph objects, with similar components arranged in contiguous arrays ...
Definition atomgraph_synthesis.h:55
A struct to hold information relating to an Amber topology. This struct's member functions are limite...
Definition atomgraph.h:50