11 #include <forward_list>
13 #include <boost/serialization/serialization.hpp>
27 inline void clearForcePotentialPressure();
29 inline void clearDisplacement();
31 inline const Vector3 &position()
const;
32 inline const Vector3 &velocity()
const;
33 inline const Vector3 &force()
const;
34 inline const Vector3& displacement()
const;
37 inline double potential()
const;
38 inline double localPressure()
const;
39 inline int cellID()
const;
40 inline int id()
const;
41 inline double mass()
const;
42 inline void addLocalPressure(
double pressure);
43 inline void addForce(
int component,
double force);
46 inline void setPosition(
const Vector3 &position);
47 inline void setVelocity(
const Vector3 &velocity);
48 inline void addForce(
const Vector3 &force);
49 inline void addPotential(
double potential);
50 inline void setCellID(
int cellID);
51 inline void addDisplacement(
const Vector3& displacement);
52 inline void addDisplacement(
double displacement, uint component);
54 inline void setForce(
const Vector3 &force);
56 void clone(
const Atom &other);
57 inline void communicationClone(
const Atom &other,
const vector<AtomType>& moleculeSystem);
59 inline bool isPositionFixed();
60 inline void setPositionFixed(
bool fixed);
62 inline void setID(
int id);
64 const std::vector<std::pair<Atom *, Vector3 *> > &neighborAtoms();
65 void clearNeighborAtoms();
66 void addNeighborAtom(
Atom *neighborAtom,
Vector3 *offsetVector);
68 void setAtomType(
const AtomType& atomType);
88 friend class boost::serialization::access;
89 template<
class Archive>
90 void serialize(Archive & ar,
const unsigned int );
95 BOOST_CLASS_IMPLEMENTATION(
Atom,object_serializable)
96 BOOST_IS_BITWISE_SERIALIZABLE(
Atom)
97 BOOST_IS_MPI_DATATYPE(
Atom)
98 BOOST_CLASS_TRACKING(
Atom,track_never)
103 m_position(
Vector3::createZeros()),
104 m_force(
Vector3::createZeros()),
105 m_velocity(
Vector3::createZeros()),
106 m_displacement(
Vector3::createZeros()),
108 m_localPressure(0.0),
111 m_isPositionFixed(false),
118 m_position(
Vector3::createZeros()),
119 m_force(
Vector3::createZeros()),
120 m_velocity(
Vector3::createZeros()),
121 m_displacement(
Vector3::createZeros()),
123 m_localPressure(0.0),
125 m_atomType(atomType),
126 m_isPositionFixed(false),
128 m_atomTypeIndex(atomType.index())
133 template<
class Archive>
134 inline void Atom::serialize(Archive & ar,
const unsigned int)