45#ifndef VISITORS_REPLACEMENTVISITOR_HPP
46#define VISITORS_REPLACEMENTVISITOR_HPP
51#include "visitors/AtomVisitor.hpp"
64 using BaseVisitor::visit;
66 visitorName =
"ReplacementVisitor";
67 sites_ = std::make_shared<AtomData>();
74 const std::string toString();
76 void addReplacedAtomName(
const std::string& repName);
77 void addSite(
const std::string& name,
const Vector3d& refPos);
78 void addSite(
const std::string& name,
const Vector3d& refPos,
82 inline bool isReplacedAtom(
const std::string& atomType);
83 std::set<std::string> myTypes_;
84 std::shared_ptr<AtomData> sites_;
89 using BaseVisitor::visit;
91 visitorName =
"SSDAtomVisitor";
94 addReplacedAtomName(
"SSD");
95 addReplacedAtomName(
"SSD_E");
96 addReplacedAtomName(
"SSD_RF");
97 addReplacedAtomName(
"SSD1");
98 addReplacedAtomName(
"SSDQ");
99 addReplacedAtomName(
"SSDQO");
100 addReplacedAtomName(
"TAP");
101 addReplacedAtomName(
"TRED");
104 addSite(
"H",
Vector3d(0.0, -0.75695, 0.5206));
105 addSite(
"H",
Vector3d(0.0, 0.75695, 0.5206));
106 addSite(
"O",
Vector3d(0.0, 0.0, -0.0654));
113 using BaseVisitor::visit;
115 visitorName =
"GBtailVisitor";
118 addReplacedAtomName(
"GBtail");
121 addSite(
"C",
Vector3d(0.0, 0.0, 9.0));
122 addSite(
"C",
Vector3d(0.0, 0.0, 0.0));
123 addSite(
"C",
Vector3d(0.0, 0.0, -9.0));
129 using BaseVisitor::visit;
131 visitorName =
"GBheadVisitor";
134 addReplacedAtomName(
"GBhead");
137 addSite(
"N",
Vector3d(0.0, 0.0, 3.5));
138 addSite(
"C",
Vector3d(0.0, 0.0, 0.0));
139 addSite(
"P",
Vector3d(0.0, 0.0, -3.5));
GBheadVisitor(SimInfo *info)
GBtailVisitor(SimInfo *info)
Replaces an atomic object with a collection atomic sites.
SSDAtomVisitor(SimInfo *info)
One of the heavy-weight classes of OpenMD, SimInfo maintains objects and variables relating to the cu...
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.