14 #ifndef ESYS_LSMWALLFORCEREADER_H
15 #define ESYS_LSMWALLFORCEREADER_H
44 StringUtil::StringVector::const_iterator begin,
45 StringUtil::StringVector::const_iterator end
50 m_id = StringUtil::to<int>(*begin);
51 for (
int i = 0; i < 3; i++) {
52 m_force[i] = StringUtil::to<double>(*(begin + i + 1));
79 const int elemsPerWallForce = 4;
82 if ((elemVector.size() % elemsPerWallForce) == 0)
85 StringUtil::StringVector::const_iterator it = elemVector.begin();
86 it != elemVector.end();
87 it += elemsPerWallForce
90 const WallForce wallForce(it, it + elemsPerWallForce);
100 std::stringstream msg;
104 <<
"' does not contain a number of elements divisible by "
105 << elemsPerWallForce;
106 throw std::runtime_error(msg.str());
StringVector splitStrings(const std::string &str, const std::string &delim)
Definition: StringUtil.h:169
Vec3 m_force
Definition: WallForceReader.h:68
const Vec3 getForce() const
Definition: WallForceReader.h:62
const WallForce & get(WallId id) const
Definition: WallForceReader.h:110
std::istream * m_pIStream
Definition: WallForceReader.h:163
WallForce(StringUtil::StringVector::const_iterator begin, StringUtil::StringVector::const_iterator end)
Definition: WallForceReader.h:43
bool hasNext() const
Definition: WallForceReader.h:148
WallForceVector m_wallForceVector
Definition: WallForceReader.h:117
void setStream(std::istream &iStream)
Definition: WallForceReader.h:143
WallForcesRecord(const std::string &line)
Definition: WallForceReader.h:71
WallForcesRecord::WallId WallId
Definition: WallForceReader.h:124
const WallId & getId() const
Definition: WallForceReader.h:57
Definition: WallForceReader.h:120
Definition: CheckPointable.cpp:16
char m_lineBuffer[MAX_LINE_SIZE]
Definition: WallForceReader.h:164
WallForcePair next()
Definition: WallForceReader.h:153
int WallId
Definition: WallForceReader.h:31
WallId m_wallId1
Definition: WallForceReader.h:165
WallId m_id
Definition: WallForceReader.h:67
WallForce()
Definition: WallForceReader.h:35
std::vector< WallForce > WallForceVector
Definition: WallForceReader.h:116
void parseLine(const std::string &line)
Definition: WallForceReader.h:76
#define NULL
Definition: t_list.h:17
WallForceReader(WallId wallId1, WallId wallId2)
Definition: WallForceReader.h:135
std::string trim(const std::string &str)
Definition: StringUtil.h:175
WallForceReader(WallId wallId1, WallId wallId2, std::istream &iStream)
Definition: WallForceReader.h:127
esys::lsm::StringVector StringVector
Definition: StringUtil.h:31
Definition: WallForceReader.h:28
WallId m_wallId2
Definition: WallForceReader.h:166
WallForce(WallId id, const Vec3 &force)
Definition: WallForceReader.h:39
static const int MAX_LINE_SIZE
Definition: WallForceReader.h:161
std::pair< Vec3, Vec3 > WallForcePair
Definition: WallForceReader.h:123
Definition: WallForceReader.h:32