TransFlow  0.1.0
A transient pipeline flow simulation library
discretizer.hpp
1 #pragma once
2 
3 #include <armadillo>
4 
5 class Pipeline;
6 
43 {
44 public:
47  virtual ~Discretizer();
48 
60  const arma::uword nGridPoints,
61  const arma::uword nEquationsAndVariables);
62 
71  virtual void discretize(
72  const arma::uword dt,
73  const Pipeline& currentState,
74  const Pipeline& newState) = 0;
75 
76  const arma::cube& term_i() const { return m_term_i; }
77  const arma::cube& term_ipp() const { return m_term_ipp; }
78  const arma::mat& boundaryTerms() const { return m_boundaryTerm; }
79 
80 protected:
81  // TODO: better description of how m_term_i and m_term_ipp are organized
94  arma::cube m_term_i;
95 
101  arma::cube m_term_ipp;
102 
109  arma::mat m_boundaryTerm;
110 
111  double m_gravity = 9.81;
112 };
Discretizer::m_boundaryTerm
arma::mat m_boundaryTerm
The constant/known terms in the discretized governing equations.
Definition: discretizer.hpp:109
Pipeline
Definition: pipeline.hpp:16
Discretizer::term_i
const arma::cube & term_i() const
Get coefficients of .
Definition: discretizer.hpp:76
Discretizer::m_gravity
double m_gravity
Gravity.
Definition: discretizer.hpp:111
Discretizer::discretize
virtual void discretize(const arma::uword dt, const Pipeline &currentState, const Pipeline &newState)=0
Pure virtual function, stencil for subclasses. This method calculates in the coefficients of and an...
Discretizer::m_term_i
arma::cube m_term_i
The coefficients of in the discretized governing equations.
Definition: discretizer.hpp:94
Discretizer::term_ipp
const arma::cube & term_ipp() const
Get coefficients of .
Definition: discretizer.hpp:77
Discretizer::boundaryTerms
const arma::mat & boundaryTerms() const
Get constant terms.
Definition: discretizer.hpp:78
Discretizer::~Discretizer
virtual ~Discretizer()
Discretizer
Discretizer is an abstract class, the base class the implementation of the discretization of the two ...
Definition: discretizer.hpp:42
Discretizer::m_term_ipp
arma::cube m_term_ipp
The coefficients of in the discretized governing equations.
Definition: discretizer.hpp:101
Discretizer::Discretizer
Discretizer(const arma::uword nGridPoints, const arma::uword nEquationsAndVariables)
Construct from number of grid points and number of equations and variables.