TransFlow  0.1.0
A transient pipeline flow simulation library
matrixequation.hpp
1 #pragma once
2 
3 #include <armadillo>
4 
6 
37 {
38 public:
41 
71  const arma::uword nGridPoints,
72  const arma::uword nEquationsAndVariables,
73  const BoundaryConditions& boundaryConditions,
74  const arma::cube& term_i,
75  const arma::cube& term_ipp,
76  const arma::mat& boundaryTerms); // fills self matrix and vector
77 
92  arma::mat solve(
93  const arma::uword nGridPoints,
94  const arma::uword nEquationsAndVariables,
95  const BoundaryConditions& boundaryConditions) const;
96 
98  const arma::sp_mat& coefficients() const { return m_coefficients; }
100  const arma::vec& constants() const { return m_constants; }
101 
102 private:
103  arma::sp_mat m_coefficients;
104  arma::vec m_constants;
105 
122  arma::mat reshapeSolverOutput(
123  const arma::vec& x,
124  const BoundaryConditions& boundaryConditions,
125  const arma::uword nGridPoints,
126  const arma::uword nVariables) const;
127 
134  arma::vec solveMatrixEquation() const;
135 };
MatrixEquation
The MatrixEquation class sets up the matrix equation from the system of equations found from the gove...
Definition: matrixequation.hpp:36
MatrixEquation::solve
arma::mat solve(const arma::uword nGridPoints, const arma::uword nEquationsAndVariables, const BoundaryConditions &boundaryConditions) const
Solve the matrix equation Ax = b.
MatrixEquation::m_constants
arma::vec m_constants
Constants vector b.
Definition: matrixequation.hpp:104
MatrixEquation::fillCoefficientMatrixAndConstantsVector
void fillCoefficientMatrixAndConstantsVector(const arma::uword nGridPoints, const arma::uword nEquationsAndVariables, const BoundaryConditions &boundaryConditions, const arma::cube &term_i, const arma::cube &term_ipp, const arma::mat &boundaryTerms)
Fill in the coefficient matrix A (MatrixEquation::m_coefficients) and constants vector b (MatrixEquat...
MatrixEquation::solveMatrixEquation
arma::vec solveMatrixEquation() const
Internal method that solves the matrix equation.
MatrixEquation::coefficients
const arma::sp_mat & coefficients() const
Get coefficient matrix A. For testing purposes.
Definition: matrixequation.hpp:98
MatrixEquation::reshapeSolverOutput
arma::mat reshapeSolverOutput(const arma::vec &x, const BoundaryConditions &boundaryConditions, const arma::uword nGridPoints, const arma::uword nVariables) const
Reshape output from solving the matrix equation into a matrix containing flow, pressure and temperatu...
MatrixEquation::constants
const arma::vec & constants() const
Get constants vector b. For testing purposes.
Definition: matrixequation.hpp:100
MatrixEquation::m_coefficients
arma::sp_mat m_coefficients
Coefficient matrix A.
Definition: matrixequation.hpp:103
BoundaryConditions
The BoundaryConditions class is a container for the boundary conditions at the inlet and outlet of a ...
Definition: boundaryconditions.hpp:27
MatrixEquation::~MatrixEquation
~MatrixEquation()
Declared to avoid the inline compiler-generated default destructor.