extensive.hpp
Go to the documentation of this file.
1 
6 #ifndef EXTENSIVE_HPP
7 #define EXTENSIVE_HPP 1
8 
9 #include "../../tessellation/geometry.hpp"
10 #include "computational_cell_2d.hpp"
11 #ifdef RICH_MPI
12 #include "../../misc/serializable.hpp"
13 #endif // RICH_MPI
14 
15 using std::string;
16 
18 class Extensive
19 #ifdef RICH_MPI
20  : public Serializable
21 #endif // RICH_MPI
22 {
23 public:
25  double mass;
26 
28  double energy;
29 
32 
35 
40  Extensive& operator=(const Extensive& origin);
41 
45  Extensive(const Extensive& other);
46 
51  Extensive& operator-=(const Extensive& diff);
52 
57  Extensive& operator+=(const Extensive& diff);
58 
63  Extensive& operator*=(const double scalar);
64 
66  Extensive(void);
67 
72  explicit Extensive(tvector const& Tracers);
73 
74 #ifdef RICH_MPI
75  size_t getChunkSize(void) const;
76 
77  vector<double> serialize(void) const;
78 
79  void unserialize
80  (const vector<double>& data);
81 
82 #endif
83 
84 };
85 
91 Extensive operator*(const double s,
92  const Extensive& e);
93 
99 Extensive operator+(const Extensive& e1,
100  const Extensive& e2);
101 
107 Extensive operator-(const Extensive& e1,
108  const Extensive& e2);
114 void ReplaceExtensive(Extensive &toreplace, Extensive const& other);
115 
116 #endif // EXTENSIVE_HPP
Extensive variables.
Definition: extensive.hpp:18
Extensive(void)
Null constructor.
Definition: extensive.cpp:10
Extensive & operator=(const Extensive &origin)
Assignment operator.
Definition: extensive.cpp:38
std::vector< double > tvector
Vector2D momentum
momentum, in relativity it is = rho*h*gamma*v
Definition: extensive.hpp:31
double mass
rest mass times gamma
Definition: extensive.hpp:25
Extensive & operator-=(const Extensive &diff)
Self difference operator.
Definition: extensive.cpp:26
double energy
energy, in relativity it is = rho*h*gamma^2-P-rho
Definition: extensive.hpp:28
Extensive & operator*=(const double scalar)
Self multiplication by scalar.
Definition: extensive.cpp:98
Extensive operator*(const double s, const Extensive &e)
Scalar product.
Definition: extensive.cpp:70
tvector tracers
tracers
Definition: extensive.hpp:34
Extensive operator-(const Extensive &e1, const Extensive &e2)
Difference.
Definition: extensive.cpp:109
void unserialize(const vector< double > &data)
Convert an array of numbers to an object.
Definition: extensive.cpp:140
void ReplaceExtensive(Extensive &toreplace, Extensive const &other)
Replaces the data in the extensive. The tracers should already be allocated.
Definition: extensive.cpp:47
vector< double > serialize(void) const
Convert an object to an array of numbers.
Definition: extensive.cpp:121
Base class for a serializable object.
Extensive & operator+=(const Extensive &diff)
Self addition operator.
Definition: extensive.cpp:58
Extensive operator+(const Extensive &e1, const Extensive &e2)
Addition.
Definition: extensive.cpp:84
size_t getChunkSize(void) const
Returns the size of array needed to store all data.
Definition: extensive.cpp:116
2D Mathematical vector
Definition: geometry.hpp:15