MercuryData.h File Reference
#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
#include <vector>

Go to the source code of this file.

Classes

struct  MercuryParticle< NDIMS >
 
struct  MercuryParticle< 2 >
 
class  MercuryTimeStep< NDIMS >
 
class  MercuryTimeStepIterator< NDIMS >
 
class  MercuryDataFile
 
class  MercuryDataFile::IteratorProxy< NDIMS >
 

Functions

template<std::size_t NDIMS>
std::istream & operator>> (std::istream &in, MercuryParticle< NDIMS > &part)
 Read a single particle from a istream. More...
 
template<>
std::istream & operator>><2 > (std::istream &in, MercuryParticle< 2 > &part)
 
template<std::size_t NDIMS>
std::istream & operator>> (std::istream &in, MercuryTimeStep< NDIMS > &step)
 

Function Documentation

◆ operator>>() [1/2]

template<std::size_t NDIMS>
std::istream& operator>> ( std::istream &  in,
MercuryParticle< NDIMS > &  part 
)

Read a single particle from a istream.

96 {
97  std::size_t i;
98  for (i = 0; i < NDIMS; i++)
99  in >> part.position[i];
100 
101  for (i = 0; i < NDIMS; i++) {
102  in >> part.velocity[i];
103  // convert velocities to float, because paraview cannot handle doubles
104  part.velocity[i] = (float)part.velocity[i];
105  }
106 
107  in >> part.radius;
108 
109  for (i = 0; i < NDIMS; i++)
110  in >> part.rotation[i];
111 
112  for (i = 0; i < NDIMS; i++) {
113  in >> part.angularV[i];
114  // convert velocities to float, because paraview cannot handle doubles
115  part.angularV[i] = (float)part.angularV[i];
116  }
117 
118  in >> part.speciesID;
119 
120  return in;
121 }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
for(int j=0;j< nb;++j)
Definition: level2_impl.h:287
std::size_t speciesID
Definition: MercuryData.h:48
double rotation[NDIMS]
Definition: MercuryData.h:34
double angularV[NDIMS]
Definition: MercuryData.h:38
double radius
Definition: MercuryData.h:43
double velocity[NDIMS]
Definition: MercuryData.h:30
double position[NDIMS]
Definition: MercuryData.h:26

References MercuryParticle< NDIMS >::angularV, for(), i, MercuryParticle< NDIMS >::position, MercuryParticle< NDIMS >::radius, MercuryParticle< NDIMS >::rotation, MercuryParticle< NDIMS >::speciesID, and MercuryParticle< NDIMS >::velocity.

◆ operator>>() [2/2]

template<std::size_t NDIMS>
std::istream& operator>> ( std::istream &  in,
MercuryTimeStep< NDIMS > &  step 
)

Reads the time step header into the ts

Parameters
[in,out]inThe istream where we read from
[out]stepThe timestream read into
Returns
in for chaining.
319 {
320  std::size_t i;
321  in >> step.numParticles_ >> step.time_;
322 
323  for (i = 0; i < NDIMS; i++)
324  in >> step.min_[i];
325 
326  for (i = 0; i < NDIMS; i++)
327  in >> step.max_[i];
328 
329  return in;
330 }
std::size_t numParticles_
Definition: MercuryData.h:286
double max_[NDIMS]
Definition: MercuryData.h:290
double time_
Definition: MercuryData.h:278
double min_[NDIMS]
Definition: MercuryData.h:290

References for(), i, MercuryTimeStep< NDIMS >::max_, MercuryTimeStep< NDIMS >::min_, MercuryTimeStep< NDIMS >::numParticles_, and MercuryTimeStep< NDIMS >::time_.

◆ operator>><2 >()

template<>
std::istream& operator>><2 > ( std::istream &  in,
MercuryParticle< 2 > &  part 
)
125 {
126  in >> part.position[0] >> part.position[2];
127  part.position[1] = 0;
128 
129  in >> part.velocity[0] >> part.velocity[2];
130  part.velocity[1] = 0;
131 
132  in >> part.radius;
133 
134  in >> part.rotation[1];
135  part.rotation[0] = part.rotation[2] = 0;
136 
137  in >> part.angularV[1];
138  part.angularV[0] = part.angularV[2] = 0;
139 
140  in >> part.speciesID;
141 
142  return in;
143 }
std::size_t speciesID
Definition: MercuryData.h:87
double rotation[3]
Definition: MercuryData.h:73
double angularV[3]
Definition: MercuryData.h:77
double velocity[3]
Definition: MercuryData.h:69
double position[3]
Definition: MercuryData.h:65
double radius
Definition: MercuryData.h:82