47 |
|
#include "hydrodynamics/Sphere.hpp" |
48 |
|
#include "hydrodynamics/Ellipsoid.hpp" |
49 |
|
#include "utils/ElementsTable.hpp" |
50 |
+ |
#include "types/LennardJonesAdapter.hpp" |
51 |
+ |
#include "types/GayBerneAdapter.hpp" |
52 |
|
|
53 |
|
namespace OpenMD { |
54 |
|
|
159 |
|
if (integrableObject->isAtom()){ |
160 |
|
Atom* atom = static_cast<Atom*>(integrableObject); |
161 |
|
AtomType* atomType = atom->getAtomType(); |
162 |
< |
if (atomType->isGayBerne()) { |
163 |
< |
DirectionalAtomType* dAtomType = dynamic_cast<DirectionalAtomType*>(atomType); |
164 |
< |
GenericData* data = dAtomType->getPropertyByName("GayBerne"); |
165 |
< |
if (data != NULL) { |
166 |
< |
GayBerneParamGenericData* gayBerneData = dynamic_cast<GayBerneParamGenericData*>(data); |
165 |
< |
|
166 |
< |
if (gayBerneData != NULL) { |
167 |
< |
GayBerneParam gayBerneParam = gayBerneData->getData(); |
168 |
< |
currShape = new Ellipsoid(V3Zero, |
169 |
< |
gayBerneParam.GB_l / 2.0, |
170 |
< |
gayBerneParam.GB_d / 2.0, |
171 |
< |
Mat3x3d::identity()); |
172 |
< |
} else { |
173 |
< |
sprintf( painCave.errMsg, |
174 |
< |
"Can not cast GenericData to GayBerneParam\n"); |
175 |
< |
painCave.severity = OPENMD_ERROR; |
176 |
< |
painCave.isFatal = 1; |
177 |
< |
simError(); |
178 |
< |
} |
179 |
< |
} else { |
180 |
< |
sprintf( painCave.errMsg, "Can not find Parameters for GayBerne\n"); |
181 |
< |
painCave.severity = OPENMD_ERROR; |
182 |
< |
painCave.isFatal = 1; |
183 |
< |
simError(); |
184 |
< |
} |
162 |
> |
GayBerneAdapter gba = GayBerneAdapter(atomType); |
163 |
> |
if (gba.isGayBerne()) { |
164 |
> |
currShape = new Ellipsoid(V3Zero, gba.getL() / 2.0, |
165 |
> |
gba.getD() / 2.0, |
166 |
> |
Mat3x3d::identity()); |
167 |
|
} else { |
168 |
< |
if (atomType->isLennardJones()){ |
169 |
< |
GenericData* data = atomType->getPropertyByName("LennardJones"); |
170 |
< |
if (data != NULL) { |
189 |
< |
LJParamGenericData* ljData = dynamic_cast<LJParamGenericData*>(data); |
190 |
< |
if (ljData != NULL) { |
191 |
< |
LJParam ljParam = ljData->getData(); |
192 |
< |
currShape = new Sphere(atom->getPos(), ljParam.sigma/2.0); |
193 |
< |
} else { |
194 |
< |
sprintf( painCave.errMsg, |
195 |
< |
"Can not cast GenericData to LJParam\n"); |
196 |
< |
painCave.severity = OPENMD_ERROR; |
197 |
< |
painCave.isFatal = 1; |
198 |
< |
simError(); |
199 |
< |
} |
200 |
< |
} |
168 |
> |
LennardJonesAdapter lja = LennardJonesAdapter(atomType); |
169 |
> |
if (lja.isLennardJones()){ |
170 |
> |
currShape = new Sphere(atom->getPos(), lja.getSigma()/2.0); |
171 |
|
} else { |
172 |
|
int aNum = etab.GetAtomicNum((atom->getType()).c_str()); |
173 |
|
if (aNum != 0) { |