ESyS-Particle  2.3.4
SimpleParticleData.hpp
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 namespace esys
14 {
15  namespace lsm
16  {
17 //===============================================================================
19  : m_id(-1),
20  m_tag(-1),
21  m_position(),
22  m_radius(0.0),
23  m_mass(0.0)
24  {
25  setMass(get3dMass());
26  }
27 
29  Id id,
30  Tag tag,
31  const Vec3 &position,
32  double radius
33  )
34  : m_id(id),
35  m_tag(tag),
36  m_position(position),
37  m_radius(radius),
38  m_mass(0.0)
39  {
40  setMass(get3dMass());
41  }
42 
44  const Vec3 &position,
45  double radius,
46  Id id,
47  Tag tag
48  )
49  : m_id(id),
50  m_tag(tag),
51  m_position(position),
52  m_radius(radius),
53  m_mass(0.0)
54  {
55  setMass(get3dMass());
56  }
57 
59  : m_id(p.m_id),
60  m_tag(p.m_tag),
61  m_position(p.m_position),
62  m_radius(p.m_radius),
63  m_mass(p.m_mass)
64  {
65  }
66 
68  {
69  m_id = p.m_id;
70  m_tag = p.m_tag;
72  m_radius = p.m_radius;
73  m_mass = p.m_mass;
74 
75  return *this;
76  }
77 
79  const SimpleParticleData &particleData
80  ) const
81  {
82  return
83  (
84  (getId() == particleData.getId())
85  &&
86  (getPosition() == particleData.getPosition())
87  &&
88  (getRadius() == particleData.getRadius())
89  &&
90  (getTag() == particleData.getTag())
91  );
92  }
93 
95  {
96  return m_id;
97  }
98 
99  void SimpleParticleData::setId(const Id &id)
100  {
101  m_id = id;
102  }
103 
105  {
106  setId(id);
107  }
108 
110  {
111  return getId();
112  }
113 
115  {
116  return m_position;
117  }
118 
120  {
121  m_position = pos;
122  }
123 
125  {
126  return m_tag;
127  }
128 
130  {
131  m_tag = tag;
132  }
133 
135  {
136  return m_radius;
137  }
138 
139  void SimpleParticleData::setRadius(const double &r)
140  {
141  m_radius = r;
142  }
143 
144  void SimpleParticleData::setMass(double mass)
145  {
146  m_mass = mass;
147  }
148 
150  {
151  return m_mass;
152  }
153 
155  {
156  return m_radius*m_radius;
157  }
158 
160  {
161  return m_radius*m_radius*m_radius;
162  }
163 
164  void SimpleParticleData::read(std::istream &istream)
165  {
166  istream
167  >> m_position
168  >> m_radius
169  >> m_id
170  >> m_tag;
171  }
172 
173  void SimpleParticleData::write(std::ostream &oStream) const
174  {
175  const char delim = ' ';
176  oStream
177  << getPosition() << delim
178  << getRadius() << delim
179  << getId() << delim
180  << getTag();
181  }
182 
183  std::istream &operator>>(std::istream &iStream, SimpleParticleData &particleData)
184  {
185  particleData.read(iStream);
186  return iStream;
187  }
188 
189  std::ostream &operator<<(std::ostream &oStream, const SimpleParticleData &particleData)
190  {
191  particleData.write(oStream);
192  return oStream;
193  }
194  }
195 }
esys::lsm::SimpleParticleData::setId
void setId(const Id &id)
Definition: SimpleParticleData.hpp:99
esys::lsm::SimpleParticleData::m_radius
double m_radius
Definition: SimpleParticleData.h:81
esys::lsm::SimpleParticleData::operator=
SimpleParticleData & operator=(const SimpleParticleData &p)
Definition: SimpleParticleData.hpp:67
esys::lsm::SimpleParticleData::get2dMass
double get2dMass() const
Definition: SimpleParticleData.hpp:154
esys::lsm::SimpleParticleData::getID
Id getID() const
Definition: SimpleParticleData.hpp:109
esys::lsm::SimpleParticleData::read
void read(std::istream &istream)
Definition: SimpleParticleData.hpp:164
esys::lsm::SimpleParticleData::getId
Id getId() const
Definition: SimpleParticleData.hpp:94
esys::lsm::SimpleParticleData
Definition: SimpleParticleData.h:28
esys::lsm::SimpleParticleData::setMass
void setMass(double mass)
Definition: SimpleParticleData.hpp:144
esys
Definition: CheckPointable.cpp:17
esys::lsm::SimpleParticleData::setRadius
void setRadius(const double &r)
Definition: SimpleParticleData.hpp:139
esys::lsm::SimpleParticleData::getPosition
const Vec3 & getPosition() const
Definition: SimpleParticleData.hpp:114
esys::lsm::operator<<
std::ostream & operator<<(std::ostream &oStream, const SimpleConnectionData &connectionData)
Definition: GeometryReader.cpp:134
esys::lsm::SimpleParticleData::getRadius
double getRadius() const
Definition: SimpleParticleData.hpp:134
esys::lsm::SimpleParticleData::getMass
double getMass() const
Definition: SimpleParticleData.hpp:149
esys::lsm::SimpleParticleData::Tag
int Tag
Definition: SimpleParticleData.h:31
esys::lsm::SimpleParticleData::operator==
bool operator==(const SimpleParticleData &particleData) const
Definition: SimpleParticleData.hpp:78
esys::lsm::SimpleParticleData::get3dMass
double get3dMass() const
Definition: SimpleParticleData.hpp:159
esys::lsm::SimpleParticleData::m_mass
double m_mass
Definition: SimpleParticleData.h:82
esys::lsm::SimpleParticleData::setTag
void setTag(const Tag &tag)
Definition: SimpleParticleData.hpp:129
Vec3
Definition: vec3.h:47
esys::lsm::SimpleParticleData::SimpleParticleData
SimpleParticleData()
Definition: SimpleParticleData.hpp:18
esys::lsm::SimpleParticleData::m_tag
Tag m_tag
Definition: SimpleParticleData.h:79
esys::lsm::SimpleParticleData::setPosition
void setPosition(const Vec3 &pos)
Definition: SimpleParticleData.hpp:119
esys::lsm::SimpleParticleData::setID
void setID(const Id &id)
Definition: SimpleParticleData.hpp:104
esys::lsm::SimpleParticleData::m_position
Vec3 m_position
Definition: SimpleParticleData.h:80
esys::lsm::SimpleParticleData::m_id
Id m_id
Definition: SimpleParticleData.h:78
esys::lsm::SimpleParticleData::write
void write(std::ostream &write) const
Definition: SimpleParticleData.hpp:173
esys::lsm::SimpleParticleData::getTag
Tag getTag() const
Definition: SimpleParticleData.hpp:124
esys::lsm::operator>>
std::istream & operator>>(std::istream &iStream, SimpleConnectionData &connectionData)
Definition: GeometryReader.cpp:128
esys::lsm::SimpleParticleData::Id
int Id
Definition: SimpleParticleData.h:30