3#ifndef ONED_HYPERBOLIC_SYSTEM_H
4#define ONED_HYPERBOLIC_SYSTEM_H
15 typedef std::vector<bool> bool_vec;
33 problem =
"The Hyperbolic_Conservative_System::flux_fn method has not been implemented.\n";
34 problem +=
"You have to implement this method to define the system.\n";
57 J.
set_col(i, (temp2 - temp1) / delta);
67 problem =
"The Hyperbolic_Conservative_System::max_shock_speed method has not\n";
68 problem +=
"been implemented. You have to implement this method to define the system.\n";
A spec for the CppNoddy Timer object.
A matrix class that constructs a DENSE matrix as a row major std::vector of DenseVectors.
void set_col(const std::size_t &col, const DenseVector< _Type > &x)
Set a column of the matrix.
An DenseVector class – a dense vector object.
A generic runtime exception.
A class to represent a one dimensional hyperbolic system of equations.
virtual ~OneD_Hyperbolic_System()
An empty destructor, virtual since we have virtual methods.
virtual void source_fn(const double &x, const DenseVector< double > &q, const DenseVector< double > &slope, DenseVector< double > &r) const
virtual void flux_fn(const double &x, const DenseVector< double > &q, DenseVector< double > &f) const
A virtual flux function.
const std::size_t ORDER_OF_SYSTEM
The order of the system of equations.
virtual double max_charac_speed(const DenseVector< double > &q) const
A virtual method that is used to bound the shock speed and must be implemented by the user.
OneD_Hyperbolic_System(const unsigned &order)
virtual void Jac_flux_fn(const double &x, const DenseVector< double > &q, DenseMatrix< double > &J) const
A virtual function function to define the Jacobian of the flux function.
virtual bool_vec edge_values(const int face_index, const double &x, DenseVector< double > &q, const double &t=0.0) const
Define the edge boundary conditions.
An object to block copying.
A collection of OO numerical routines aimed at simple (typical) applied problems in continuum mechani...