48#include "types/GayBerneAdapter.hpp"
53#include "utils/simError.h"
57 bool GayBerneAdapter::isGayBerne() {
return at_->hasProperty(GBtypeID); }
61 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
62 "GayBerneAdapter::getGayBerneParam was passed an atomType (%s)\n"
63 "\tthat does not appear to be a Gay-Berne atom.\n",
64 at_->getName().c_str());
65 painCave.severity = OPENMD_ERROR;
70 std::shared_ptr<GenericData> data = at_->getPropertyByName(GBtypeID);
71 if (data ==
nullptr) {
72 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
73 "GayBerneAdapter::getGayBerneParam could not find Gay-Berne\n"
74 "\tparameters for atomType %s.\n",
75 at_->getName().c_str());
76 painCave.severity = OPENMD_ERROR;
81 std::shared_ptr<GBAtypeData> gbData =
82 std::dynamic_pointer_cast<GBAtypeData>(data);
83 if (gbData ==
nullptr) {
84 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
85 "GayBerneAdapter::getGayBerneParam could not convert\n"
86 "\tGenericData to GBAtypeData for atom type %s\n",
87 at_->getName().c_str());
88 painCave.severity = OPENMD_ERROR;
93 return gbData->getData();
96 RealType GayBerneAdapter::getD() {
97 GBAtypeParameters gbParam = getGayBerneParam();
101 RealType GayBerneAdapter::getL() {
102 GBAtypeParameters gbParam = getGayBerneParam();
106 RealType GayBerneAdapter::getEpsX() {
107 GBAtypeParameters gbParam = getGayBerneParam();
108 return gbParam.GB_eps_X;
111 RealType GayBerneAdapter::getEpsS() {
112 GBAtypeParameters gbParam = getGayBerneParam();
113 return gbParam.GB_eps_S;
116 RealType GayBerneAdapter::getEpsE() {
117 GBAtypeParameters gbParam = getGayBerneParam();
118 return gbParam.GB_eps_E;
121 RealType GayBerneAdapter::getDw() {
122 GBAtypeParameters gbParam = getGayBerneParam();
123 return gbParam.GB_dw;
126 void GayBerneAdapter::makeGayBerne(RealType d, RealType l, RealType eps_X,
127 RealType eps_S, RealType eps_E,
129 if (isGayBerne()) { at_->removeProperty(GBtypeID); }
131 GBAtypeParameters gbParam {};
134 gbParam.GB_eps_X = eps_X;
135 gbParam.GB_eps_S = eps_S;
136 gbParam.GB_eps_E = eps_E;
139 at_->addProperty(std::make_shared<GBAtypeData>(GBtypeID, gbParam));
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.