TransFlow  0.1.0
A transient pipeline flow simulation library
batchtrackingstate.hpp
1 #pragma once
2 
3 #include <vector>
4 #include <armadillo>
5 
6 #include "composition.hpp"
7 
15 {
16 public:
17  friend class BatchTracking;
18 
24  struct Batch
25  {
31  Batch(const double position, const arma::vec& concentration):
34  {}
35 
36  double m_position;
37  arma::vec m_concentration;
38 
39  public:
41  double position() const { return m_position; }
43  const arma::vec& concentration() const { return m_concentration; }
44  };
45 
53  const arma::vec& gridPointsIncludingEndPoint,
54  const arma::vec& concentration = Composition::defaultComposition,
55  const arma::uword nBatches = 1);
56 
63  const arma::vec& gridPointsIncludingEndPoint,
64  const std::vector<Composition>& composition);
65 
70  std::vector<Composition> sample() const;
71 
77  std::vector<Composition> sample(const arma::vec& locations) const;
78 
83  std::vector<arma::vec> sampleToVec() const;
84 
90  std::vector<arma::vec> sampleToVec(const arma::vec& locations) const;
91 
99  std::vector<arma::vec> sampleInternal(const arma::vec& locations) const;
100 
105  const std::vector<Batch>& batches() const { return m_batches; }
106 
107 protected:
108  std::vector<Batch> m_batches;
109  arma::vec m_gridPoints;
110 };
BatchTrackingState::Batch::m_concentration
arma::vec m_concentration
Concentration of the Batch.
Definition: batchtrackingstate.hpp:37
BatchTrackingState::m_batches
std::vector< Batch > m_batches
Vector containing all batches.
Definition: batchtrackingstate.hpp:108
BatchTrackingState::Batch::Batch
Batch(const double position, const arma::vec &concentration)
Construct Batch from initial position and concentration.
Definition: batchtrackingstate.hpp:31
Composition::defaultComposition
static const Composition defaultComposition
Default composition.
Definition: composition.hpp:81
BatchTrackingState::Batch::concentration
const arma::vec & concentration() const
Get the concentration of the Batch.
Definition: batchtrackingstate.hpp:43
BatchTrackingState
Contains the state which BatchTracking operates on.
Definition: batchtrackingstate.hpp:14
BatchTrackingState::BatchTrackingState
BatchTrackingState(const arma::vec &gridPointsIncludingEndPoint, const arma::vec &concentration=Composition::defaultComposition, const arma::uword nBatches=1)
State constructor from grid points and the same concentration for all batches.
BatchTrackingState::m_gridPoints
arma::vec m_gridPoints
Grid points of pipeline.
Definition: batchtrackingstate.hpp:109
BatchTrackingState::sampleInternal
std::vector< arma::vec > sampleInternal(const arma::vec &locations) const
sampleInternal Samples the composition at arbitrary locations. This is the main function that does th...
BatchTracking
A class for calculating the time development of the gas composition from the gas velocity.
Definition: batchtracking.hpp:21
BatchTrackingState::Batch::m_position
double m_position
Position of the Batch.
Definition: batchtrackingstate.hpp:36
BatchTrackingState::Batch::position
double position() const
Get the position of the Batch.
Definition: batchtrackingstate.hpp:41
BatchTrackingState::batches
const std::vector< Batch > & batches() const
Get a const reference to the batches.
Definition: batchtrackingstate.hpp:105
BatchTrackingState::Batch
Contains the information for a single batch.
Definition: batchtrackingstate.hpp:24
BatchTrackingState::sampleToVec
std::vector< arma::vec > sampleToVec() const
sampleToVec Samples the composition at locations in m_gridPoints.
BatchTrackingState::sample
std::vector< Composition > sample() const
sample Samples the composition at locations in m_gridPoints.